Keir, The patch below is necessary to get ia64 building on current xen-unstable.hg. Thanks, Alex Signed-off-by: Alex Williamson <alex.williamson@hp.com> --- diff -r 3983e4f1b054 xen/arch/ia64/Rules.mk --- a/xen/arch/ia64/Rules.mk Sun Mar 12 10:03:33 2006 +0100 +++ b/xen/arch/ia64/Rules.mk Mon Mar 13 09:36:01 2006 -0700 @@ -12,7 +12,7 @@ CPPFLAGS += -I$(BASEDIR)/include -I$(BA -I$(BASEDIR)/include/asm-ia64/linux-null \ -I$(BASEDIR)/arch/ia64/linux -I$(BASEDIR)/arch/ia64/linux-xen -CFLAGS := -nostdinc -fno-builtin -fno-common -fno-strict-aliasing +CFLAGS += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing #CFLAGS += -O3 # -O3 over-inlines making debugging tough! CFLAGS += -O2 # but no optimization causes compile errors! #CFLAGS += -iwithprefix include -Wall -DMONITOR_BASE=$(MONITOR_BASE) diff -r 3983e4f1b054 xen/include/asm-ia64/xensystem.h --- a/xen/include/asm-ia64/xensystem.h Sun Mar 12 10:03:33 2006 +0100 +++ b/xen/include/asm-ia64/xensystem.h Mon Mar 13 09:36:02 2006 -0700 @@ -75,5 +75,7 @@ extern struct task_struct *vmx_ia64_swit // FIXME SMP... see system.h, does this need to be different? #define switch_to(prev,next,last) __switch_to(prev, next, last) +#define local_irq_is_enabled() (!irqs_disabled()) + #endif // __ASSEMBLY__ #endif // _ASM_IA64_XENSYSTEM_H _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Include features header in xenbus_probe and build features.c Signed-off-by: Alex Williamson <alex.williamson@hp.com> --- diff -r d76a7a40f3a9 linux-2.6-xen-sparse/arch/ia64/xen/drivers/coreMakefile --- a/linux-2.6-xen-sparse/arch/ia64/xen/drivers/coreMakefile Fri Mar 31 17:44:26 2006 +0100 +++ b/linux-2.6-xen-sparse/arch/ia64/xen/drivers/coreMakefile Fri Mar 31 16:31:41 2006 -0700 @@ -10,7 +10,7 @@ CPPFLAGS_vmlinux.lds += -U$(XENARCH) @ln -fsn $(srctree)/arch/$(XENARCH)/kernel/vmlinux.lds.S $@ -obj-y := gnttab.o +obj-y := gnttab.o features.o obj-$(CONFIG_PROC_FS) += xen_proc.o ifeq ($(ARCH),ia64) diff -r d76a7a40f3a9 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Mar 31 17:44:26 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c Fri Mar 31 16:31:41 2006 -0700 @@ -49,6 +49,7 @@ #include <xen/xenbus.h> #include <xen/xen_proc.h> #include <xen/evtchn.h> +#include <xen/features.h> #include "xenbus_comms.h" _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 1 Apr 2006, at 00:44, Alex Williamson wrote:> Include features header in xenbus_probe and build features.c > > Signed-off-by: Alex Williamson <alex.williamson@hp.com>Taken, thanks. Can you also look at supporting HYPERVISOR_sched_op() before 3.0.2, in addition to the old HYPERVISOR_sched_op_compat()? It should be pretty trivial to do. You''d want to base the patch on a tree after changeset 9510, as I internally rename sched_op/sched_op_new in that patch. After 3.0.2 we''ll be removing the fallback to sched_op_compat in the Linux tree (it''s fairly pointless as we broke compatibility of new guest on old Xen in other ways too since 3.0.1). If we do that before you add support for the new hypercall, we''ll break ia64. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
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@hp.com> --- 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-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 1 Apr 2006, at 22:46, Alex Williamson wrote:> 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.Well, it doesn''t actually matter right now since Xen itself does not use the __HYPERVISOR_foo numbers. But yes, I can see this might bite us later so we ought to define it. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 2 Apr 2006, at 09:20, Keir Fraser wrote:>> 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. > > Well, it doesn''t actually matter right now since Xen itself does not > use the __HYPERVISOR_foo numbers. But yes, I can see this might bite > us later so we ought to define it.Ah, I''m forgetting you have a hypercall switch statement. I''ll add the version number. With regard to your patch, actually I was thinking more about the vmx hypercall interface which already supports sched_op_compat --- should that one have sched_op added too, in vmx_hypercall.c? -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Sun, 2006-04-02 at 09:20 +0100, Keir Fraser wrote:> On 1 Apr 2006, at 22:46, Alex Williamson wrote: > > > 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. > > Well, it doesn''t actually matter right now since Xen itself does not > use the __HYPERVISOR_foo numbers. But yes, I can see this might bite us > later so we ought to define it.I was using them in some debugging code the other day and it bit me :-( Christian suggested changing xen-compat.h to use the maximum version when compiling Xen. e.g. #ifndef __XEN_INTERFACE_VERSION__ #ifdef __XEN__ #define __XEN_INTERFACE_VERSION__ 0xffffffff #else #define __XEN_INTERFACE_VERSION__ 0x00000000 #endif #endif Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
>From: Keir Fraser >Sent: 2006年4月2日 16:32 >With regard to your patch, actually I was thinking more about the vmx >hypercall interface which already supports sched_op_compat --- should >that one have sched_op added too, in vmx_hypercall.c? > > -- Keir >Vmx_hypercall.c is used in a broken feature where dom0 is also running with assist of VT-I, or may be used for future VTI domainN where some para-modules want to issue hypercall traffic with Xen. It''s OK to forget this file for now and we will evaluate which set of ops are really required later, or even merge the two paths together when re-picking that model. :-) Thanks, Kevin _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Maybe Matching Threads
- [PATCH][1/6] add a hypercall number for virtual device in unmodified guest
- A race condition introduced by changeset 15175: Re-init hypercall stubs page after HVM save/restore
- [PATCH 05/14] arm: implement exception and hypercall entries.
- [PATCH][RFC]xenperf hypercall pretty print TAKE 2
- where is the location of definition of "do_xen_version"?