On 1/24/25 23:36, Alexander Atanasov wrote:
@@ -1913,7 +1924,9 @@ static void ploop_submit_metadata_writeback(struct ploop
*ploop)
clear_bit(MD_DIRTY, &md->status);
clear_bit(MD_HIGHPRIO, &md->status);
ploop_index_wb_subm
On 1/24/25 23:36, Alexander Atanasov wrote:
@@ -2013,33 +1964,55 @@ void do_ploop_run_work(struct ploop *ploop)
llcow_pios = llist_del_all(&ploop->pios[PLOOP_LIST_COW]);
/* add old deferred back to the list */
- if (lldeferred_pios) {
- struct llist_node *pos
On 7.02.25 9:51, Pavel Tikhomirov wrote:
On 1/24/25 23:36, Alexander Atanasov wrote:
@@ -946,6 +953,8 @@ static int ploop_prepare_bat_update(struct ploop
*ploop, struct md_page *md,
map_index_t *to;
u8 level;
+ lockdep_assert_held(&ploop->bat_lock);
+
piwb = kmalloc(sizeo
On 2/7/25 16:04, Alexander Atanasov wrote:
On 7.02.25 9:51, Pavel Tikhomirov wrote:
On 1/24/25 23:36, Alexander Atanasov wrote:
@@ -946,6 +953,8 @@ static int ploop_prepare_bat_update(struct ploop
*ploop, struct md_page *md,
map_index_t *to;
u8 level;
+ lockdep_assert_held(&
Currently the rpc work is scheduled to run on the sender's cpu with
the default rpc affinity mode. However there is a serious problem in
this mode for certain workload that a majority of rpc work ends up
being run on just one or two cpus even though the rest of cpus are
idle, thus resulting in sign
On 1/24/25 23:35, Alexander Atanasov wrote:
@@ -1939,11 +1949,45 @@ static void ploop_submit_embedded_pio(struct ploop
*ploop, struct pio *pio)
}
ploop_inc_nr_inflight(ploop, pio);
+
+ if (pio->queue_list_id == PLOOP_LIST_FLUSH) {
+ /* Let the FLUSH go last
On 1/24/25 23:36, Alexander Atanasov wrote:
+int ploop_worker(void *data)
+{
+ struct ploop_worker *worker = data;
+ struct ploop *ploop = worker->ploop;
+
+ for (;;) {
+ set_current_state(TASK_INTERRUPTIBLE);
+
if (llist_empty(&ploop->pios[PLOOP
On 1/24/25 23:36, Alexander Atanasov wrote:
@@ -2141,8 +2114,9 @@ int ploop_worker(void *data)
llist_empty(&ploop->llresubmit_pios) &&
!ploop->force_md_writeback) {
if (kthread_should_stop()) {
-
wai
On 1/24/25 23:36, Alexander Atanasov wrote:
@@ -383,7 +384,6 @@ static struct ploop_worker *ploop_worker_create(struct
ploop *ploop,
wake_up_process(task);
return worker;
-
out_err:
kfree(worker);
return NULL;
nit: looks like a leftover
--
Best regards, Tikhom
Ack. Let's give this a try. It might solve problems which we have with
default affinity algo.
On Fri, Feb 7, 2025 at 5:11 PM Liu Kui wrote:
>
> Currently the rpc work is scheduled to run on the sender's cpu with
> the default rpc affinity mode. However there is a serious problem in
> this mode fo
10 matches
Mail list logo