Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Xen: Devel

[PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context

 

 

Xen devel RSS feed   Index | Next | Previous | View Threaded


aravindh at virtuata

Apr 25, 2012, 11:38 AM

Post #1 of 4 (99 views)
Permalink
[PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context

Add FS and GS base to the HVM VCPU context returned by xc_vcpu_getcontext()

Signed-off-by: Aravindh Puthiyaparambil <aravindh [at] virtuata>

diff -r be41f3b599d9 -r 1f39b9fe704f xen/arch/x86/domctl.c
--- a/xen/arch/x86/domctl.c Wed Apr 25 11:35:29 2012 -0700
+++ b/xen/arch/x86/domctl.c Wed Apr 25 11:35:43 2012 -0700
@@ -1590,8 +1590,23 @@ void arch_get_info_guest(struct vcpu *v,
c.nat->user_regs.es = sreg.sel;
hvm_get_segment_register(v, x86_seg_fs, &sreg);
c.nat->user_regs.fs = sreg.sel;
+#ifdef __x86_64__
+ c.nat->fs_base = sreg.base;
+#endif
hvm_get_segment_register(v, x86_seg_gs, &sreg);
c.nat->user_regs.gs = sreg.sel;
+#ifdef __x86_64__
+ if ( ring_0(&c.nat->user_regs) )
+ {
+ c.nat->gs_base_kernel = sreg.base;
+ c.nat->gs_base_user = hvm_get_shadow_gs_base(v);
+ }
+ else
+ {
+ c.nat->gs_base_user = sreg.base;
+ c.nat->gs_base_kernel = hvm_get_shadow_gs_base(v);
+ }
+#endif
}
else
{

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Apr 27, 2012, 5:49 AM

Post #2 of 4 (94 views)
Permalink
Re: [PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context [In reply to]

>>> On 25.04.12 at 20:38, Aravindh Puthiyaparambil <aravindh [at] virtuata> wrote:
> Add FS and GS base to the HVM VCPU context returned by xc_vcpu_getcontext()

Given that we're in feature freeze right now - is this actually fixing some
shortcoming somewhere? Otherwise it may need to wait until 4.2 is out.

Jan

> Signed-off-by: Aravindh Puthiyaparambil <aravindh [at] virtuata>
>
> diff -r be41f3b599d9 -r 1f39b9fe704f xen/arch/x86/domctl.c
> --- a/xen/arch/x86/domctl.c Wed Apr 25 11:35:29 2012 -0700
> +++ b/xen/arch/x86/domctl.c Wed Apr 25 11:35:43 2012 -0700
> @@ -1590,8 +1590,23 @@ void arch_get_info_guest(struct vcpu *v,
> c.nat->user_regs.es = sreg.sel;
> hvm_get_segment_register(v, x86_seg_fs, &sreg);
> c.nat->user_regs.fs = sreg.sel;
> +#ifdef __x86_64__
> + c.nat->fs_base = sreg.base;
> +#endif
> hvm_get_segment_register(v, x86_seg_gs, &sreg);
> c.nat->user_regs.gs = sreg.sel;
> +#ifdef __x86_64__
> + if ( ring_0(&c.nat->user_regs) )
> + {
> + c.nat->gs_base_kernel = sreg.base;
> + c.nat->gs_base_user = hvm_get_shadow_gs_base(v);
> + }
> + else
> + {
> + c.nat->gs_base_user = sreg.base;
> + c.nat->gs_base_kernel = hvm_get_shadow_gs_base(v);
> + }
> +#endif
> }
> else
> {




_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


keir at xen

Apr 27, 2012, 8:02 AM

Post #3 of 4 (96 views)
Permalink
Re: [PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context [In reply to]

On 27/04/2012 13:49, "Jan Beulich" <JBeulich [at] suse> wrote:

>>>> On 25.04.12 at 20:38, Aravindh Puthiyaparambil <aravindh [at] virtuata>
>>>> wrote:
>> Add FS and GS base to the HVM VCPU context returned by xc_vcpu_getcontext()
>
> Given that we're in feature freeze right now - is this actually fixing some
> shortcoming somewhere? Otherwise it may need to wait until 4.2 is out.

I think we can make a judgement call on this one that it is obviously safe
to check it in. Even if the patch is buggy, it's only filling in data fields
with garbage, which were uninitialised garbage in the first place.

-- Keir

> Jan
>
>> Signed-off-by: Aravindh Puthiyaparambil <aravindh [at] virtuata>
>>
>> diff -r be41f3b599d9 -r 1f39b9fe704f xen/arch/x86/domctl.c
>> --- a/xen/arch/x86/domctl.c Wed Apr 25 11:35:29 2012 -0700
>> +++ b/xen/arch/x86/domctl.c Wed Apr 25 11:35:43 2012 -0700
>> @@ -1590,8 +1590,23 @@ void arch_get_info_guest(struct vcpu *v,
>> c.nat->user_regs.es = sreg.sel;
>> hvm_get_segment_register(v, x86_seg_fs, &sreg);
>> c.nat->user_regs.fs = sreg.sel;
>> +#ifdef __x86_64__
>> + c.nat->fs_base = sreg.base;
>> +#endif
>> hvm_get_segment_register(v, x86_seg_gs, &sreg);
>> c.nat->user_regs.gs = sreg.sel;
>> +#ifdef __x86_64__
>> + if ( ring_0(&c.nat->user_regs) )
>> + {
>> + c.nat->gs_base_kernel = sreg.base;
>> + c.nat->gs_base_user = hvm_get_shadow_gs_base(v);
>> + }
>> + else
>> + {
>> + c.nat->gs_base_user = sreg.base;
>> + c.nat->gs_base_kernel = hvm_get_shadow_gs_base(v);
>> + }
>> +#endif
>> }
>> else
>> {
>
>
>



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


aravindh at virtuata

Apr 27, 2012, 8:23 AM

Post #4 of 4 (93 views)
Permalink
Re: [PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context [In reply to]

On Apr 27, 2012 8:02 AM, "Keir Fraser" <keir [at] xen> wrote:
>
> On 27/04/2012 13:49, "Jan Beulich" <JBeulich [at] suse> wrote:
>
> >>>> On 25.04.12 at 20:38, Aravindh Puthiyaparambil <aravindh [at] virtuata
>
> >>>> wrote:
> >> Add FS and GS base to the HVM VCPU context returned by
xc_vcpu_getcontext()
> >
> > Given that we're in feature freeze right now - is this actually fixing
some
> > shortcoming somewhere? Otherwise it may need to wait until 4.2 is out.
>
> I think we can make a judgement call on this one that it is obviously safe
> to check it in. Even if the patch is buggy, it's only filling in data
fields
> with garbage, which were uninitialised garbage in the first place.
>

It will be helpful if this can make it into 4.2. It does provide useful
info for Windows guests.

Thanks,
Aravindh

> -- Keir
>
> > Jan
> >
> >> Signed-off-by: Aravindh Puthiyaparambil <aravindh [at] virtuata>
> >>
> >> diff -r be41f3b599d9 -r 1f39b9fe704f xen/arch/x86/domctl.c
> >> --- a/xen/arch/x86/domctl.c Wed Apr 25 11:35:29 2012 -0700
> >> +++ b/xen/arch/x86/domctl.c Wed Apr 25 11:35:43 2012 -0700
> >> @@ -1590,8 +1590,23 @@ void arch_get_info_guest(struct vcpu *v,
> >> c.nat->user_regs.es = sreg.sel;
> >> hvm_get_segment_register(v, x86_seg_fs, &sreg);
> >> c.nat->user_regs.fs = sreg.sel;
> >> +#ifdef __x86_64__
> >> + c.nat->fs_base = sreg.base;
> >> +#endif
> >> hvm_get_segment_register(v, x86_seg_gs, &sreg);
> >> c.nat->user_regs.gs = sreg.sel;
> >> +#ifdef __x86_64__
> >> + if ( ring_0(&c.nat->user_regs) )
> >> + {
> >> + c.nat->gs_base_kernel = sreg.base;
> >> + c.nat->gs_base_user = hvm_get_shadow_gs_base(v);
> >> + }
> >> + else
> >> + {
> >> + c.nat->gs_base_user = sreg.base;
> >> + c.nat->gs_base_kernel = hvm_get_shadow_gs_base(v);
> >> + }
> >> +#endif
> >> }
> >> else
> >> {
> >
> >
> >
>
>

Xen devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.