[Devel] [RFC PATCH vz9 v6 00/62] ploop optimistations and scalling

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Fri Jan 10 10:43:15 MSK 2025


I didn't find specific patch for this comment so I'll leave it to patch -00.

What if ploop_dispatch_pios and do_ploop_run_work(do_ploop_work) run 
concurrently for one ploop on different cpus? Would not it be bad if
ploop_dispatch_pios only dispatched part of pios and do_ploop_run_work 
already starts processing them, or if do_ploop_run_work yet does not 
"see" all pios from already fully dispatched ploop_dispatch_pios? That 
can lead to arbitrary pio reordering.

For instance imagine:

ploop_dispatch_pios () {
                           do_ploop_run_work () {
                             llcow_pios = llist_del_all(...);
                             ...

   add data pio #1
   add data pio #2
   add flush pio #3
                             llflush_pios = llist_del_all(...);
                             process_ploop_fsync_work(llflush_pios);
                           }
}

This way a flush pio #3 will be processed before data pios #1 and #2.

-- 
Best regards, Tikhomirov Pavel
Senior Software Developer, Virtuozzo.


More information about the Devel mailing list