On Tue, Jul 19, 2011 at 8:23 PM, Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote: > On 2011-07-19 19:17, Avi Kivity wrote: >> On 07/19/2011 08:14 PM, Jan Kiszka wrote: >>> >>> Another improvement - unfortunately less transparent for user space - >>> would be to overcome the single ring buffer that forces us to hold a >>> central lock in user space while processing the entries. We rather need >>> per-device rings. While waiting for coalesced VGA MMIO being processed, >>> way too many kittens are killed. >>> >>> I have this on our agenda, but I wouldn't be disappointed as well if >>> someone else is faster. >> >> The socket mmio would have accomplished this as well. It's possible to process the coalesced mmio ring without waiting for an exit, no? Is the performance that bad? I would have thought it's reasonable after seeing how well virtio-blk/virtio-net behave. > > I haven't followed the outcome in all details - is that approach dead > due to its complexity? The ability to allow reverse direction in the socket ('read' support instead of just write) is making it a bit complex. Hopefully it'll be ready soon. > >> One thing to >> beware of is to preserve correctness: >> >> 1) write to 0xa0000 (queued) >> 2) write to 0xa0002 (queued) >> 3) remap 0xa0000 region (executed) > > Obviously, there must be 3a) here: drain all affected queues. > >> 4) write to 0xa000 (queued) >> 5) drain queue >> >> writes 1 and 2 go to the wrong place. >> > > Jan > > -- > Siemens AG, Corporate Technology, CT T DE IT 1 > Corporate Competence Center Embedded Linux > -- 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