Hello, On Tue, Apr 09, 2013 at 02:42:48PM -0400, Vivek Goyal wrote: > I guess plugging boundary is more important than issuing order as > block layer should take care of mering the bio and put in right > order (attempt_plug_merge()). Yeah, the exact order probably doesn't affect things too much but it's just a nice design principle to follow - if you're gonna step in in the middle and meddle with requests, preserve as much context as reasonably possible, and it's not like preserving that order is difficult. > But to make use of plugging boundary, one would probably still need > submission using single thread. It doesn't have to a specific task. Whoever finishes the last bio / segment / whatever in the plugging domain can issue all of them. I probably am missing details but the overall mechanism can be pretty simple. Just keep the bios from the same plugging domain in the received order along with an atomic counter and issue them all when the counter hits zero. No need to fiddle with sorting or whatever. > And if one is using single thread for submission, one will still get > good performance (even if you are not using bio_associate_current()), as > by default all bio will go to submitting thread's context. And destroy all per-ioc and cgroup logics in block layer in the process. Thanks. -- tejun -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel