[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 2/3] io: Add zerocopy and errqueue
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH v1 2/3] io: Add zerocopy and errqueue |
Date: |
Thu, 9 Sep 2021 09:49:39 +0100 |
User-agent: |
Mutt/2.0.7 (2021-05-04) |
* Peter Xu (peterx@redhat.com) wrote:
> On Wed, Sep 08, 2021 at 09:30:58AM +0100, Dr. David Alan Gilbert wrote:
> > * Peter Xu (peterx@redhat.com) wrote:
> > > On Tue, Sep 07, 2021 at 12:06:15PM +0100, Dr. David Alan Gilbert wrote:
> > > > > > What if we do the 'flush()' before we start post-copy, instead of
> > > > > > after each
> > > > > > iteration? would that be enough?
> > > > >
> > > > > Possibly, yes. This really need David G's input since he understands
> > > > > the code in way more detail than me.
> > > >
> > > > Hmm I'm not entirely sure why we have the sync after each iteration;
> > >
> > > We don't have that yet, do we?
> >
> > I think multifd does; I think it calls multifd_send_sync_main sometimes,
> > which I *think* corresponds to iterations.
>
> Oh.. Then we may need to:
>
> (1) Make that sync work for zero-copy too; say, semaphores may not be enough
> with it - we need to make sure all async buffers are consumed by
> checking
> the error queue of the sockets,
>
> (2) When we make zero-copy work without multi-fd, we may want some similar
> sync on the main stream too
It might not be worth bothering with (2) - zerocopy fits a lot better
with multifd's data organisation.
Dave
> Thanks,
>
> >
> > Dave
> >
> > > > the case I can think of is if we're doing async sending, we could have
> > > > two versions of the same page in flight (one from each iteration) -
> > > > you'd want those to get there in the right order.
> > >
> > > From MSG_ZEROCOPY document:
> > >
> > > For protocols that acknowledge data in-order, like TCP, each
> > > notification can be squashed into the previous one, so that no
> > > more
> > > than one notification is outstanding at any one point.
> > >
> > > Ordered delivery is the common case, but not guaranteed.
> > > Notifications
> > > may arrive out of order on retransmission and socket teardown.
> > >
> > > So no matter whether we have a flush() per iteration before, it seems we
> > > may
> > > want one when zero copy enabled?
> > >
> > > Thanks,
> > >
> > > --
> > > Peter Xu
> > >
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> >
>
> --
> Peter Xu
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, (continued)
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Leonardo Bras Soares Passos, 2021/09/02
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Daniel P . Berrangé, 2021/09/02
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Leonardo Bras Soares Passos, 2021/09/02
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Daniel P . Berrangé, 2021/09/02
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Leonardo Bras Soares Passos, 2021/09/02
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Daniel P . Berrangé, 2021/09/02
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Dr. David Alan Gilbert, 2021/09/07
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Peter Xu, 2021/09/07
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Dr. David Alan Gilbert, 2021/09/08
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Peter Xu, 2021/09/08
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue,
Dr. David Alan Gilbert <=
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Leonardo Bras Soares Passos, 2021/09/08
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Peter Xu, 2021/09/08
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Daniel P . Berrangé, 2021/09/08
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Peter Xu, 2021/09/08
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Leonardo Bras Soares Passos, 2021/09/09
- Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Peter Xu, 2021/09/09
Re: [PATCH v1 2/3] io: Add zerocopy and errqueue, Leonardo Bras Soares Passos, 2021/09/02