Re: [patch 00/61] ANNOUNCE: lock validator -V1

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

 



On Tue, 2006-05-30 at 08:37 +0200, Ingo Molnar wrote:
> * Mike Galbraith <[email protected]> wrote:
> 
> > Darn.  It said all tests passed, then oopsed.
> > 
> > (have .config all gzipped up if you want it)
> 
> yeah, please.

(sent off list)

> > EIP:    0060:[<b103a872>]    Not tainted VLI
> > EFLAGS: 00010083   (2.6.17-rc4-mm3-smp #157)
> > EIP is at count_matching_names+0x5b/0xa2
> 
> > 1151            list_for_each_entry(type, &all_lock_types, lock_entry) {
> > 1152                    if (new_type->key - new_type->subtype == type->key)
> > 1153                            return type->name_version;
> > 1154                    if (!strcmp(type->name, new_type->name))  <--kaboom
> > 1155                            count = max(count, type->name_version);
> 
> hm, while most code (except the one above) is prepared for type->name 
> being NULL, it should not be NULL. Maybe an uninitialized lock slipped 
> through? Please try the patch below - it both protects against 
> type->name being NULL in this place, and will warn if it finds a NULL 
> lockname.

Got the warning.  It failed testing, but booted.

Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
... MAX_LOCKDEP_SUBTYPES:    8
... MAX_LOCK_DEPTH:          30
... MAX_LOCKDEP_KEYS:        2048
... TYPEHASH_SIZE:           1024
... MAX_LOCKDEP_ENTRIES:     8192
... MAX_LOCKDEP_CHAINS:      8192
... CHAINHASH_SIZE:          4096
 memory used by lock dependency info: 696 kB
 per task-struct memory footprint: 1080 bytes
------------------------
| Locking API testsuite:
----------------------------------------------------------------------------
                                 | spin |wlock |rlock |mutex | wsem | rsem |
  --------------------------------------------------------------------------
BUG: warning at kernel/lockdep.c:1977/lockdep_init_map()
 <b1003dd2> show_trace+0xd/0xf  <b10044c0> dump_stack+0x17/0x19
 <b103badf> lockdep_init_map+0x10a/0x10f  <b10398d7> __mutex_init+0x3b/0x44
 <b11d4601> init_type_X+0x37/0x4d  <b11d4638> init_shared_types+0x21/0xaa
 <b11dcca3> locking_selftest+0x76/0x1889  <b1597657> start_kernel+0x1e7/0x400
 <b1000210> 0xb1000210 
                     A-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
                 A-B-B-A deadlock:  ok  |  ok  |FAILED|  ok  |  ok  |  ok  |
             A-B-B-C-C-A deadlock:  ok  |  ok  |FAILED|  ok  |  ok  |  ok  |
             A-B-C-A-B-C deadlock:  ok  |  ok  |FAILED|  ok  |  ok  |  ok  |
         A-B-B-C-C-D-D-A deadlock:  ok  |  ok  |FAILED|  ok  |  ok  |  ok  |
         A-B-C-D-B-D-D-A deadlock:  ok  |  ok  |FAILED|  ok  |  ok  |  ok  |
         A-B-C-D-B-C-D-A deadlock:  ok  |  ok  |FAILED|  ok  |  ok  |  ok  |
                    double unlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
                 bad unlock order:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
  --------------------------------------------------------------------------
              recursive read-lock:             |FAILED|             |  ok  |
  --------------------------------------------------------------------------
                non-nested unlock:FAILED|FAILED|FAILED|FAILED|
  ------------------------------------------------------------
     hard-irqs-on + irq-safe-A/12:  ok  |  ok  |FAILED|
     soft-irqs-on + irq-safe-A/12:  ok  |  ok  |FAILED|
     hard-irqs-on + irq-safe-A/21:  ok  |  ok  |FAILED|
     soft-irqs-on + irq-safe-A/21:  ok  |  ok  |FAILED|
       sirq-safe-A => hirqs-on/12:  ok  |  ok  |FAILED|
       sirq-safe-A => hirqs-on/21:  ok  |  ok  |FAILED|
         hard-safe-A + irqs-on/12:  ok  |  ok  |FAILED|
         soft-safe-A + irqs-on/12:  ok  |  ok  |FAILED|
         hard-safe-A + irqs-on/21:  ok  |  ok  |FAILED|
         soft-safe-A + irqs-on/21:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #1/123:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #1/123:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #1/132:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #1/132:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #1/213:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #1/213:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #1/231:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #1/231:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #1/312:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #1/312:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #1/321:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #1/321:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #2/123:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #2/123:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #2/132:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #2/132:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #2/213:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #2/213:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #2/231:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #2/231:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #2/312:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #2/312:  ok  |  ok  |FAILED|
    hard-safe-A + unsafe-B #2/321:  ok  |  ok  |FAILED|
    soft-safe-A + unsafe-B #2/321:  ok  |  ok  |FAILED|
      hard-irq lock-inversion/123:  ok  |  ok  |FAILED|
      soft-irq lock-inversion/123:  ok  |  ok  |FAILED|
      hard-irq lock-inversion/132:  ok  |  ok  |FAILED|
      soft-irq lock-inversion/132:  ok  |  ok  |FAILED|
      hard-irq lock-inversion/213:  ok  |  ok  |FAILED|
      soft-irq lock-inversion/213:  ok  |  ok  |FAILED|
      hard-irq lock-inversion/231:  ok  |  ok  |FAILED|
      soft-irq lock-inversion/231:  ok  |  ok  |FAILED|
      hard-irq lock-inversion/312:  ok  |  ok  |FAILED|
      soft-irq lock-inversion/312:  ok  |  ok  |FAILED|
      hard-irq lock-inversion/321:  ok  |  ok  |FAILED|
      soft-irq lock-inversion/321:  ok  |  ok  |FAILED|
      hard-irq read-recursion/123:FAILED|
      soft-irq read-recursion/123:FAILED|
      hard-irq read-recursion/132:FAILED|
      soft-irq read-recursion/132:FAILED|
      hard-irq read-recursion/213:FAILED|
      soft-irq read-recursion/213:FAILED|
      hard-irq read-recursion/231:FAILED|
      soft-irq read-recursion/231:FAILED|
      hard-irq read-recursion/312:FAILED|
      soft-irq read-recursion/312:FAILED|
      hard-irq read-recursion/321:FAILED|
      soft-irq read-recursion/321:FAILED|
-----------------------------------------------------------------
BUG:  69 unexpected failures (out of 210) - debugging disabled! |
-----------------------------------------------------------------


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux