[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] Re: [PATCH] ia64 build fixes
Any ideas on this failure when I try to boot Xen/ia64 on an Itanium 2 Processor system, the following message is repeated: "unknown hypercall 17c6" The number 17c6 sometimes changes and sometimes doesn't. Ronald A. Benson -----Original Message----- From: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Alex Williamson Sent: Saturday, April 01, 2006 1:47 PM To: Keir Fraser Cc: xen-devel; xen-ia64-devel Subject: [Xen-ia64-devel] Re: [PATCH] ia64 build fixes On Sat, 2006-04-01 at 11:10 +0100, Keir Fraser wrote: > Taken, thanks. Can you also look at supporting HYPERVISOR_sched_op() > before 3.0.2, in addition to the old HYPERVISOR_sched_op_compat()? Keir, Here's a patch that enables HYPERVISOR_sched_op() and HYPERVISOR_sched_opt_compat() for ia64. We currently have no users of this call, but there's no harm in enabling it (tested by adding a HYPERVISOR_yield() call to default_idle()). I did notice a problem with the compat interface though, nothing defines __XEN_INTERFACE_VERSION__ for the build of xen. We're therefore stuck on interface version 0x00000000 where __HYPERVISOR_sched_op_compat == __HYPERVISOR_sched_op. Thanks, Alex Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- diff -r 60071beccf18 xen/arch/ia64/xen/hypercall.c --- a/xen/arch/ia64/xen/hypercall.c Sat Apr 1 14:59:12 2006 +0100 +++ b/xen/arch/ia64/xen/hypercall.c Sat Apr 1 14:35:19 2006 -0700 @@ -38,7 +38,7 @@ hypercall_t ia64_hypercall_table[] = (hypercall_t)do_ni_hypercall, /* do_stack_switch */ (hypercall_t)do_ni_hypercall, /* do_set_callbacks */ (hypercall_t)do_ni_hypercall, /* do_fpu_taskswitch */ /* 5 */ - (hypercall_t)do_ni_hypercall, /* do_sched_op_compat */ + (hypercall_t)do_sched_op_compat, (hypercall_t)do_dom0_op, (hypercall_t)do_ni_hypercall, /* do_set_debugreg */ (hypercall_t)do_ni_hypercall, /* do_get_debugreg */ @@ -61,7 +61,7 @@ hypercall_t ia64_hypercall_table[] = (hypercall_t)do_ni_hypercall, /* do_mmuext_op */ (hypercall_t)do_ni_hypercall, /* do_acm_op */ (hypercall_t)do_ni_hypercall, /* do_nmi_op */ - (hypercall_t)do_ni_hypercall, /* */ + (hypercall_t)do_sched_op, (hypercall_t)do_ni_hypercall, /* */ /* 30 */ (hypercall_t)do_ni_hypercall /* */ }; @@ -70,6 +70,11 @@ xen_hypercall (struct pt_regs *regs) xen_hypercall (struct pt_regs *regs) { switch (regs->r2) { + case __HYPERVISOR_sched_op_compat: + regs->r8 = do_sched_op_compat((int) regs->r14, + (unsigned long) regs->r15); + break; + case __HYPERVISOR_dom0_op: regs->r8 = do_dom0_op(guest_handle_from_ptr(regs->r14, dom0_op_t)); @@ -116,6 +121,13 @@ xen_hypercall (struct pt_regs *regs) case __HYPERVISOR_multicall: regs->r8 = do_multicall(guest_handle_from_ptr(regs->r14, multicall_entry_t), (unsigned int) regs->r15); break; + +#if __XEN_INTERFACE_VERSION__ >= 0x00030101 + case __HYPERVISOR_sched_op: + regs->r8 = do_sched_op((int) regs->r14, + guest_handle_from_ptr(regs->r15, void)); + break; +#endif default: printf("unknown xen hypercall %lx\n", regs->r2); _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel --- Begin Message --- _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |