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. _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel