On Tue, Jun 5, 2012 at 4:03 AM, Asias He <asias.hejun@xxxxxxxxx> wrote: > On Tue, Jun 5, 2012 at 12:07 AM, Sasha Levin <levinsasha928@xxxxxxxxx> wrote: >> On Mon, 2012-06-04 at 23:40 +0800, Asias He wrote: >>> All blk requests are processed in notify_vq() which is in the context of >>> ioeventfd thread: ioeventfd__thread(). The processing in notify_vq() may >>> take a long time to complete and all devices share the single ioeventfd >>> thead, so this might block other device's notify_vq() being called and >>> starve other devices. >> >> We're using native vectored AIO for for processing blk requests, so I'm >> not certain if theres any point in giving the blk device it's own thread >> for handling that. > > We discussed this last year. Search the same subject. Pekka suggested > improving the thead pool API to support dedicated thead support. I'd > prefer to merge this patch for now since that support is till not > there. > > Recently, I added some debug code to see how many loops > virtio_blk_do_io() will do until it finishes the processing. > I am seeing something like this: > > Info: virtio_blk_do_io max_nr_loop=8427 > > The processing takes a very long time. Ingo, any comments on the thread-per-blk-device model? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html