|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC Design Doc] Add vNVDIMM support for Xen
>>> On 24.02.16 at 16:48, <haozhong.zhang@xxxxxxxxx> wrote:
> On 02/24/16 07:24, Jan Beulich wrote:
>> >>> On 24.02.16 at 14:28, <haozhong.zhang@xxxxxxxxx> wrote:
>> > On 02/18/16 10:17, Jan Beulich wrote:
>> >> >>> On 01.02.16 at 06:44, <haozhong.zhang@xxxxxxxxx> wrote:
>> >> > 3.3 Guest ACPI Emulation
>> >> >
>> >> > 3.3.1 My Design
>> >> >
>> >> > Guest ACPI emulation is composed of two parts: building guest NFIT
>> >> > and SSDT that defines ACPI namespace devices for NVDIMM, and
>> >> > emulating guest _DSM.
>> >> >
>> >> > (1) Building Guest ACPI Tables
>> >> >
>> >> > This design reuses and extends hvmloader's existing mechanism that
>> >> > loads passthrough ACPI tables from binary files to load NFIT and
>> >> > SSDT tables built by QEMU:
>> >> > 1) Because the current QEMU does not building any ACPI tables when
>> >> > it runs as the Xen device model, this design needs to patch QEMU
>> >> > to build NFIT and SSDT (so far only NFIT and SSDT) in this case.
>> >> >
>> >> > 2) QEMU copies NFIT and SSDT to the end of guest memory below
>> >> > 4G. The guest address and size of those tables are written into
>> >> > xenstore (/local/domain/domid/hvmloader/dm-acpi/{address,length}).
>> >> >
>> >> > 3) hvmloader is patched to probe and load device model passthrough
>> >> > ACPI tables from above xenstore keys. The detected ACPI tables
>> >> > are then appended to the end of existing guest ACPI tables just
>> >> > like what current construct_passthrough_tables() does.
>> >> >
>> >> > Reasons for this design are listed below:
>> >> > - NFIT and SSDT in question are quite self-contained, i.e. they do
>> >> > not refer to other ACPI tables and not conflict with existing
>> >> > guest ACPI tables in Xen. Therefore, it is safe to copy them from
>> >> > QEMU and append to existing guest ACPI tables.
>> >>
>> >> How is this not conflicting being guaranteed? In particular I don't
>> >> see how tables containing AML code and coming from different
>> >> sources won't possibly cause ACPI name space collisions.
>> >>
>> >
>> > Really there is no effective mechanism to avoid ACPI name space
>> > collisions (and other kinds of conflicts) between ACPI tables loaded
>> > from QEMU and ACPI tables built by hvmloader. Because which ACPI tables
>> > are loaded is determined by developers, IMO it's developers'
>> > responsibility to avoid any collisions and conflicts with existing ACPI
>> > tables.
>>
>> Right, but this needs to be spelled out and settled on at design
>> time (i.e. now), rather leaving things unspecified, awaiting the
>> first clash.
>
> So that means if no collision-proof mechanism is introduced, Xen should not
> trust any passed-in ACPI tables and should build them by itself?
Basically yes, albeit collision-proof may be too much to demand.
Simply separating name spaces (for hvmloader and qemu to have
their own sub-spaces) would be sufficient imo. We should trust
ourselves to play by such a specification.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |