Introduce DEBUG_LOCKING_API_SELFTESTS, which uses the generic lock debugging
code's silent-failure feature to run a matrix of testcases. There are 210
testcases currently:
+-----------------------
| Locking API testsuite:
+------------------------------+------+------+------+------+------+------+
| spin |wlock |rlock |mutex | wsem | rsem |
-------------------------------+------+------+------+------+------+------+
A-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-B-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-B-C-C-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-C-A-B-C deadlock: ok | ok | ok | ok | ok | ok |
A-B-B-C-C-D-D-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-C-D-B-D-D-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-C-D-B-C-D-A deadlock: ok | ok | ok | ok | ok | ok |
double unlock: ok | ok | ok | ok | ok | ok |
bad unlock order: ok | ok | ok | ok | ok | ok |
--------------------------------------+------+------+------+------+------+
recursive read-lock: | ok | | ok |
--------------------------------------+------+------+------+------+------+
non-nested unlock: ok | ok | ok | ok |
--------------------------------------+------+------+------+
hard-irqs-on + irq-safe-A/12: ok | ok | ok |
soft-irqs-on + irq-safe-A/12: ok | ok | ok |
hard-irqs-on + irq-safe-A/21: ok | ok | ok |
soft-irqs-on + irq-safe-A/21: ok | ok | ok |
sirq-safe-A => hirqs-on/12: ok | ok | ok |
sirq-safe-A => hirqs-on/21: ok | ok | ok |
hard-safe-A + irqs-on/12: ok | ok | ok |
soft-safe-A + irqs-on/12: ok | ok | ok |
hard-safe-A + irqs-on/21: ok | ok | ok |
soft-safe-A + irqs-on/21: ok | ok | ok |
hard-safe-A + unsafe-B #1/123: ok | ok | ok |
soft-safe-A + unsafe-B #1/123: ok | ok | ok |
hard-safe-A + unsafe-B #1/132: ok | ok | ok |
soft-safe-A + unsafe-B #1/132: ok | ok | ok |
hard-safe-A + unsafe-B #1/213: ok | ok | ok |
soft-safe-A + unsafe-B #1/213: ok | ok | ok |
hard-safe-A + unsafe-B #1/231: ok | ok | ok |
soft-safe-A + unsafe-B #1/231: ok | ok | ok |
hard-safe-A + unsafe-B #1/312: ok | ok | ok |
soft-safe-A + unsafe-B #1/312: ok | ok | ok |
hard-safe-A + unsafe-B #1/321: ok | ok | ok |
soft-safe-A + unsafe-B #1/321: ok | ok | ok |
hard-safe-A + unsafe-B #2/123: ok | ok | ok |
soft-safe-A + unsafe-B #2/123: ok | ok | ok |
hard-safe-A + unsafe-B #2/132: ok | ok | ok |
soft-safe-A + unsafe-B #2/132: ok | ok | ok |
hard-safe-A + unsafe-B #2/213: ok | ok | ok |
soft-safe-A + unsafe-B #2/213: ok | ok | ok |
hard-safe-A + unsafe-B #2/231: ok | ok | ok |
soft-safe-A + unsafe-B #2/231: ok | ok | ok |
hard-safe-A + unsafe-B #2/312: ok | ok | ok |
soft-safe-A + unsafe-B #2/312: ok | ok | ok |
hard-safe-A + unsafe-B #2/321: ok | ok | ok |
soft-safe-A + unsafe-B #2/321: ok | ok | ok |
hard-irq lock-inversion/123: ok | ok | ok |
soft-irq lock-inversion/123: ok | ok | ok |
hard-irq lock-inversion/132: ok | ok | ok |
soft-irq lock-inversion/132: ok | ok | ok |
hard-irq lock-inversion/213: ok | ok | ok |
soft-irq lock-inversion/213: ok | ok | ok |
hard-irq lock-inversion/231: ok | ok | ok |
soft-irq lock-inversion/231: ok | ok | ok |
hard-irq lock-inversion/312: ok | ok | ok |
soft-irq lock-inversion/312: ok | ok | ok |
hard-irq lock-inversion/321: ok | ok | ok |
soft-irq lock-inversion/321: ok | ok | ok |
hard-irq read-recursion/123: ok |
soft-irq read-recursion/123: ok |
hard-irq read-recursion/132: ok |
soft-irq read-recursion/132: ok |
hard-irq read-recursion/213: ok |
soft-irq read-recursion/213: ok |
hard-irq read-recursion/231: ok |
soft-irq read-recursion/231: ok |
hard-irq read-recursion/312: ok |
soft-irq read-recursion/312: ok |
hard-irq read-recursion/321: ok |
soft-irq read-recursion/321: ok |
--------------------------------+-----+----------------
Good, all 210 testcases passed! |
--------------------------------+
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
||
|---|---|---|
| .. | ||
| ABI | ||
| DocBook | ||
| RCU | ||
| aoe | ||
| arm | ||
| block | ||
| cdrom | ||
| connector | ||
| console | ||
| cpu-freq | ||
| cris | ||
| crypto | ||
| device-mapper | ||
| driver-model | ||
| drivers/edac | ||
| dvb | ||
| early-userspace | ||
| fb | ||
| filesystems | ||
| firmware_class | ||
| fujitsu/frv | ||
| hwmon | ||
| i2c | ||
| i2o | ||
| i386 | ||
| ia64 | ||
| infiniband | ||
| input | ||
| ioctl | ||
| isdn | ||
| kbuild | ||
| kdump | ||
| m68k | ||
| mips | ||
| networking | ||
| parisc | ||
| pcmcia | ||
| power | ||
| powerpc | ||
| s390 | ||
| scsi | ||
| serial | ||
| sh | ||
| sound | ||
| sparc | ||
| spi | ||
| sysctl | ||
| telephony | ||
| uml | ||
| usb | ||
| video4linux | ||
| vm | ||
| w1 | ||
| watchdog | ||
| x86_64 | ||
| 00-INDEX | ||
| BUG-HUNTING | ||
| Changes | ||
| CodingStyle | ||
| DMA-API.txt | ||
| DMA-ISA-LPC.txt | ||
| DMA-mapping.txt | ||
| HOWTO | ||
| IO-mapping.txt | ||
| IPMI.txt | ||
| IRQ-affinity.txt | ||
| IRQ.txt | ||
| MSI-HOWTO.txt | ||
| ManagementStyle | ||
| PCIEBUS-HOWTO.txt | ||
| README.DAC960 | ||
| README.cycladesZ | ||
| SAK.txt | ||
| SecurityBugs | ||
| SubmitChecklist | ||
| SubmittingDrivers | ||
| SubmittingPatches | ||
| VGA-softcursor.txt | ||
| acpi-hotkey.txt | ||
| applying-patches.txt | ||
| atomic_ops.txt | ||
| basic_profiling.txt | ||
| binfmt_misc.txt | ||
| cachetlb.txt | ||
| cciss.txt | ||
| cli-sti-removal.txt | ||
| computone.txt | ||
| cpqarray.txt | ||
| cpu-hotplug.txt | ||
| cpusets.txt | ||
| cputopology.txt | ||
| dcdbas.txt | ||
| debugging-modules.txt | ||
| dell_rbu.txt | ||
| devices.txt | ||
| digiepca.txt | ||
| dnotify.txt | ||
| dontdiff | ||
| eisa.txt | ||
| exception.txt | ||
| feature-removal-schedule.txt | ||
| floppy.txt | ||
| ftape.txt | ||
| hayes-esp.txt | ||
| highuid.txt | ||
| hpet.txt | ||
| hrtimers.txt | ||
| hw_random.txt | ||
| ibm-acpi.txt | ||
| ide.txt | ||
| initrd.txt | ||
| io_ordering.txt | ||
| ioctl-number.txt | ||
| iostats.txt | ||
| irqflags-tracing.txt | ||
| isapnp.txt | ||
| java.txt | ||
| kernel-doc-nano-HOWTO.txt | ||
| kernel-docs.txt | ||
| kernel-parameters.txt | ||
| keys-request-key.txt | ||
| keys.txt | ||
| kobject.txt | ||
| kprobes.txt | ||
| kref.txt | ||
| laptop-mode.txt | ||
| ldm.txt | ||
| leds-class.txt | ||
| locks.txt | ||
| logo.gif | ||
| logo.txt | ||
| magic-number.txt | ||
| mandatory.txt | ||
| mca.txt | ||
| md.txt | ||
| memory-barriers.txt | ||
| memory.txt | ||
| mono.txt | ||
| moxa-smartio | ||
| mtrr.txt | ||
| mutex-design.txt | ||
| nbd.txt | ||
| nfsroot.txt | ||
| nmi_watchdog.txt | ||
| nommu-mmap.txt | ||
| numastat.txt | ||
| oops-tracing.txt | ||
| paride.txt | ||
| parport-lowlevel.txt | ||
| parport.txt | ||
| pci-error-recovery.txt | ||
| pci.txt | ||
| pi-futex.txt | ||
| pm.txt | ||
| pnp.txt | ||
| preempt-locking.txt | ||
| prio_tree.txt | ||
| ramdisk.txt | ||
| riscom8.txt | ||
| robust-futex-ABI.txt | ||
| robust-futexes.txt | ||
| rocket.txt | ||
| rpc-cache.txt | ||
| rt-mutex-design.txt | ||
| rt-mutex.txt | ||
| rtc.txt | ||
| sched-arch.txt | ||
| sched-coding.txt | ||
| sched-design.txt | ||
| sched-domains.txt | ||
| sched-stats.txt | ||
| seclvl.txt | ||
| serial-console.txt | ||
| sgi-ioc4.txt | ||
| sgi-visws.txt | ||
| sharedsubtree.txt | ||
| smart-config.txt | ||
| smp.txt | ||
| sonypi.txt | ||
| sparse.txt | ||
| specialix.txt | ||
| spinlocks.txt | ||
| stable_api_nonsense.txt | ||
| stable_kernel_rules.txt | ||
| stallion.txt | ||
| svga.txt | ||
| sx.txt | ||
| sysrq.txt | ||
| time_interpolators.txt | ||
| tipar.txt | ||
| tty.txt | ||
| unicode.txt | ||
| unshare.txt | ||
| voyager.txt | ||
| xterm-linux.xpm | ||
| zorro.txt | ||
README.cycladesZ
The Cyclades-Z must have firmware loaded onto the card before it will
operate. This operation should be performed during system startup,
The firmware, loader program and the latest device driver code are
available from Cyclades at
ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/