[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160720124611.GB5682@danjae.aot.lge.com>
Date: Wed, 20 Jul 2016 21:46:11 +0900
From: Namhyung Kim <namhyung@...nel.org>
To: Stefan Hajnoczi <stefanha@...il.com>
Cc: LKML <linux-kernel@...r.kernel.org>,
Paolo Bonzini <pbonzini@...hat.com>,
Radim Kr??m???? <rkrcmar@...hat.com>,
"Michael S. Tsirkin" <mst@...hat.com>,
Anthony Liguori <aliguori@...zon.com>,
Anton Vorontsov <anton@...msg.org>,
Colin Cross <ccross@...roid.com>,
Kees Cook <keescook@...omium.org>,
Tony Luck <tony.luck@...el.com>,
Steven Rostedt <rostedt@...dmis.org>,
Ingo Molnar <mingo@...nel.org>,
Minchan Kim <minchan@...nel.org>, kvm@...r.kernel.org,
qemu-devel@...gnu.org, virtualization@...ts.linux-foundation.org
Subject: Re: [PATCH 2/3] qemu: Implement virtio-pstore device
On Wed, Jul 20, 2016 at 09:29:06AM +0100, Stefan Hajnoczi wrote:
> On Mon, Jul 18, 2016 at 11:21:18PM +0900, Namhyung Kim wrote:
> > On Mon, Jul 18, 2016 at 11:03:53AM +0100, Stefan Hajnoczi wrote:
> > > On Mon, Jul 18, 2016 at 01:37:40PM +0900, Namhyung Kim wrote:
> > > > From: Namhyung Kim <namhyung@...il.com>
> > > >
> > > > Add virtio pstore device to allow kernel log files saved on the host.
> > > > It will save the log files on the directory given by pstore device
> > > > option.
> > > >
> > > > $ qemu-system-x86_64 -device virtio-pstore,directory=dir-xx ...
> > > >
> > > > (guest) # echo c > /proc/sysrq-trigger
> > > >
> > > > $ ls dir-xx
> > > > dmesg-0.enc.z dmesg-1.enc.z
> > > >
> > > > The log files are usually compressed using zlib. Users can see the log
> > > > messages directly on the host or on the guest (using pstore filesystem).
> > >
> > > The implementation is synchronous (i.e. can pause guest code execution),
> > > does not handle write errors, and does not limit the amount of data the
> > > guest can write. This is sufficient for ad-hoc debugging and usage with
> > > trusted guests.
> > >
> > > If you want this to be available in environments where the guest isn't
> > > trusted then there must be a limit on how much the guest can write or
> > > some kind of log rotation.
> >
> > Right. The synchronous IO is required by the pstore subsystem
> > implementation AFAIK (it uses a single psinfo->buf in the loop).
>
> The pstore subsystem in Linux may be synchronous but the QEMU device
> emulation does not have to be synchronous.
>
> Synchronous device emulation means that no other vcpu or QEMU main loop
> processing can occur while device emulation is blocked in a syscall.
> This can make the QEMU monitor unavailable for libvirt and management
> tools. The guest can experience jitter since vcpus freeze if they
> vmexit while device emulation is blocked (it holds the QEMU global
> mutex and prevents other QEMU threads from making progress).
Thanks for your detailed explanation. I'll try to change pstore
implementation to deal with async devices.
Thanks,
Namhyung
>
> You could use include/io.h for asynchronous I/O (qio_channel_add_watch()).
>
> Stefan
Powered by blists - more mailing lists