[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: |
Mon, 24 Apr 2023 17:06:55 -0400 |
On Tue, Apr 25, 2023 at 12:02:49AM +0300, Vladimir Sementsov-Ogievskiy wrote:
> On 24.04.23 23:45, Michael S. Tsirkin wrote:
> > On Mon, Apr 24, 2023 at 04:42:00PM -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
> > > >
> > > > Let's just allow resizing of ROM memory. This way migration is not
> > > > relate on local ROM file on target node which is loaded by default but
> > > > is not actually needed.
> > > >
> > > > Signed-off-by: Vladimir Sementsov-Ogievskiy<vsementsov@yandex-team.ru>
> > Also isn't ROM size reflected in config space etc?
> > I don't remember code that would update that on migration.
> >
> >
>
> Thanks a lot for fast answers!
>
> Hmm. I'm a newbie in these things.
>
> But yes, I noted, that my patch helps, if, for example jump from 200K to 500K
> zero-filled ROM file. But if jump to 600K, migration fails with
>
> (qemu) qemu: get_pci_config_device: Bad config data: i=0x32 read: b8 device:
> 0 cmask: ff wmask: f0 w1cmask:0
> qemu: Failed to load PCIDevice:config
> qemu: Failed to load virtio-net:virtio
> qemu: error while loading state for instance 0x0 of device
> '0000:00:03.0/virtio-net'
> qemu: load of migration failed: Invalid argument
>
>
> I thought, that, maybe, romfile for this device just mustn't be more than
> 512K where config starts. But now I think that it's exactly the problem you
> are saying about.
>
>
> I know also, that there were another step around this problem:
> 08b1df8ff463e72b087 "pci: add romsize property".. But it doesn't help when
> you already have a running instance with small ROM and want to migrate it to
> the node where you have corresponding local ROM file updated to new package
> with bigger size.
>
set romsize on destination?
> Hmm. So, simply reuse "resizable" memory blocks doesn't help. And I need more
> precise reinitialization of device on load of incoming migration..
>
> --
> Best regards,
> Vladimir
Re: [PATCH] pci: make ROM memory resizable, Michael S. Tsirkin, 2023/04/25
Re: [PATCH] pci: make ROM memory resizable, Laszlo Ersek, 2023/04/25
Re: [PATCH] pci: make ROM memory resizable, Gerd Hoffmann, 2023/04/25