|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
RE: [Xen-devel] Re: x86_64 SMP support (status update)
 
Keir Fraser wrote:
> On 27 Jun 2005, at 22:55, Keir Fraser wrote:
> 
>> Xen makes a shadow mapping of the per-vcpu gdt in its own address
>> space. This, coupled with Xen reserving the last 2 pages of GDT
>> entries for itself, requires every GDT to start on a page boundary.
>> So, even though per-cpu gdts are not page-aligned they must be at
>> least one page in size.
> 
> Last sentence should be "per-cpu gdts have to be page-aligned, so each
> one burns a page". :-)
> 
>   -- Keir
BTW, 
I'm debugging nptl01 in LTP when running in domU. Most of the test cases
pass except this one; kernel build was a piece of cake there :-). It
uses the FS base for TLS on x86_64, and does a number of domain
switching. I think this is a race condition with GDT switching, but what
happens is Xen sometimes causes #GP at => below because the entry does
not exist in GDT (fs = 0x5b). The nptl01 runs fine on dom0 as long as it
runs _alone_. It starts failing with presence of domUs. I feel this
implies some problems with GDT switching. Is there any race you think of
where modifications to GDT (done by do_update_descriptor) are not be
visible or deferred?
static void load_segments(struct vcpu *p, struct vcpu *n)
{
    struct vcpu_guest_context *pctxt = &p->arch.guest_context;
    struct vcpu_guest_context *nctxt = &n->arch.guest_context;
...
    /*
     * Either selector != 0 ==> reload.
     * Also reload to reset FS_BASE if it was non-zero.
     */
    if ( unlikely(pctxt->user_regs.fs |
                  pctxt->fs_base |
                  nctxt->user_regs.fs) )
    {
 =>       all_segs_okay &= loadsegment(fs, nctxt->user_regs.fs);
        if ( pctxt->user_regs.fs ) /* != 0 selector kills fs_base */
            pctxt->fs_base = 0;
    }
Jun
---
Intel Open Source Technology Center
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [Xen-devel] RE: x86_64 SMP support (status update), Nakajima, Jun
 
- RE: [Xen-devel] Re: x86_64 SMP support (status update),
Nakajima, Jun <=
 
- RE: [Xen-devel] Re: x86_64 SMP support (status update), Nakajima, Jun
 
- RE: [Xen-devel] RE: x86_64 SMP support (status update), Li, Xin B
 
- RE: [Xen-devel] RE: x86_64 SMP support (status update), Li, Xin B
 
  
 |  
  
 | 
    | 
  
  
    |   | 
    |