From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: Re: [PATCH]: PVH: specify xen features strings cleany for PVH Date: Thu, 24 Jan 2013 15:13:36 -0800 Message-ID: <20130124151336.311c3456@mantra.us.oracle.com> References: <20130118173503.71de0603@mantra.us.oracle.com> <50FD3D6202000078000B7CE4@nat28.tlf.novell.com> <20130122151241.7ed034f4@mantra.us.oracle.com> <50FFABE702000078000B88E1@nat28.tlf.novell.com> <20130123144347.78ba0a3f@mantra.us.oracle.com> <51010A1802000078000B9027@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <51010A1802000078000B9027@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: Konrad Rzeszutek Wilk , xen-devel List-Id: xen-devel@lists.xenproject.org On Thu, 24 Jan 2013 09:16:56 +0000 "Jan Beulich" wrote: > This looks to be an incremental patch on top of something I > don't think I've seen - there's neither an embedded \0 nor any > redundancy being removed here, yet I'm sure that was so in the > prior patch, and these two were what I disliked most. So perhaps > sending out the original patch this one goes on top of was simply > never done? This is on top of what konrad already has in his linux tree so he can just apply it. Here's the final version of the file, just in case: /* Xen-specific pieces of head.S, intended to be included in the right place in head.S */ #ifdef CONFIG_XEN #include #include #include #include #include #include #include #ifdef CONFIG_XEN_X86_PVH #define PVH_FEATURES_STR "|writable_descriptor_tables|auto_translated_physmap|supervisor_mode_kernel|hvm_callback_vector" #else #define PVH_FEATURES_STR "" #endif __INIT ENTRY(startup_xen) cld #ifdef CONFIG_X86_32 mov %esi,xen_start_info mov $init_thread_union+THREAD_SIZE,%esp #else mov %rsi,xen_start_info mov $init_thread_union+THREAD_SIZE,%rsp #endif jmp xen_start_kernel __FINIT .pushsection .text .balign PAGE_SIZE ENTRY(hypercall_page) #define NEXT_HYPERCALL(x) \ ENTRY(xen_hypercall_##x) \ .skip 32 NEXT_HYPERCALL(set_trap_table) NEXT_HYPERCALL(mmu_update) NEXT_HYPERCALL(set_gdt) NEXT_HYPERCALL(stack_switch) NEXT_HYPERCALL(set_callbacks) NEXT_HYPERCALL(fpu_taskswitch) NEXT_HYPERCALL(sched_op_compat) NEXT_HYPERCALL(platform_op) NEXT_HYPERCALL(set_debugreg) NEXT_HYPERCALL(get_debugreg) NEXT_HYPERCALL(update_descriptor) NEXT_HYPERCALL(ni) NEXT_HYPERCALL(memory_op) NEXT_HYPERCALL(multicall) NEXT_HYPERCALL(update_va_mapping) NEXT_HYPERCALL(set_timer_op) NEXT_HYPERCALL(event_channel_op_compat) NEXT_HYPERCALL(xen_version) NEXT_HYPERCALL(console_io) NEXT_HYPERCALL(physdev_op_compat) NEXT_HYPERCALL(grant_table_op) NEXT_HYPERCALL(vm_assist) NEXT_HYPERCALL(update_va_mapping_otherdomain) NEXT_HYPERCALL(iret) NEXT_HYPERCALL(vcpu_op) NEXT_HYPERCALL(set_segment_base) NEXT_HYPERCALL(mmuext_op) NEXT_HYPERCALL(xsm_op) NEXT_HYPERCALL(nmi_op) NEXT_HYPERCALL(sched_op) NEXT_HYPERCALL(callback_op) NEXT_HYPERCALL(xenoprof_op) NEXT_HYPERCALL(event_channel_op) NEXT_HYPERCALL(physdev_op) NEXT_HYPERCALL(hvm_op) NEXT_HYPERCALL(sysctl) NEXT_HYPERCALL(domctl) NEXT_HYPERCALL(kexec_op) NEXT_HYPERCALL(tmem_op) /* 38 */ ENTRY(xen_hypercall_rsvr) .skip 320 NEXT_HYPERCALL(mca) /* 48 */ NEXT_HYPERCALL(arch_1) NEXT_HYPERCALL(arch_2) NEXT_HYPERCALL(arch_3) NEXT_HYPERCALL(arch_4) NEXT_HYPERCALL(arch_5) NEXT_HYPERCALL(arch_6) .balign PAGE_SIZE .popsection 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) #endif ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, _ASM_PTR startup_xen) ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, _ASM_PTR hypercall_page) ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .ascii "!writable_page_tables|pae_pgdir_above_4gb"; .asciz PVH_FEATURES_STR); ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes") 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_HV_START_LOW, _ASM_PTR __HYPERVISOR_VIRT_START) ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, _ASM_PTR 0) #endif /*CONFIG_XEN */