lkml.org 
[lkml]   [2016]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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@gmail.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


\
 
 \ /
  Last update: 2016-07-20 15:21    [W:0.084 / U:0.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site