linux-next: boot failure on 8 way PowerPC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rusty,

Booting next-20081128 on an 8 way (4 core, threaded) Power 5+ lpar
produces this panic:

Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
Done.
Begin: Waiting for root file system... ...
Kernel panic - not syncing: bad return code qirr - rc = fffffffffffffffc

Call Trace:
[c0000000bce4b4b0] [c0000000000108cc] .show_stack+0x5c/0x1b0 (unreliable)
[c0000000bce4b560] [c00000000005dcd8] .panic+0x88/0x1d0
[c0000000bce4b610] [c000000000040e28] .smp_xics_message_pass+0xf8/0x230
[c0000000bce4b6b0] [c00000000002b0f0] .arch_send_call_function_ipi+0x60/0xb0
[c0000000bce4b740] [c00000000008d64c] .smp_call_function_many+0x20c/0x360
[c0000000bce4b810] [c00000000008d7d8] .smp_call_function+0x38/0x50
[c0000000bce4b890] [c000000000064e44] .on_each_cpu+0x24/0x90
[c0000000bce4b930] [c0000000001230c4] .invalidate_bh_lrus+0x24/0x40
[c0000000bce4b9b0] [c00000000012b3b4] .kill_bdev+0x34/0x60
[c0000000bce4ba30] [c00000000012bfa4] .__blkdev_put+0x1d4/0x220
[c0000000bce4bae0] [c0000000000f59c4] .__fput+0xf4/0x250
[c0000000bce4bb80] [c0000000000f1b70] .filp_close+0xa0/0x100
[c0000000bce4bc10] [c0000000000609c4] .put_files_struct+0x154/0x170
[c0000000bce4bcc0] [c000000000062574] .do_exit+0x184/0x900
[c0000000bce4bda0] [c000000000062d40] .do_group_exit+0x50/0xf0
[c0000000bce4be30] [c0000000000084ac] syscall_exit+0x0/0x40

The rc = fffffffffffffffc is an error code from the hypervisor and means
"bad parameter".

I bisected it down to:

commit 8418cd49a5c479812c4e550bfafb4388fc1fc9ab
Author: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Date:   Fri Nov 28 10:11:29 2008 +1100

    cpumask:smp_call_function_many
    
    Impact: Implementation change to remove cpumask_t from stack.
    
    Actually change smp_call_function_mask() to smp_call_function_many().
    We avoid cpumasks on the stack in this version.
    
    (S390 has its own version, but that's going away apparently).
    
    We have to do some dancing to figure out if 0 or 1 other cpus are in
    the mask supplied and the online mask without allocating a tmp
    cpumask.  It's still fairly cheap.
    
    We allocate the cpumask at the end of the call_function_data
    structure: if allocation fails we fallback to smp_call_function_single
    rather than using the baroque quiescing code (which needs a cpumask on
    stack).
    
    (Thanks to Hiroshi Shimamoto for spotting several bugs in previous versions!)
    
    Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
    Signed-off-by: Mike Travis <travis@xxxxxxx>
    Cc: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
    Cc: npiggin@xxxxxxx
    Cc: axboe@xxxxxxxxx

-- 
Cheers,
Stephen Rothwell                    sfr@xxxxxxxxxxxxxxxx
http://www.canb.auug.org.au/~sfr/

Attachment: pgpzfzSyrQpyM.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux