qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] pci: make ROM memory resizable


From: Michael S. Tsirkin
Subject: Re: [PATCH] pci: make ROM memory resizable
Date: Tue, 25 Apr 2023 08:49:13 -0400

On Tue, Apr 25, 2023 at 11:34:09AM +0300, Vladimir Sementsov-Ogievskiy wrote:
> On 25.04.23 10:43, Michael S. Tsirkin wrote:
> > On Tue, Apr 25, 2023 at 03:26:54AM -0400, Michael S. Tsirkin wrote:
> > > On Mon, Apr 24, 2023 at 11:36:47PM +0300, Vladimir Sementsov-Ogievskiy 
> > > wrote:
> > > > On migration, on target we load local ROM file. But actual ROM content
> > > > migrates through migration channel. Original ROM content from local
> > > > file doesn't matter. But when size mismatch - we have an error like
> > > > 
> > > >   Size mismatch: 0000:00:03.0/virtio-net-pci.rom: 0x40000 != 0x80000: 
> > > > Invalid argument
> > > 
> > > Oh, this is this old bug then:
> > > https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1713490
> > > 
> > > People seem to be "fixing" this by downgrading ROMs.
> > > 
> > > Actually, I think the fix is different: we need to build
> > > versions of ROMs for old machine types that can fit
> > > in the old BAR size.
> > > 
> > > Gerd, Laszlo what's your take on all this?
> > Actually, ignore this - we do keep old ROMs around specifically to avoid
> > ROM size changes and have been for ever. E.g.:
> > 
> > commit c45e5b5b30ac1f5505725a7b36e68cedfce4f01f
> > Author: Gerd Hoffmann<kraxel@redhat.com>
> > Date:   Tue Feb 26 17:46:11 2013 +0100
> > 
> >      Switch to efi-enabled nic roms by default
> >      All PCI nics are switched to EFI-enabled roms by default.  They are
> >      composed from three images (legacy, efi ia32 & efi x86), so classic
> >      pxe booting will continue to work.
> >      Exception: eepro100 is not switched, it uses a single rom for all
> >      emulated eepro100 variants, then goes patch the rom header on the
> >      fly with the correct PCI IDs.  I doubt that will work as-is with
> >      the efi roms.
> >      Keep old roms for 1.4+older machine types via compat properties,
> >      needed because the efi-enabled roms are larger so the pci rom bar
> >      size would change.
> >      Signed-off-by: Gerd Hoffmann<kraxel@redhat.com>
> > 
> > 
> > So it's downstream messing up with things, overriding the
> > rom file then changing its size.
> > 
> > 
> > On fedora I find both pxe virtio and efi virtio so it gets it right.
> > 
> > 
> 
> Yes I understand that distribution may work-around the problem just having 
> all needed roms on target and specifying correct romfile= argument.
> 
> But this is not ideal: having the file only to get its size, to not mismatch 
> with incoming RAM block. There should be way to migrate ROMs automatically 
> without extra files on target.

This not "only to get its size". It is so you can start old machine type
on the new box and get the same memory layout.

Fundamentally, the approach QEMU takes is that it does not matter
how you migrate: live, or by killing and restarting guest.
What we try to do as best we can, is make the box look the same.

-- 
MST




reply via email to

[Prev in Thread] Current Thread [Next in Thread]