From: "Daniel P. Berrange" <berrange@redhat.com>
To: Petr Tesarik <ptesarik@suse.com>
Cc: Eric Blake <eblake@redhat.com>, Nan Li <nli@suse.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/2] Dump: introduce a Filesystem in Userspace
Date: Tue, 10 May 2016 09:48:48 +0100 [thread overview]
Message-ID: <20160510084847.GB13377@redhat.com> (raw)
In-Reply-To: <20160510075941.4bbd2834@hananiah.suse.cz>
On Tue, May 10, 2016 at 07:59:41AM +0200, Petr Tesarik wrote:
> On Mon, 9 May 2016 09:52:28 -0600
> Eric Blake <eblake@redhat.com> wrote:
>
> > On 05/07/2016 05:32 PM, Nan Li wrote:
> > > When running the command "dump-guest-memory", we usually need a large space
> > > of storage to save the dumpfile into disk. It costs not only much time to
> > > save a file in some of hard disks, but also costs limited storage in host.
> > > In order to reduce the saving time and make it convenient for users to dump
> > > the guest memory, we introduce a Filesystem in Userspace (FUSE) to save the
> > > dump file in RAM. It is selectable in the configure file, adding a compiling
> > > of package "fuse-devel". It doesn't change the way of dumping guest memory.
> >
> > Why introduce FUSE? Can we reuse NBD instead?
>
> Let me answer this one, because it's me who came up with the idea,
> although I wasn't involved in the actual implementation.
>
> The idea is to get something more like Linux's /proc/kcore, but for a
> QEMU guest. So, yes, the same idea could be implemented as a standalone
> application which talks to QEMU using the gdb remote protocol and
> exposes the data in a structured form through a FUSE filesystem.
>
> However, the performance of such a solution cannot get even close to
> that of exposing the data directly from QEMU. Maybe it's still the best
> way to start the project...
IIUC, the performance penalty will be related to the copying of guest
RAM. All the other supplementary information you want (register state
etc) is low volume, so should not be performance critical to copy that
over the QMP monitor command or via libvirt monitor command passthrough.
So if want to have an external program provide a /proc/kcore like
service via FUSE, the problem we need to solve here is a mechanism
for providing efficient access to QEMU memory.
I think this can be done quite simply by having QEMU guest RAM exposed
via tmpfs or hugetlbfs as appropriate. This approach is what is already
used for the vhost-user network backend in an external process which
likewise needs copy-free access to guest RAM pages.
Obviously this requires that users start QEMU in this particular setup
for RAM, but I don't think that's a particularly onerous requirement
as any non-trivial management application will already know how to do
this.
> Regarding NBD ... correct me if I'm wrong, but I've always thought NBD
> can be used to export _disks_ from the QEMU instance, not guest RAM
> content.
Yeah, NBD seems like the wrong fit for this problem.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
next prev parent reply other threads:[~2016-05-10 8:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-07 23:32 [Qemu-devel] [PATCH 0/2] Dump: add a Filesystem in Userspace and command "fuse-mount" Nan Li
2016-05-07 23:32 ` [Qemu-devel] [PATCH 1/2] Dump: introduce a Filesystem in Userspace Nan Li
2016-05-09 15:52 ` Eric Blake
2016-05-09 16:13 ` Daniel P. Berrange
2016-05-09 16:20 ` Petr Tesarik
2016-05-09 16:32 ` Daniel P. Berrange
2016-05-10 6:19 ` Petr Tesarik
2016-05-10 8:39 ` Daniel P. Berrange
2016-05-10 5:59 ` Petr Tesarik
2016-05-10 8:48 ` Daniel P. Berrange [this message]
2016-05-10 9:42 ` Petr Tesarik
2016-05-10 11:26 ` Nan Li
2016-05-10 9:56 ` Stefan Hajnoczi
2016-05-10 11:02 ` Nan Li
2016-05-10 11:55 ` Petr Tesarik
2016-05-12 10:09 ` Stefan Hajnoczi
2016-05-12 10:30 ` Petr Tesarik
2016-05-07 23:32 ` [Qemu-devel] [PATCH 2/2] Dump: add command "fuse-mount" Nan Li
2016-05-09 16:30 ` Daniel P. Berrange
2016-05-09 16:48 ` Eric Blake
2016-05-10 11:32 ` Nan Li
2016-05-10 9:47 ` [Qemu-devel] [PATCH 0/2] Dump: add a Filesystem in Userspace and " Stefan Hajnoczi
2016-05-10 9:50 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160510084847.GB13377@redhat.com \
--to=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=nli@suse.com \
--cc=ptesarik@suse.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).