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

Re: [Xen-devel] [PATCH RESEND 00/14] Xen ARM DomU ACPI support



On 06/16/2016 07:20 AM, Wei Liu wrote:
> On Tue, Jun 07, 2016 at 12:00:26PM +0100, Julien Grall wrote:
>> Hello Shannon,
>>
>> On 07/06/16 02:07, Shannon Zhao wrote:
>>> On 2016/6/6 23:48, Julien Grall wrote:
>>>> On 06/06/16 13:26, Wei Liu wrote:
>>>>> On Tue, May 31, 2016 at 01:02:52PM +0800, Shannon Zhao wrote:
>>>>>> From: Shannon Zhao <shannon.zhao@xxxxxxxxxx>
>>>>>>
>>>>>> The design of this feature is described as below.
>>>>>> Firstly, the toolstack (libxl) generates the ACPI tables according the
>>>>>> number of vcpus and gic controller.
>>>>>>
>>>>>> Then, it copies these ACPI tables to DomU memory space and passes
>>>>>> them to UEFI firmware through the "ARM multiboot" protocol.
>>>>>>
>>>>>> At last, UEFI gets the ACPI tables through the "ARM multiboot" protocol
>>>>>> and installs these tables like the usual way and passes both ACPI and DT
>>>>>> information to the Xen DomU.
>>>>>>
>>>>>> Currently libxl only generates RSDP, XSDT, GTDT, MADT, FADT, DSDT tables
>>>>>> since it's enough now.
>>>>>>
>>>>>> This has been tested using guest kernel with the Dom0 ACPI support
>>>>>> patches which could be fetched from:
>>>>>> https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/log/?h=efi/arm-xen
>>>>>>
>>>>>>
>>>>>> Shannon Zhao (14):
>>>>>>    libxl/arm: Fix the function name in error log
>>>>>>    libxl/arm: Factor out codes for generating DTB
>>>>>>    libxc: Add placeholders for ACPI tables blob and size
>>>>>>    tools: add ACPI tables relevant definitions
>>>>>>    libxl/arm: Construct ACPI GTDT table
>>>>>>    libxl/arm: Construct ACPI FADT table
>>>>>>    libxl/arm: Construct ACPI DSDT table
>>>>>>    libxl/arm: Construct ACPI MADT table
>>>>>>    libxl/arm: Construct ACPI XSDT table
>>>>>>    libxl/arm: Construct ACPI RSDP table
>>>>>>    libxl/arm: Initialize domain param HVM_PARAM_CALLBACK_IRQ
>>>>>>    libxl/arm: Add ACPI module
>>>>>>    libxl/arm: initialize memory information of ACPI blob
>>>>>>    libxc/xc_dom_core: Copy ACPI tables to guest memory space
>>>>>>
>>>>> After going through this series, I think the code mostly looks good.
>>>>>
>>>>> There is one higher level question: you seem to have put a lot of the
>>>>> table construction code in libxl, while I failed to see why specific
>>>>> libxl information is needed. Have you considered moving the code to
>>>>> libxc?
>>>> I would rather avoid to have the device tree built by libxl and ACPI
>>>> tables built by libxc.
>>>>
>>>> I don't remember why we have decided to implement DT building in libxl,
>>>> I guess it is because we need to know which GIC version is used (GICv2
>>>> vs GICv3).
>>>>
>>>> In the long run, we might also need to have more part of the firmware
>>>> configurable (performance monitor support, memory layout, UART...).
>>>>
>>>> Most of those information are available easily in libxl, we would to
>>>> export them of libxc.
>>> Yes, and one more reason is that to support ACPI, it also needs to add
>>> the ACPI multiboot module in DT.
>> I don't consider this as a reason for building the ACPI tables in libxl. I
>> am more concerned about building the firmwares in different place.
>>
>> If we decide to build the ACPI tables in libxc, then the code to build the
>> device tree should move in libxc too.
>>
> I've read this sub-thread and the other thread in which Boris replied, I
> think due to the fact that libxl has more information at hand and libxc
> is intended to be simple, I think having the building code in libxl
> makes sense.
>
> Shannon, Boris and Julien, what do you guys think? Can we agree on
> something so that Shannon can move on with next iteration?

I kind of agree that libxl is perhaps a better place but it would be
good to have something more than "libxc is intended to be simple" that
tells us what goes where. In other words -- what libxl is for and what
libxc is for.

For example libxl_x86.c and xc_dom86.c. The latter has a comment at the
top that says this is for arch-specific code. But there is plenty of
arch-specific stuff (e820) in libxl file.

-boris


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.