[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/Xen: tidy xen-head.S
On 15.02.23 13:42, Jan Beulich wrote: On 15.02.2023 13:05, Juergen Gross wrote:On 15.02.23 12:33, Jan Beulich wrote:First of all drop 32-bit leftovers, including the inclusion of the file from head_32.S.I don't see why we would want to drop 32-bit HVM and PVH support.HVM doesn't use this, does it? But yes, the PVH aspect as well as ... hypercall_page is located in xen-head.S. --- a/arch/x86/kernel/head_32.S +++ b/arch/x86/kernel/head_32.S @@ -524,8 +524,6 @@ __INITRODATA int_msg: .asciz "Unknown interrupt or fault at: %p %p %p\n"-#include "../../x86/xen/xen-head.S"-This is wrong for non-PV cases.... this and ...--- a/arch/x86/xen/xen-head.S +++ b/arch/x86/xen/xen-head.S @@ -83,27 +83,33 @@ SYM_CODE_END(asm_cpu_bringup_and_idle) ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") -#ifdef CONFIG_X86_32 - ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, _ASM_PTR __PAGE_OFFSET) -#else ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, _ASM_PTR __START_KERNEL_map)This will be wrong for 32-bit guests now. I'm not sure the value is really used in Xen for non-PV guests, though./* Map the p2m table to a 512GB-aligned user address. */ ELFNOTE(Xen, XEN_ELFNOTE_INIT_P2M, .quad (PUD_SIZE * PTRS_PER_PUD))Move this under the CONFIG_PV umbrella?... these occurred to me over lunch (and I was hoping to be able to point out my mistake before getting feedback). I'll check whether VIRT_BASE can also be moved into the PV-only section. Thanks. -#endif #ifdef CONFIG_XEN_PV ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, _ASM_PTR startup_xen) + ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .ascii "!writable_page_tables") + ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes") + ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID, + .quad _PAGE_PRESENT; .quad _PAGE_PRESENT) +# define FEATURES_PV (1 << XENFEAT_writable_page_tables) +#else +# define FEATURES_PV 0 +#endif +#ifdef CONFIG_XEN_PVH +# define FEATURES_PVH (1 << XENFEAT_linux_rsdp_unrestricted) +#else +# define FEATURES_PVH 0 +#endif +#ifdef CONFIG_XEN_DOM0 +# define FEATURES_DOM0 (1 << XENFEAT_dom0) +#else +# define FEATURES_DOM0 0 #endif ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, _ASM_PTR hypercall_page) - ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, - .ascii "!writable_page_tables|pae_pgdir_above_4gb") ELFNOTE(Xen, XEN_ELFNOTE_SUPPORTED_FEATURES, - .long (1 << XENFEAT_writable_page_tables) | \ - (1 << XENFEAT_dom0) | \ - (1 << XENFEAT_linux_rsdp_unrestricted)) - ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes") + .long FEATURES_PV | FEATURES_PVH | FEATURES_DOM0) ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic") - ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID, - .quad _PAGE_PRESENT; .quad _PAGE_PRESENT) ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1) ELFNOTE(Xen, XEN_ELFNOTE_MOD_START_PFN, .long 1) ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW, _ASM_PTR __HYPERVISOR_VIRT_START)Are XEN_ELFNOTE_MOD_START_PFN and XEN_ELFNOTE_HV_START_LOW really relevant for the non-PV case? I don't think so (in theory XEN_ELFNOTE_MOD_START_PFN could be used, but the main reason for its introduction was PV guests IIRC).I wasn't sufficiently certain for MOD_START_PFN, so I'd prefer to leave it untouched for now. HV_START_LOW might be 32-bit PV only really; I'll check and then maybe drop (or move). Fine with me. Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |