linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Mike Travis <travis@sgi.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Lameter <clameter@sgi.com>,
	David Miller <davem@davemloft.net>,
	Eric Dumazet <dada1@cosmosbay.com>,
	linux-kernel@vger.kernel.org,
	the arch/x86 maintainers <x86@kernel.org>
Subject: Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into per cpu area
Date: Wed, 18 Jun 2008 12:33:41 -0700	[thread overview]
Message-ID: <48596315.6020104@goop.org> (raw)
In-Reply-To: <4859511E.5050605@sgi.com>

Mike Travis wrote:
> Jeremy Fitzhardinge wrote:
>   
>> Mike Travis wrote:
>>     
>>> Ingo Molnar wrote:
>>>  
>>>       
>>>> * Mike Travis <travis@sgi.com> wrote:
>>>>
>>>>    
>>>>         
>>>>>   * Declare the pda as a per cpu variable.
>>>>>
>>>>>   * Make the x86_64 per cpu area start at zero.
>>>>>
>>>>>   * Since the pda is now the first element of the per_cpu area,
>>>>> cpu_pda()
>>>>>     is no longer needed and per_cpu() can be used instead.  This
>>>>> also makes
>>>>>     the _cpu_pda[] table obsolete.
>>>>>
>>>>>   * Since %gs is pointing to the pda, it will then also point to the
>>>>> per cpu
>>>>>     variables and can be accessed thusly:
>>>>>
>>>>>     %gs:[&per_cpu_xxxx - __per_cpu_start]
>>>>>
>>>>> Based on linux-2.6.tip
>>>>>       
>>>>>           
>>>> -tip testing found an instantaneous reboot crash on 64-bit x86, with
>>>> this config:
>>>>
>>>>   http://redhat.com/~mingo/misc/config-Thu_Jun__5_11_43_51_CEST_2008.bad
>>>>     
>>>>         
>>> I'm still stuck on this one.  One new development is that the current
>>> -tip
>>> branch without the patches boots to the kernel prompt then hangs after
>>> a few
>>> moments and then reboots.  It seems you can tickle it using ^C to abort a
>>> process.
>>>       
>> Hi Mike,
>>
>> I added some instrumentation to Xen to print the cpu state on
>> triple-fault, which highlights an obvious-looking problem.
>>
>> (XEN) hvm.c:767:d1 Triple fault on VCPU0 - invoking HVM system reset.
>> (XEN) ----[ Xen-3.3-unstable  x86_64  debug=y  Not tainted ]----
>> (XEN) CPU:    1
>> (XEN) RIP:    0010:[<ffffffff80200160>]
>> (XEN) RFLAGS: 0000000000010002   CONTEXT: hvm
>> (XEN) rax: 0000000000000018   rbx: 0000000000000000   rcx: 00000000c0000080
>> (XEN) rdx: 0000000000000000   rsi: 0000000000092f40   rdi: 0000000020100800
>> (XEN) rbp: 0000000000000000   rsp: ffffffff807dfff8   r8:  0000000000208000
>> (XEN) r9:  0000000000000000   r10: 0000000000000000   r11: 00000000000000de
>> (XEN) r12: 0000000000000000   r13: 0000000000000000   r14: 0000000000000000
>> (XEN) r15: 0000000000000000   cr0: 0000000080050033   cr4: 00000000000000a0
>> (XEN) cr3: 0000000000201000   cr2: 0000000000000000
>> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: 0010
>>
>> The rip is:
>>
>> (gdb) x/i 0xffffffff80200160
>> 0xffffffff80200160 <secondary_startup_64+96>:    movl   %eax,%ds
>>
>> which is:
>>
>>     lgdt    early_gdt_descr(%rip)
>>
>>     /* set up data segments. actually 0 would do too */
>>     movl $__KERNEL_DS,%eax
>>     movl %eax,%ds
>>     movl %eax,%ss
>>     movl %eax,%es
>>
>> And early_gdt_descr is:
>>
>>     .globl early_gdt_descr
>> early_gdt_descr:
>>     .word    GDT_ENTRIES*8-1
>>     .quad   per_cpu__gdt_page
>>
>> and per_cpu__gdt_page is zero-based, and therefore not a directly
>> addressable symbol.
>>
>> I tried this patch, but it didn't work.  Perhaps I'm missing something.
>>
>> diff -r bf5a46e13f78 arch/x86/kernel/head_64.S
>> --- a/arch/x86/kernel/head_64.S    Tue Jun 17 22:10:51 2008 -0700
>> +++ b/arch/x86/kernel/head_64.S    Wed Jun 18 10:34:24 2008 -0700
>> @@ -94,6 +94,8 @@
>>
>>     addq    %rbp, level2_fixmap_pgt + (506*8)(%rip)
>>
>> +    addq    $__per_cpu_load, early_gdt_descr+2(%rip)
>> +   
>>     /* Add an Identity mapping if I am above 1G */
>>     leaq    _text(%rip), %rdi
>>     andq    $PMD_PAGE_MASK, %rdi
>>
>>
>>    J
>>     
>
> Hi Jeremy,
>
> I'm not finding that code in the tip/latest or linux-next branches... ?
>   

You mean your percpu/pda code?  No, I'm carrying it locally because I 
need it as a base for my Xen work.  Xen bypasses these early boot 
stages, so I haven't seen any problems so far.
But I'd also like to make sure that my Xen changes don't break native 
boots, too...

> I can send you my latest version of the patch which is better than
> the previous but still is having problems with the config file that
> Ingo sent out.  (It also has a weird quirk that it will hang and
> reboot after about 30 seconds with or without my patch.)
>   

Yes, keep me uptodate with the percpu work.

    J

  parent reply	other threads:[~2008-06-18 19:34 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-04  0:30 [PATCH 0/4] percpu: Optimize percpu accesses Mike Travis
2008-06-04  0:30 ` [PATCH 1/4] Zero based percpu: Infrastructure to rebase the per cpu area to zero Mike Travis
2008-06-10 10:06   ` Ingo Molnar
2008-06-04  0:30 ` [PATCH 2/4] x86: Extend percpu ops to 64 bit Mike Travis
2008-06-10 10:04   ` Ingo Molnar
2008-06-04  0:30 ` [PATCH 3/4] x86_64: Fold pda into per cpu area Mike Travis
2008-06-04 12:59   ` Jeremy Fitzhardinge
2008-06-04 13:48     ` Mike Travis
2008-06-04 13:58       ` Jeremy Fitzhardinge
2008-06-04 14:17         ` Mike Travis
2008-06-09 23:18     ` Christoph Lameter
2008-06-05 10:22   ` [crash, bisected] " Ingo Molnar
2008-06-05 16:02     ` Mike Travis
2008-06-06  8:29       ` Jeremy Fitzhardinge
2008-06-06 13:15         ` Mike Travis
2008-06-18  5:34           ` Jeremy Fitzhardinge
2008-06-10 21:31     ` Mike Travis
2008-06-18 17:36       ` Jeremy Fitzhardinge
2008-06-18 18:17         ` Mike Travis
2008-06-18 18:33           ` Ingo Molnar
2008-06-18 19:33           ` Jeremy Fitzhardinge [this message]
     [not found]             ` <48596893.4040908@sgi.com>
     [not found]               ` <485AADAC.3070301@sgi.com>
     [not found]                 ` <485AB78B.5090904@goop.org>
     [not found]                   ` <485AC120.6010202@sgi.com>
     [not found]                     ` <485AC5D4.6040302@goop.org>
     [not found]                       ` <485ACA8F.10006@sgi.com>
     [not found]                         ` <485ACD92.8050109@sgi.com>
2008-06-19 21:35                           ` Jeremy Fitzhardinge
2008-06-19 21:54                             ` Jeremy Fitzhardinge
2008-06-19 22:13                             ` Mike Travis
2008-06-19 22:21                               ` Jeremy Fitzhardinge
2008-06-30 17:49                                 ` Mike Travis
2008-06-19 22:23                               ` Jeremy Fitzhardinge
     [not found]                                 ` <485BDB04.4090709@sgi.com>
2008-06-20 17:25                                   ` Jeremy Fitzhardinge
2008-06-20 17:48                                     ` Christoph Lameter
2008-06-20 18:30                                       ` Mike Travis
2008-06-20 18:40                                         ` Jeremy Fitzhardinge
2008-06-20 18:37                                       ` Jeremy Fitzhardinge
2008-06-20 18:51                                         ` Christoph Lameter
2008-06-20 19:04                                           ` Jeremy Fitzhardinge
2008-06-20 19:21                                             ` H. Peter Anvin
2008-06-20 19:43                                             ` Eric W. Biederman
2008-06-20 20:04                                               ` Mike Travis
2008-06-20 20:37                                                 ` Christoph Lameter
2008-06-20 19:06                                         ` Mike Travis
2008-06-20 20:25                                           ` Eric W. Biederman
2008-06-20 20:55                                             ` Christoph Lameter
2008-06-23 16:55                                             ` Mike Travis
2008-06-23 17:33                                               ` Jeremy Fitzhardinge
2008-06-23 18:04                                                 ` Mike Travis
2008-06-23 18:36                                                   ` Mike Travis
2008-06-23 19:41                                                     ` Jeremy Fitzhardinge
2008-06-24  0:02                                                       ` Mike Travis
2008-06-30 17:07                                             ` Mike Travis
2008-06-30 17:18                                               ` H. Peter Anvin
2008-06-30 17:57                                                 ` Mike Travis
2008-06-30 20:50                                                   ` Eric W. Biederman
2008-06-30 21:08                                                     ` Jeremy Fitzhardinge
2008-07-01  8:40                                                       ` Eric W. Biederman
2008-07-01 16:27                                                         ` Jeremy Fitzhardinge
2008-07-01 16:55                                                           ` Mike Travis
2008-07-01 16:56                                                         ` H. Peter Anvin
2008-07-01 17:26                                                           ` Jeremy Fitzhardinge
2008-07-01 20:40                                                             ` Eric W. Biederman
2008-07-01 21:10                                                               ` Jeremy Fitzhardinge
2008-07-01 21:39                                                                 ` Eric W. Biederman
2008-07-01 21:52                                                                   ` Jeremy Fitzhardinge
2008-07-02  0:20                                                                     ` H. Peter Anvin
2008-07-02  1:15                                                                       ` Mike Travis
2008-07-02  1:32                                                                         ` Eric W. Biederman
2008-07-02  1:51                                                                           ` Mike Travis
2008-07-02  2:50                                                                             ` Eric W. Biederman
2008-07-02  1:40                                                                         ` H. Peter Anvin
2008-07-02  1:44                                                                         ` Mike Travis
2008-07-02  1:45                                                                           ` H. Peter Anvin
2008-07-02  1:55                                                                             ` Mike Travis
2008-07-02 22:50                                                                             ` Mike Travis
2008-07-03  4:34                                                                               ` Eric W. Biederman
2008-07-07 17:17                                                                                 ` Mike Travis
2008-07-07 19:46                                                                                   ` Eric W. Biederman
2008-07-08 18:21                                                                                     ` Mike Travis
2008-07-08 23:36                                                                                       ` Eric W. Biederman
2008-07-08 23:49                                                                                         ` Jeremy Fitzhardinge
2008-07-09 14:39                                                                                           ` Mike Travis
2008-07-25 20:06                                                                                           ` Mike Travis
2008-07-25 20:12                                                                                             ` Jeremy Fitzhardinge
2008-07-25 20:34                                                                                               ` Mike Travis
2008-07-25 20:43                                                                                                 ` Jeremy Fitzhardinge
2008-07-25 21:05                                                                                                   ` Mike Travis
2008-07-09 14:37                                                                                         ` Mike Travis
2008-07-09 22:38                                                                                           ` Eric W. Biederman
2008-07-09 23:30                                                                                             ` Mike Travis
2008-07-10  0:04                                                                                               ` Eric W. Biederman
2008-07-02  2:01                                                                   ` H. Peter Anvin
2008-07-02  3:08                                                                     ` Eric W. Biederman
2008-07-01 21:11                                                               ` Andi Kleen
2008-07-01 21:42                                                                 ` Eric W. Biederman
2008-07-01 18:41                                                           ` Eric W. Biederman
2008-07-01 12:09                                                       ` Mike Travis
2008-07-01 11:49                                                     ` Mike Travis
2008-06-30 17:43                                               ` Jeremy Fitzhardinge
2008-06-04  0:30 ` [PATCH 4/4] x86: Replace xxx_pda() operations with x86_xx_percpu() Mike Travis
2008-06-09 13:03   ` Ingo Molnar
2008-06-09 16:08     ` Mike Travis
2008-06-09 17:36     ` Mike Travis
2008-06-09 18:20       ` Christoph Lameter
2008-06-09 23:29         ` Jeremy Fitzhardinge
2008-06-10 10:09       ` Ingo Molnar
2008-06-10 15:07         ` Mike Travis
2008-06-04 10:18 ` [PATCH] x86: collapse the various size-dependent percpu accessors together Jeremy Fitzhardinge
2008-06-04 10:45   ` Jeremy Fitzhardinge
2008-06-04 11:29     ` Ingo Molnar
2008-06-04 12:09       ` Jeremy Fitzhardinge
2008-06-10 17:21         ` Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48596315.6020104@goop.org \
    --to=jeremy@goop.org \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=dada1@cosmosbay.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=travis@sgi.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).