BUG: soft lockup - CPU#3 stuck for 61s! , while running cpu controller latency testcase on two containers parallaly

Sharyathi Nagesh sharyath at in.ibm.com
Tue Sep 15 07:12:03 PDT 2009


The same problem was observed while testing with 2.6.29 kernel, this is what I could gather 
from looking into the error message,

Dhaval Giani wrote:
> [Adding the scheduler maintainers to the cc]
> 
>> BUG: soft lockup - CPU#3 stuck for 61s! [cpuctl_latency_:17174]
>> Modules linked in: bridge stp llc bnep sco l2cap bluetooth sunrpc ipv6 
>> p4_clockmod dm_multipath uinput qla2xxx ata_generic pata_acpi 
>> usb_storage e1000 scsi_transport_fc joydev scsi_tgt i2c_piix4 
>> pata_serverworks pcspkr serio_raw mptspi mptscsih mptbase 
>> scsi_transport_spi radeon ttm drm i2c_algo_bit i2c_core [last unloaded: 
>> scsi_wait_scan]
>>
>> Pid: 17174, comm: cpuctl_latency_ Tainted: G        W  (2.6.31-rc7 #1) 
>> IBM eServer BladeCenter HS40 -[883961X]-                    
>> EIP: 0060:[<c058aded>] EFLAGS: 00000283 CPU: 3
>> EIP is at find_next_bit+0x9/0x79
>> EAX: c2c437a0 EBX: f3d433c0 ECX: 00000000 EDX: 00000020
>> ESI: c2c436bc EDI: 00000000 EBP: f063be6c ESP: f063be64
>>  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
>> CR0: 80050033 CR2: 008765a4 CR3: 314d7000 CR4: 000006d0
>> DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
>> DR6: ffff0ff0 DR7: 00000400
>> Call Trace:
>>  [<c0427b6e>] cpumask_next+0x17/0x19


EIP matches to 'tg_shares_up+0xd9/0x149',
-----------------------
   This maps to address location 5c37 in the objdump
/root/rpmbuild/BUILD/kernel-2.6.29/linux-2.6.29.i686/kernel/sched.c:1511

         if (abs(shares - tg->se[cpu]->load.weight) >
     5c33:       89 d0                   mov    %edx,%eax
     5c35:       2b 01                   sub    (%ecx),%eax
     5c37:       89 c1                   mov    %eax,%ecx
     5c39:       c1 f9 1f                sar    $0x1f,%ecx
     5c3c:       31 c8                   xor    %ecx,%eax
     5c3e:       29 c8                   sub    %ecx,%eax
     5c40:       3b 05 00 00 00 00       cmp    0x0,%eax
     5c46:       76 3d                   jbe    5c85 <tg_shares_up+0x127>
/root/rpmbuild/BUILD/kernel-2.6.29/linux-2.6.29.i686/kernel/sched.c:1516
                         sysctl_sched_shares_thresh) {
                 struct rq *rq = cpu_rq(cpu);
-----------------------
This matches to line 1511 - 1516 in the kernel code

1511                if (abs(shares - tg->se[cpu]->load.weight) >
1512                         sysctl_sched_shares_thresh) {
1513                 struct rq *rq = cpu_rq(cpu);
1514                 unsigned long flags;
1515
1516                 spin_lock_irqsave(&rq->lock, flags);
-----------------------
I suspect this soft lock ups are due to rq->lock contention.
Thanks
Sharyathi


More information about the Containers mailing list