[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/9] qemu_qsb.diff
From: |
mdroth |
Subject: |
Re: [Qemu-devel] [PATCH 4/9] qemu_qsb.diff |
Date: |
Wed, 13 Mar 2013 17:47:30 -0500 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, Mar 13, 2013 at 05:41:33PM -0500, mdroth wrote:
> On Wed, Mar 13, 2013 at 05:28:56PM -0400, Stefan Berger wrote:
> > On 03/13/2013 05:11 PM, mdroth wrote:
> > >On Wed, Mar 13, 2013 at 01:56:23PM -0500, Joel Schopp wrote:
> > >>This patch adds support functions for operating on in memory sized file
> > >>buffers.
> > >There's been some past refactorings to remove non-migration users of
> > >QEMUFile, and AFAIK that's still the case today. QEMUFile satisfies
> > >funky requirements like rate-limiting, buffering, etc that were specific
> > >to migration.
> > >
> > >IIUC all we want here is an abstraction on top of write()/memcpy(),
> > >and access to qemu_{put|get}_be* utility functions.
> > >
> > >Have you considered rolling those abstractions in the visitor
> > >implementations as opposed to extending QEMUFile, and using
> > >be*_to_cpus/cpus_to_be* helpers directly instead (like block/qcow2.c
> > >does, for example)?
> >
> > The advantage of using the QEMUFile abstractions is that now you can
> > build a visitor on top of it and read from buffers, sockets, BDRV's
> > (later on), plain files, and whatever else you can hide underneath
> > that interface. Back in 2011 when I initially wrote this code there
>
> Maybe a case can be made for making it a general utility library, but
> I'm having a hard time thinking of any reasons that aren't specific to
> migration, and I wonder if it's even necessary now that we have a
> migration thread that can handle the rate-limiting/buffering
> considerations.
>
> But I'm not sure exactly why we decided to drop non-migration users, so
> I think it's worth clarifying before we attempt to tether another
> component to it.
>
> Here's the thread I'm referencing:
>
> https://lists.gnu.org/archive/html/qemu-devel/2011-09/msg02589.html
>
> Juan, any background/input on this?
Sorry, forgot to CC Juan :)
>
> > that interface. Back in 2011 when I initially wrote this code there
> > at least was talk about using ASN.1 for migration, but this is
> > nearly 2 years ago and it may never be done that way, so this was
> > one driving force behind using QEMUFile inside the visitor. Besides
>
> Well, even back then goal was to abstract away direct calls to QEMUFile
> and replace them with visitor calls, and then to provide legacy support
> via a QEMUFile Visitor. A BER visitor could then be dropped in to
> provide a BER migration protocol (how exactly this would be done was
> somewhat of a ???, might've ended up layering on to of the
> QEMUFile visitor anyway, but more out of pragmatism than anything else)
>
> > that we later want to use the visitors for writing into virtual
> > NVRAM, which we would build on top of a QEMUFile wrapping BDRVs. So
> > there are some immediate advantages of using the common QEMUFile
> > interface for reading and writing of data from different types of
> > sources.
>
> Can you describe the requirements for the BDRV wrapper a bit more?
> Everything else seems reasonably doable via visitor internals but
> maybe there's more to it I'm not considering.
>
> >
> > Regards,
> > Stefan
> >
- Re: [Qemu-devel] [PATCH 2/9] qapi_c_arrays.diff, (continued)
- [Qemu-devel] [PATCH 6/9] asn1_output-visitor.diff, Joel Schopp, 2013/03/13
- [Qemu-devel] [PATCH 7/9] asn1_input-visitor.diff, Joel Schopp, 2013/03/13
- [Qemu-devel] [PATCH 8/9] asn1_test_visitor_serialization.diff, Joel Schopp, 2013/03/13
- [Qemu-devel] [PATCH 9/9] update_maintainers.diff, Joel Schopp, 2013/03/13
- [Qemu-devel] [PATCH 4/9] qemu_qsb.diff, Joel Schopp, 2013/03/13