[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] [PATCH] tmem stub for 3.4
The full tmem patch returns -ENODEV if tmem is present and disabled. I suppose it makes no difference whether the stub returns -ENODEV or -ENOSYS, but I'd still like to see the patch taken to ensure the slot is clearly reserved and to printk the warning. Dan > -----Original Message----- > From: Jan Beulich [mailto:jbeulich@xxxxxxxxxx] > Sent: Thursday, March 19, 2009 9:01 AM > To: Dan Magenheimer > Cc: Keir Fraser; Xen-Devel (E-mail) > Subject: Re: [Xen-devel] [PATCH] tmem stub for 3.4 > > > Why would failing with -ENODEV be more graceful than failing > with -ENOSYS? > In my opinion it just makes eventual compatibility handling > slightly more > convoluted on the kernel side, as it then will require > checking for two > different return codes to distinguish non-fatal from possibly > fatal failure. > > Jan > > >>> Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> 19.03.09 15:42 >>> > After lengthy discussion with Keir and Ian, we agreed that > it is too close to 3.4 freeze to put in the transcendent memory > (tmem) patch. Instead, it will be added as soon as xen-unstable > unfreezes following 3.4. > > This patch reserves the hypercall number for tmem and > adds a stub to allow tmem-modified guests to fail gracefully > on the 3.4 release. > > (Patch also attached in case my mailer messes up the formatting.) > > Signed-off-by: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> > > diff -r 2039e8271051 xen/arch/x86/x86_32/entry.S > --- a/xen/arch/x86/x86_32/entry.S Wed Mar 18 17:30:13 2009 +0000 > +++ b/xen/arch/x86/x86_32/entry.S Thu Mar 19 08:31:35 2009 -0600 > @@ -703,6 +703,7 @@ ENTRY(hypercall_table) > .long do_sysctl /* 35 */ > .long do_domctl > .long do_kexec_op > + .long do_tmem_op > .rept __HYPERVISOR_arch_0-((.-hypercall_table)/4) > .long do_ni_hypercall > .endr > @@ -750,6 +751,7 @@ ENTRY(hypercall_args_table) > .byte 1 /* do_sysctl */ /* 35 */ > .byte 1 /* do_domctl */ > .byte 2 /* do_kexec_op */ > + .byte 1 /* do_tmem_op */ > .rept __HYPERVISOR_arch_0-(.-hypercall_args_table) > .byte 0 /* do_ni_hypercall */ > .endr > diff -r 2039e8271051 xen/arch/x86/x86_64/compat/entry.S > --- a/xen/arch/x86/x86_64/compat/entry.S Wed Mar 18 > 17:30:13 2009 +0000 > +++ b/xen/arch/x86/x86_64/compat/entry.S Thu Mar 19 > 08:31:35 2009 -0600 > @@ -408,6 +408,7 @@ ENTRY(compat_hypercall_table) > .quad do_sysctl /* 35 */ > .quad do_domctl > .quad compat_kexec_op > + .quad do_tmem_op > .rept __HYPERVISOR_arch_0-((.-compat_hypercall_table)/8) > .quad compat_ni_hypercall > .endr > @@ -455,6 +456,7 @@ ENTRY(compat_hypercall_args_table) > .byte 1 /* do_sysctl */ /* 35 */ > .byte 1 /* do_domctl */ > .byte 2 /* compat_kexec_op */ > + .byte 1 /* do_tmem_op */ > .rept __HYPERVISOR_arch_0-(.-compat_hypercall_args_table) > .byte 0 /* compat_ni_hypercall */ > .endr > diff -r 2039e8271051 xen/arch/x86/x86_64/entry.S > --- a/xen/arch/x86/x86_64/entry.S Wed Mar 18 17:30:13 2009 +0000 > +++ b/xen/arch/x86/x86_64/entry.S Thu Mar 19 08:31:35 2009 -0600 > @@ -692,6 +692,7 @@ ENTRY(hypercall_table) > .quad do_sysctl /* 35 */ > .quad do_domctl > .quad do_kexec_op > + .quad do_tmem_op > .rept __HYPERVISOR_arch_0-((.-hypercall_table)/8) > .quad do_ni_hypercall > .endr > @@ -739,6 +740,7 @@ ENTRY(hypercall_args_table) > .byte 1 /* do_sysctl */ /* 35 */ > .byte 1 /* do_domctl */ > .byte 2 /* do_kexec */ > + .byte 1 /* do_tmem_op */ > .rept __HYPERVISOR_arch_0-(.-hypercall_args_table) > .byte 0 /* do_ni_hypercall */ > .endr > diff -r 2039e8271051 xen/common/memory.c > --- a/xen/common/memory.c Wed Mar 18 17:30:13 2009 +0000 > +++ b/xen/common/memory.c Thu Mar 19 08:31:35 2009 -0600 > @@ -560,6 +560,19 @@ long do_memory_op(unsigned long cmd, XEN > return rc; > } > > +/* temporary placeholder for tmem hypercall */ > +int do_tmem_op(void *tmem_op) > +{ > + static int warned = 0; > + > + if ( !warned ) > + { > + printk("tmem: not implemented\n"); > + warned = 1; > + } > + return -ENODEV; > +} > + > /* > * Local variables: > * mode: C > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |