On Thu, Oct 25, 2012 at 06:13:51PM +0100, Peter Maydell wrote: > On 25 October 2012 18:07, Avi Kivity <a...@redhat.com> wrote: > > On 10/25/2012 04:04 PM, Peter Maydell wrote: > >> Is there a clear up to date description somewhere of the design and > >> locking strategy here somewhere? I'd rather not have to try to > >> reconstitute it by reading the whole patchset... > > > > It was described somewhere in a document by Marcelo and myself. > > Basically the goal is to arrive at > > > > address_space_write(): > > rcu_read_lock() > > mr = lookup() > > mr->ref() > > rcu_read_unlock() > > > > mr->dispatch() > > > > mr->unref() > > > > This is the same strategy used in many places in the kernel. > > Yes, but this is rather short on the details (eg, does every > device have its own lock, what are we doing with irqs, how about > dma from devices, etc etc). It's the details of the design I'd > like to see described... > > -- PMM
A document should be maintained and updated to reflect ongoing agreement of problems and solutions... Jan/Liu, someone steps up to do that? The original is: http://lists.gnu.org/archive/html/qemu-devel/2012-06/msg04315.html For one thing, inter-device DMA issue discussed on the list is not covered and probably large parts of it are obsolete by now (and should be deleted).