[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 24/29] vhost+postcopy: Lock around set_mem_table
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [RFC 24/29] vhost+postcopy: Lock around set_mem_table |
Date: |
Tue, 3 Oct 2017 14:23:51 +0100 |
User-agent: |
Mutt/1.9.0 (2017-09-02) |
* Dr. David Alan Gilbert (address@hidden) wrote:
> * Maxime Coquelin (address@hidden) wrote:
> >
> >
> > On 06/28/2017 09:00 PM, Dr. David Alan Gilbert (git) wrote:
> > > From: "Dr. David Alan Gilbert"<address@hidden>
> > >
> > > **HACK - better solution needed **
> > > We have the situation where:
> > >
> > > qemu bridge
> > >
> > > send set_mem_table
> > > map memory
> > > a) mark area with UFD
> > > send reply with map addresses
> > > b) start using
> > > c) receive reply
> > >
> > > As soon as (a) happens qemu might start seeing faults
> > > from memory accesses (but doesn't until b); but it can't
> > > process those faults until (c) when it's received the
> > > mmap addresses.
> > >
> > > Make the fault handler spin until it gets the reply in (c).
> > >
> > > At the very least this needs some proper locks, but preferably
> > > we need to split the message.
> >
> > Yes, maybe the slave channel could be used to send the ufds with
> > a dedicated request? The backend would set the reply-ack flag, so that
> > it starts accessing the guest memory only when Qemu is ready to handle
> > faults.
>
> Yes, that would make life a lot easier.
>
> > Note that the slave channel support has not been implemented in Qemu's
> > libvhost-user yet, but this is something I can do if we feel the need.
>
> Can you tell me a bit about how the slave channel works?
I've looked at the slave-channel; and I'm worried that it's not suitable
for this case.
The problem is that 'slave_read' is wired to a fd_handler that I think
is serviced by the main thread, and while postcopy is running I don't
want to rely on the operation of the main thread (since it could be
blocked by a page fault).
I could still use an explicit ack at that point though over the main
channel I think (or use the slave synchronously?).
Dave
> Dave
>
> > Maxime
> --
> Dr. David Alan Gilbert / address@hidden / Manchester, UK
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- Re: [Qemu-devel] [RFC 24/29] vhost+postcopy: Lock around set_mem_table,
Dr. David Alan Gilbert <=