Il 02/10/2014 14:11, Michael S. Tsirkin ha scritto:
> Summarizing what you say, there are two issues around ACPI tables:
> - linuxboot uses FW CFG to for memory allocations,
>   seabios ignores that, so they might conflict.
>   Let's fix either linuxboot or seabios (or both!)
>   and forget about it.

We can fix linuxboot, it is easy.

These patches do fix John's scenario, but that is not the main issue.
They are not an _attempt_ to fix it, they just do so more or less by
chance.  Their real purpose is fixing the second issue:

> - table size changes cause cross version migration issues
>   this is really due to the fact we are using RAM
>   to migrate ACPI tables.
>   IMHO a more robust fix would be to allow RAM size to change
>   during migration, or to avoid using RAM, switch to another type of
>   object.

Allowing fw_cfg size to change during migration (does not matter if it
is stored in RAM or otherwise) is a huge can of worms because the host
might have loaded the size and stored it somewhere, way before migration.

Extreme example: the guest could expect the size to remain the same at
boot time and S3 resume time.

So I think the fw_cfg size is guest ABI and cannot change across
migration anyway.

> So both issues have other solutions, and I think it's a good
> idea to focus on them for now.
> Also, I really would like to avoid having ACPI sizing-related
> issues for this release. The memory of 2.1.X pain is too fresh :)

Yeah, I understand that.  But I think the scary part of this series is
actually the first two patches, rather than the ACPI sizing algorithm.

Paolo

> I'm not NACKing this patchset, but let's
> make some progress on the bigger issues listed above, then come
> back and address sizing as appropriate.
> 
> Thanks!
> 
>>
>> Paolo Bonzini (6):
>>     pc: initialize fw_cfg earlier
>>     pc: load the kernel after ACPI tables are built
>>     pc: redo sizing of reserved high memory area for -kernel/-initrd
>>     pc: introduce new ACPI table sizing algorithm
>>     pc: go back to smaller ACPI tables
>>     pc: clean up pre-2.1 compatibility code
>>
>>  hw/i386/acpi-build.c |   23 +++++++++-------
>>  hw/i386/pc.c         |   72 
>> +++++++++++++++++----------------------------------
>>  hw/i386/pc_piix.c    |   32 ++++++++++++++--------
>>  hw/i386/pc_q35.c     |    7 ++--
>>  include/hw/i386/pc.h |    4 ++
>>  5 files changed, 66 insertions(+), 72 deletions(-)


Reply via email to