On 04/05/2018 01:11 PM, Juergen Gross wrote: > On 05/04/18 16:56, George Dunlap wrote: >> On Thu, Apr 5, 2018 at 3:09 PM, Juergen Gross <jgr...@suse.com> wrote: >>> On 05/04/18 15:42, George Dunlap wrote: >>>> On Thu, Apr 5, 2018 at 2:06 PM, Juergen Gross <jgr...@suse.com> wrote: >>>>> On 05/04/18 15:00, Boris Ostrovsky wrote: >>>>>> On 04/05/2018 08:19 AM, Juergen Gross wrote: >>>>>>> On 05/04/18 12:06, George Dunlap wrote: >>>>>>> >>>>>>>> Aren't there flags in the binary somewhere that could tell the >>>>>>>> toolstack / Xen whether the kernel in question needs the RSDP table in >>>>>>>> lowmem, or whether it can be put higher? >>>>>>> Not really. Analyzing the binary whether it accesses the rsdp_addr in >>>>>>> the start_info isn't the way to go, IMO. >>>>>>> >>>>>>> I've sent a patch to xen-devel adding a quirk flag to the domain's >>>>>>> config to enable the admin special casing such an "old" kernel. >>>>>> Can we backport latest struct hvm_start_info changes (which bumped >>>>>> interface version) to 4.11 and pass RSDP only for versions >=1? >>>>> And this would help how? >>>>> >>>>> RSDP address is passed today, the kernel just doesn't read it. And >>>>> how should Xen know which interface version the kernel is supporting? >>>>> And Xen needs to know that in advance in order to place the RSDP in >>>>> low memory in case the kernel isn't reading the RSDP address from >>>>> start_info. >>>> But the kernel image has ELF notes, right? You can put one that >>>> indicates that this binary *does* know how to read the RSDP from the >>>> start_info, and if you don't find that, put it in lowmem. >>> Sow you would hurt BSD which does read the RSDP address correctly but >>> (today) has no such ELF note.
This can be predicated on ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") BSD will behave as it does now. For linux we could add feature flag (or errata flag). Unfortunately I don't see a way to extract major.minor from the headers, otherwise we could use that. -boris >>> >>> I think extending the PVH interface in such a way is no good idea. >> Option 1: Put the RSDP in lowmem unless we know the guest will use the >> address in start_info >> Pro: Existing Linux instances boot >> Con: Existing BSD instances whose memory is an exact multiple of 1 GiB >> will have slightly slower TLB miss times. > ... whose memory is >=1GiB ... > >> Option 2: Put the RSDP in highmem regardless >> Pro: Existing BSD instances whose memory is an exact multiple of 1GiB > ... whose memory is >=1GiB ... > >> will have slightly faster TLB miss times >> Con: Existing Linux instances don't boot at all > Option 3: add a config item to domain config for selecting the RSDP > placement, defaulting to highmem (my patch) > Pro: Existing BSD and new Linux instances whose memory is >=1GiB will > have slightly faster TLB miss times > Pro: Existing Linux instances can be made bootable by adding a new > item to their domain config > > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel