[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack int
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends |
Date: |
Tue, 11 Oct 2011 11:49:16 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110927 Thunderbird/7.0 |
On 10/11/2011 11:38 AM, Alexander Graf wrote:
>
>> and gets you in a pretty bizarre state when doing updates of your host
files, since then you have 2 different paths: full boot and restore. That's yet
another potential source for bugs.
>
> Typically you'd check the timestamps to make sure you're running an
up-to-date version.
Yes. That's why I said you end up with 2 different boot cases. Now imagine you
get a bug once every 10000 bootups and try to trace that down that it only
happens when running in the non-resume case.
That's life in virt land. If you want nice repeatable bugs write single
threaded Python.
>
>>
>> >
>> >>
>> >> For comparison I also did a test building a bootable ISO using
ISOLinux.
>> >> This required 700 ms for the boot time, which is appoximately 1/2 the
>> >> time reqiured for direct kernel/initrd boot. But you have to then add
>> >> on time required to build the ISO on every boot, to add custom kernel
>> >> command line args. So while ISO is faster than LinuxBoot currently
>> >> there is still non-negligable overhead here that I want to avoid.
>> >
>> > You can accept parameters from virtio-serial or some other channel. Is
there any reason you need them specifically as *kernel* command line parameters?
>>
>> That doesn't work for kernel parameters. It also means things would have to
be rewritten needlessly. Some times we can't easily change the way parameters are
passed into the guest either, for example when running a random (read: old, think of
RHEL5) distro installation initrd.
>
> This use case is not installation, it's for app sandboxing.
I thought we were talking about plenty different use cases here? I'm pretty
sure there are even more out there that we haven't even thought about.
I'm talking about the case he mentioned, not every possible use case.
Usually booting an ISO image is best since it only loads on demand.
>
>> And I don't see the point why we would have to shoot yet another hole into
the guest just because we're too unwilling to make an interface that's perfectly
valid horribly slow.
>
> rep/ins is exactly like dma+wait for this use case: provide an address, get
a memory image in return. There's no need to add another interface, we should
just optimize the existing one.
Whatever we do, the interface will never be as fast as DMA. We will always have
to do sanity / permission checks for every IO operation, can batch up only so
many IO requests and in QEMU again have to call our callbacks in a loop.
We can batch per page, which makes the overhead negligible.
I don't see where the problem is in admitting that we were wrong back then. The
fw_cfg interface as it is is great for small config variables, but nobody sane
would even consider using IDE without DMA these days for example, because
you're transferring bulk data. And that's exactly what we do in this case. We
transfer bulk data.
However, I'll gladly see myself proven wrong with an awesomely fast rep/ins
implementation that loads 100MB in< 1/10th of a second.
100 MB in 100 ms gives us 1 GB/s, or 4 us per page. I'm not sure we can
get exactly there, but pretty close.
--
error compiling committee.c: too many arguments to function
- [Qemu-devel] Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Daniel P. Berrange, 2011/10/10
- Re: [Qemu-devel] Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Anthony Liguori, 2011/10/10
- Re: [Qemu-devel] Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Alexander Graf, 2011/10/10
- [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Daniel P. Berrange, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Richard W.M. Jones, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Avi Kivity, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Alexander Graf, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Avi Kivity, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Alexander Graf, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends,
Avi Kivity <=
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Gleb Natapov, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Avi Kivity, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Gleb Natapov, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Anthony Liguori, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Alexander Graf, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Gleb Natapov, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Anthony Liguori, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Avi Kivity, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Gleb Natapov, 2011/10/11
- Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends, Anthony Liguori, 2011/10/11