[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] qemu: Implement virtio-pstore device
From: |
Namhyung Kim |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] qemu: Implement virtio-pstore device |
Date: |
Wed, 20 Jul 2016 21:46:11 +0900 |
User-agent: |
Mutt/1.6.0 (2016-04-01) |
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 <address@hidden>
> > > >
> > > > 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
- Re: [Qemu-devel] [PATCH 1/3] virtio: Basic implementation of virtio pstore driver, (continued)
[Qemu-devel] [PATCH 2/3] qemu: Implement virtio-pstore device, Namhyung Kim, 2016/07/18
Re: [Qemu-devel] [PATCH 2/3] qemu: Implement virtio-pstore device, Namhyung Kim, 2016/07/19
Re: [Qemu-devel] [PATCH 2/3] qemu: Implement virtio-pstore device, Stefan Hajnoczi, 2016/07/20
Re: [Qemu-devel] [PATCH 2/3] qemu: Implement virtio-pstore device, Namhyung Kim, 2016/07/20