qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 0/8] spapr: bootindex support


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] [PATCH v4 0/8] spapr: bootindex support
Date: Fri, 13 Dec 2013 14:19:04 +1100
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1

On 12/13/2013 01:05 AM, Michael S. Tsirkin wrote:
> On Wed, Dec 11, 2013 at 09:22:13PM +1100, Alexey Kardashevskiy wrote:
>> With the great help from Paolo, I am presenting yet another try of bootindex
>> support on sPAPR, this time with some QOM fixes. Details are in the commit 
>> messages.
>> Please, comment. Thanks.
>>
>> Alexey Kardashevskiy (5):
>>   boot: extend get_boot_devices_list() to ignore suffixes
>>   spapr-llan: add to boot device list
>>   spapr-vio: fix firmware names
>>   qdev: introduce FWPathProvider interface
>>   spapr: define interface to fix device pathname
>>
>> Hervé Poussineau (1):
>>   qom: detect bad reentrance during object_class_foreach
>>
>> Paolo Bonzini (2):
>>   qom: do not register interface "types" in the type table
>>   vl: allow customizing the class of /machine
> 
> Looks good overall.
> But this seems to suffer from the same problem as existing
> bootindex code on x86: you can't add a bootable device
> by hotplug.


Why? The boot list is delivered to SLOF via the device tree which is
composed on a machine reset (spapr_finalize_fdt() calls
get_boot_devices_list() and that's it) so if a bootable device was
hotplugged, then after reset it will be in the list.


> And we really want to fix it on x86 too.

> This might be fixable using FW CFG read callback, and updating
> the bootindex blob dynamically.
> See how e.g. acpi_build_update works.

Sorry, since I do not have good understanding what is happening in x86, I
need more details.

Because I would implement qemu_add_machine_reset_notifier (copied from
qemu_add_machine_init_done_notifier thing) and make fw_cfg_init() register
a reset notifier.

Or just call qemu_add_machine_init_done_notifier() on a machine reset - I
do not really see a code in any of those notifiers which could not be
executed on a machine reset (but again, I am even more ignorant in x86
field than usual :) ).


-- 
Alexey



reply via email to

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