Re: [PATCHv2] kvm: remove in_range and switch to rwsem for iobus

From: Avi Kivity
Date: Mon Jun 29 2009 - 10:27:24 EST


On 06/29/2009 05:06 PM, Marcelo Tosatti wrote:
On Sun, Jun 28, 2009 at 10:34:25PM +0300, Michael S. Tsirkin wrote:
This changes bus accesses to use high-level kvm_io_bus_read/kvm_io_bus_write
functions, which utilize read/write semaphore intead of mutex. in_range now
becomes unused so it is removed from device ops in favor of read/write
callbacks performing range checks internally.

This allows aliasing (mostly for in-kernel virtio), as well as better error
handling by making it possible to pass errors up to userspace. And it's enough
to look at the diffstat to see that it's a better API anyway.

Can you please expand a little on this? Still don't get why making
->in_range part of ->read / ->write is a good thing. Aliasing?

Yes, if you have several devices responding to the same port (but different values), in_range() by itself doesn't tell you much. virtio msi support will tie a different iosignalfd to every queue, and queues are notified by writing different values to one pio port.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/