Dan Magenheimer
2009-Dec-16 20:27 UTC
[Xen-devel] RE: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.
Is this patch supposed to allow an application in an HVM domain to successfully execute an rdtscp instruction even on a processor that doesn''t have hardware support for the instruction? If so, I tried it and it doesn''t seem to work. The app segfaults (same, I think, as it did before the patch).> -----Original Message----- > From: Xen patchbot-unstable > [mailto:patchbot-unstable@lists.xensource.com] > Sent: Wednesday, December 16, 2009 7:00 AM > To: xen-changelog@lists.xensource.com > Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP > instruction. > > > # HG changeset patch > # User Keir Fraser <keir.fraser@citrix.com> > # Date 1260967518 0 > # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331 > # Parent b543acc1aaad743f20e8ee44ab048ca239350685 > x86_emulate: Emulate RDTSCP instruction. > > Signed-off-by: Keir Fraser <keir.fraser@citrix.com> > --- > xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++- > 1 files changed, 12 insertions(+), 1 deletion(-) > > diff -r b543acc1aaad -r cbcb3d564b2f > xen/arch/x86/x86_emulate/x86_emulate.c > --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 > 12:32:35 2009 +0000 > +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 > 12:45:18 2009 +0000 > @@ -292,6 +292,7 @@ struct operand { > #define MSR_LSTAR 0xc0000082 > #define MSR_CSTAR 0xc0000083 > #define MSR_FMASK 0xc0000084 > +#define MSR_TSC_AUX 0xc0000103 > > /* Control register flags. */ > #define CR0_PE (1<<0) > @@ -3503,6 +3504,16 @@ x86_emulate( > break; > } > > + if ( modrm == 0xf9 ) /* rdtscp */ > + { > + uint64_t tsc_aux; > + fail_if(ops->read_msr == NULL); > + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux, > ctxt)) != 0 ) > + goto done; > + _regs.ecx = (uint32_t)tsc_aux; > + goto rdtsc; > + } > + > switch ( modrm_reg & 7 ) > { > case 0: /* sgdt */ > @@ -3712,7 +3723,7 @@ x86_emulate( > break; > } > > - case 0x31: /* rdtsc */ { > + case 0x31: rdtsc: /* rdtsc */ { > unsigned long cr4; > uint64_t val; > if ( !mode_ring0() ) > > _______________________________________________ > Xen-changelog mailing list > Xen-changelog@lists.xensource.com > http://lists.xensource.com/xen-changelog >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2009-Dec-16 22:30 UTC
[Xen-devel] Re: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.
Would have done if the original HVM TSC_AUX patch was up to it. I''ve rewritten it about 1/4 the size and does more, as c/s 20646. -- Keir On 16/12/2009 20:27, "Dan Magenheimer" <dan.magenheimer@oracle.com> wrote:> Is this patch supposed to allow an application > in an HVM domain to successfully execute an rdtscp > instruction even on a processor that doesn''t have > hardware support for the instruction? > > If so, I tried it and it doesn''t seem to work. > The app segfaults (same, I think, as it did before > the patch). > >> -----Original Message----- >> From: Xen patchbot-unstable >> [mailto:patchbot-unstable@lists.xensource.com] >> Sent: Wednesday, December 16, 2009 7:00 AM >> To: xen-changelog@lists.xensource.com >> Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP >> instruction. >> >> >> # HG changeset patch >> # User Keir Fraser <keir.fraser@citrix.com> >> # Date 1260967518 0 >> # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331 >> # Parent b543acc1aaad743f20e8ee44ab048ca239350685 >> x86_emulate: Emulate RDTSCP instruction. >> >> Signed-off-by: Keir Fraser <keir.fraser@citrix.com> >> --- >> xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++- >> 1 files changed, 12 insertions(+), 1 deletion(-) >> >> diff -r b543acc1aaad -r cbcb3d564b2f >> xen/arch/x86/x86_emulate/x86_emulate.c >> --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 >> 12:32:35 2009 +0000 >> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 >> 12:45:18 2009 +0000 >> @@ -292,6 +292,7 @@ struct operand { >> #define MSR_LSTAR 0xc0000082 >> #define MSR_CSTAR 0xc0000083 >> #define MSR_FMASK 0xc0000084 >> +#define MSR_TSC_AUX 0xc0000103 >> >> /* Control register flags. */ >> #define CR0_PE (1<<0) >> @@ -3503,6 +3504,16 @@ x86_emulate( >> break; >> } >> >> + if ( modrm == 0xf9 ) /* rdtscp */ >> + { >> + uint64_t tsc_aux; >> + fail_if(ops->read_msr == NULL); >> + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux, >> ctxt)) != 0 ) >> + goto done; >> + _regs.ecx = (uint32_t)tsc_aux; >> + goto rdtsc; >> + } >> + >> switch ( modrm_reg & 7 ) >> { >> case 0: /* sgdt */ >> @@ -3712,7 +3723,7 @@ x86_emulate( >> break; >> } >> >> - case 0x31: /* rdtsc */ { >> + case 0x31: rdtsc: /* rdtsc */ { >> unsigned long cr4; >> uint64_t val; >> if ( !mode_ring0() ) >> >> _______________________________________________ >> Xen-changelog mailing list >> Xen-changelog@lists.xensource.com >> http://lists.xensource.com/xen-changelog >>_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dan Magenheimer
2009-Dec-17 01:47 UTC
[Xen-devel] RE: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.
Looks like it works now.> -----Original Message----- > From: Keir Fraser [mailto:keir.fraser@eu.citrix.com] > Sent: Wednesday, December 16, 2009 3:30 PM > To: Dan Magenheimer; xen-devel@lists.xensource.com > Subject: Re: [Xen-changelog] [xen-unstable] x86_emulate: > Emulate RDTSCP > instruction. > > > Would have done if the original HVM TSC_AUX patch was up to it. I''ve > rewritten it about 1/4 the size and does more, as c/s 20646. > > -- Keir > > On 16/12/2009 20:27, "Dan Magenheimer" > <dan.magenheimer@oracle.com> wrote: > > > Is this patch supposed to allow an application > > in an HVM domain to successfully execute an rdtscp > > instruction even on a processor that doesn''t have > > hardware support for the instruction? > > > > If so, I tried it and it doesn''t seem to work. > > The app segfaults (same, I think, as it did before > > the patch). > > > >> -----Original Message----- > >> From: Xen patchbot-unstable > >> [mailto:patchbot-unstable@lists.xensource.com] > >> Sent: Wednesday, December 16, 2009 7:00 AM > >> To: xen-changelog@lists.xensource.com > >> Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP > >> instruction. > >> > >> > >> # HG changeset patch > >> # User Keir Fraser <keir.fraser@citrix.com> > >> # Date 1260967518 0 > >> # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331 > >> # Parent b543acc1aaad743f20e8ee44ab048ca239350685 > >> x86_emulate: Emulate RDTSCP instruction. > >> > >> Signed-off-by: Keir Fraser <keir.fraser@citrix.com> > >> --- > >> xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++- > >> 1 files changed, 12 insertions(+), 1 deletion(-) > >> > >> diff -r b543acc1aaad -r cbcb3d564b2f > >> xen/arch/x86/x86_emulate/x86_emulate.c > >> --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 > >> 12:32:35 2009 +0000 > >> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 > >> 12:45:18 2009 +0000 > >> @@ -292,6 +292,7 @@ struct operand { > >> #define MSR_LSTAR 0xc0000082 > >> #define MSR_CSTAR 0xc0000083 > >> #define MSR_FMASK 0xc0000084 > >> +#define MSR_TSC_AUX 0xc0000103 > >> > >> /* Control register flags. */ > >> #define CR0_PE (1<<0) > >> @@ -3503,6 +3504,16 @@ x86_emulate( > >> break; > >> } > >> > >> + if ( modrm == 0xf9 ) /* rdtscp */ > >> + { > >> + uint64_t tsc_aux; > >> + fail_if(ops->read_msr == NULL); > >> + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux, > >> ctxt)) != 0 ) > >> + goto done; > >> + _regs.ecx = (uint32_t)tsc_aux; > >> + goto rdtsc; > >> + } > >> + > >> switch ( modrm_reg & 7 ) > >> { > >> case 0: /* sgdt */ > >> @@ -3712,7 +3723,7 @@ x86_emulate( > >> break; > >> } > >> > >> - case 0x31: /* rdtsc */ { > >> + case 0x31: rdtsc: /* rdtsc */ { > >> unsigned long cr4; > >> uint64_t val; > >> if ( !mode_ring0() ) > >> > >> _______________________________________________ > >> Xen-changelog mailing list > >> Xen-changelog@lists.xensource.com > >> http://lists.xensource.com/xen-changelog > >> > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Zhang, Xiantao
2009-Dec-17 05:56 UTC
RE: [Xen-devel] Re: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.
Hi, Keir After adding the logic, it can solve the migration issue between rdtscp-capable machine and rdtsc-less machine, but it also introduces a security hole at the same time. Imagine the case below: If boot a guest on a rdtsc-less machine and cpuid instruction tells the guest OS that processor doesn''t support rdtscp instruction, but rdtscp can execute successfully on it instead of hitting a expected #UD exception. And guest can use this security hole to detect whether it is running in a virutal machine or not. Thanks! Xiantao Keir Fraser wrote:> Would have done if the original HVM TSC_AUX patch was up to it. I''ve > rewritten it about 1/4 the size and does more, as c/s 20646. > > -- Keir > > On 16/12/2009 20:27, "Dan Magenheimer" <dan.magenheimer@oracle.com> > wrote: > >> Is this patch supposed to allow an application >> in an HVM domain to successfully execute an rdtscp >> instruction even on a processor that doesn''t have >> hardware support for the instruction? >> >> If so, I tried it and it doesn''t seem to work. >> The app segfaults (same, I think, as it did before >> the patch). >> >>> -----Original Message----- >>> From: Xen patchbot-unstable >>> [mailto:patchbot-unstable@lists.xensource.com] >>> Sent: Wednesday, December 16, 2009 7:00 AM >>> To: xen-changelog@lists.xensource.com >>> Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP >>> instruction. >>> >>> >>> # HG changeset patch >>> # User Keir Fraser <keir.fraser@citrix.com> >>> # Date 1260967518 0 >>> # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331 >>> # Parent b543acc1aaad743f20e8ee44ab048ca239350685 >>> x86_emulate: Emulate RDTSCP instruction. >>> >>> Signed-off-by: Keir Fraser <keir.fraser@citrix.com> --- >>> xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++- >>> 1 files changed, 12 insertions(+), 1 deletion(-) >>> >>> diff -r b543acc1aaad -r cbcb3d564b2f >>> xen/arch/x86/x86_emulate/x86_emulate.c >>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 12:32:35 >>> 2009 +0000 +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 >>> 12:45:18 2009 +0000 @@ -292,6 +292,7 @@ struct operand { >>> #define MSR_LSTAR 0xc0000082 >>> #define MSR_CSTAR 0xc0000083 >>> #define MSR_FMASK 0xc0000084 >>> +#define MSR_TSC_AUX 0xc0000103 >>> >>> /* Control register flags. */ >>> #define CR0_PE (1<<0) >>> @@ -3503,6 +3504,16 @@ x86_emulate( >>> break; >>> } >>> >>> + if ( modrm == 0xf9 ) /* rdtscp */ >>> + { >>> + uint64_t tsc_aux; >>> + fail_if(ops->read_msr == NULL); >>> + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux, ctxt)) >>> != 0 ) + goto done; >>> + _regs.ecx = (uint32_t)tsc_aux; >>> + goto rdtsc; >>> + } >>> + >>> switch ( modrm_reg & 7 ) >>> { >>> case 0: /* sgdt */ >>> @@ -3712,7 +3723,7 @@ x86_emulate( >>> break; >>> } >>> >>> - case 0x31: /* rdtsc */ { >>> + case 0x31: rdtsc: /* rdtsc */ { >>> unsigned long cr4; >>> uint64_t val; >>> if ( !mode_ring0() ) >>> >>> _______________________________________________ >>> Xen-changelog mailing list >>> Xen-changelog@lists.xensource.com >>> http://lists.xensource.com/xen-changelog >>> > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2009-Dec-17 06:49 UTC
Re: [Xen-devel] Re: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.
On 17/12/2009 05:56, "Zhang, Xiantao" <xiantao.zhang@intel.com> wrote:> Hi, Keir > After adding the logic, it can solve the migration issue between > rdtscp-capable machine and rdtsc-less machine, but it also introduces a > security hole at the same time. Imagine the case below: > If boot a guest on a rdtsc-less machine and cpuid instruction tells the guest > OS that processor doesn''t support rdtscp instruction, but rdtscp can execute > successfully on it instead of hitting a expected #UD exception. And guest can > use this security hole to detect whether it is running in a virutal machine or > not. Thanks!There''s no doubt a guest could already detect this if it wanted, even from user space. If this was seriously part of our threat model, we''d need to be much more careful than we are. As it is we explicitly announce our presence via CPUID in a way that cannot be turned off! -- Keir> Xiantao > > > Keir Fraser wrote: >> Would have done if the original HVM TSC_AUX patch was up to it. I''ve >> rewritten it about 1/4 the size and does more, as c/s 20646. >> >> -- Keir >> >> On 16/12/2009 20:27, "Dan Magenheimer" <dan.magenheimer@oracle.com> >> wrote: >> >>> Is this patch supposed to allow an application >>> in an HVM domain to successfully execute an rdtscp >>> instruction even on a processor that doesn''t have >>> hardware support for the instruction? >>> >>> If so, I tried it and it doesn''t seem to work. >>> The app segfaults (same, I think, as it did before >>> the patch). >>> >>>> -----Original Message----- >>>> From: Xen patchbot-unstable >>>> [mailto:patchbot-unstable@lists.xensource.com] >>>> Sent: Wednesday, December 16, 2009 7:00 AM >>>> To: xen-changelog@lists.xensource.com >>>> Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP >>>> instruction. >>>> >>>> >>>> # HG changeset patch >>>> # User Keir Fraser <keir.fraser@citrix.com> >>>> # Date 1260967518 0 >>>> # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331 >>>> # Parent b543acc1aaad743f20e8ee44ab048ca239350685 >>>> x86_emulate: Emulate RDTSCP instruction. >>>> >>>> Signed-off-by: Keir Fraser <keir.fraser@citrix.com> --- >>>> xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++- >>>> 1 files changed, 12 insertions(+), 1 deletion(-) >>>> >>>> diff -r b543acc1aaad -r cbcb3d564b2f >>>> xen/arch/x86/x86_emulate/x86_emulate.c >>>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 12:32:35 >>>> 2009 +0000 +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 >>>> 12:45:18 2009 +0000 @@ -292,6 +292,7 @@ struct operand { >>>> #define MSR_LSTAR 0xc0000082 >>>> #define MSR_CSTAR 0xc0000083 >>>> #define MSR_FMASK 0xc0000084 >>>> +#define MSR_TSC_AUX 0xc0000103 >>>> >>>> /* Control register flags. */ >>>> #define CR0_PE (1<<0) >>>> @@ -3503,6 +3504,16 @@ x86_emulate( >>>> break; >>>> } >>>> >>>> + if ( modrm == 0xf9 ) /* rdtscp */ >>>> + { >>>> + uint64_t tsc_aux; >>>> + fail_if(ops->read_msr == NULL); >>>> + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux, ctxt)) >>>> != 0 ) + goto done; >>>> + _regs.ecx = (uint32_t)tsc_aux; >>>> + goto rdtsc; >>>> + } >>>> + >>>> switch ( modrm_reg & 7 ) >>>> { >>>> case 0: /* sgdt */ >>>> @@ -3712,7 +3723,7 @@ x86_emulate( >>>> break; >>>> } >>>> >>>> - case 0x31: /* rdtsc */ { >>>> + case 0x31: rdtsc: /* rdtsc */ { >>>> unsigned long cr4; >>>> uint64_t val; >>>> if ( !mode_ring0() ) >>>> >>>> _______________________________________________ >>>> Xen-changelog mailing list >>>> Xen-changelog@lists.xensource.com >>>> http://lists.xensource.com/xen-changelog >>>> >> >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xensource.com >> http://lists.xensource.com/xen-devel >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Zhang, Xiantao
2009-Dec-17 07:21 UTC
RE: [Xen-devel] Re: [Xen-changelog] [xen-unstable] x86_emulate: Emulate RDTSCP instruction.
If we don''t care such security issues, also okay for me. :) Xiantao Keir Fraser wrote:> On 17/12/2009 05:56, "Zhang, Xiantao" <xiantao.zhang@intel.com> wrote: > >> Hi, Keir >> After adding the logic, it can solve the migration issue between >> rdtscp-capable machine and rdtsc-less machine, but it also >> introduces a security hole at the same time. Imagine the case below: >> If boot a guest on a rdtsc-less machine and cpuid instruction tells >> the guest OS that processor doesn''t support rdtscp instruction, but >> rdtscp can execute successfully on it instead of hitting a expected >> #UD exception. And guest can use this security hole to detect >> whether it is running in a virutal machine or not. Thanks! > > There''s no doubt a guest could already detect this if it wanted, even > from user space. If this was seriously part of our threat model, we''d > need to be much more careful than we are. As it is we explicitly > announce our presence via CPUID in a way that cannot be turned off! > > -- Keir > >> Xiantao >> >> >> Keir Fraser wrote: >>> Would have done if the original HVM TSC_AUX patch was up to it. I''ve >>> rewritten it about 1/4 the size and does more, as c/s 20646. >>> >>> -- Keir >>> >>> On 16/12/2009 20:27, "Dan Magenheimer" <dan.magenheimer@oracle.com> >>> wrote: >>> >>>> Is this patch supposed to allow an application >>>> in an HVM domain to successfully execute an rdtscp >>>> instruction even on a processor that doesn''t have >>>> hardware support for the instruction? >>>> >>>> If so, I tried it and it doesn''t seem to work. >>>> The app segfaults (same, I think, as it did before >>>> the patch). >>>> >>>>> -----Original Message----- >>>>> From: Xen patchbot-unstable >>>>> [mailto:patchbot-unstable@lists.xensource.com] >>>>> Sent: Wednesday, December 16, 2009 7:00 AM >>>>> To: xen-changelog@lists.xensource.com >>>>> Subject: [Xen-changelog] [xen-unstable] x86_emulate: Emulate >>>>> RDTSCP instruction. >>>>> >>>>> >>>>> # HG changeset patch >>>>> # User Keir Fraser <keir.fraser@citrix.com> >>>>> # Date 1260967518 0 >>>>> # Node ID cbcb3d564b2fb51574b8a1d06cd6e7780839c331 >>>>> # Parent b543acc1aaad743f20e8ee44ab048ca239350685 >>>>> x86_emulate: Emulate RDTSCP instruction. >>>>> >>>>> Signed-off-by: Keir Fraser <keir.fraser@citrix.com> --- >>>>> xen/arch/x86/x86_emulate/x86_emulate.c | 13 ++++++++++++- >>>>> 1 files changed, 12 insertions(+), 1 deletion(-) >>>>> >>>>> diff -r b543acc1aaad -r cbcb3d564b2f >>>>> xen/arch/x86/x86_emulate/x86_emulate.c >>>>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 12:32:35 >>>>> 2009 +0000 +++ b/xen/arch/x86/x86_emulate/x86_emulate.c Wed Dec 16 >>>>> 12:45:18 2009 +0000 @@ -292,6 +292,7 @@ struct operand { >>>>> #define MSR_LSTAR 0xc0000082 >>>>> #define MSR_CSTAR 0xc0000083 >>>>> #define MSR_FMASK 0xc0000084 >>>>> +#define MSR_TSC_AUX 0xc0000103 >>>>> >>>>> /* Control register flags. */ >>>>> #define CR0_PE (1<<0) >>>>> @@ -3503,6 +3504,16 @@ x86_emulate( >>>>> break; >>>>> } >>>>> >>>>> + if ( modrm == 0xf9 ) /* rdtscp */ >>>>> + { >>>>> + uint64_t tsc_aux; >>>>> + fail_if(ops->read_msr == NULL); >>>>> + if ( (rc = ops->read_msr(MSR_TSC_AUX, &tsc_aux, >>>>> ctxt)) != 0 ) + goto done; >>>>> + _regs.ecx = (uint32_t)tsc_aux; >>>>> + goto rdtsc; >>>>> + } >>>>> + >>>>> switch ( modrm_reg & 7 ) >>>>> { >>>>> case 0: /* sgdt */ >>>>> @@ -3712,7 +3723,7 @@ x86_emulate( >>>>> break; >>>>> } >>>>> >>>>> - case 0x31: /* rdtsc */ { >>>>> + case 0x31: rdtsc: /* rdtsc */ { >>>>> unsigned long cr4; >>>>> uint64_t val; >>>>> if ( !mode_ring0() ) >>>>> >>>>> _______________________________________________ >>>>> Xen-changelog mailing list >>>>> Xen-changelog@lists.xensource.com >>>>> http://lists.xensource.com/xen-changelog >>>>> >>> >>> >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@lists.xensource.com >>> http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel