public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [ INFO: iconsistent lock state ]
@ 2008-04-25  0:24 Justin Mattock
  2008-04-25 12:11 ` Peter Zijlstra
  0 siblings, 1 reply; 10+ messages in thread
From: Justin Mattock @ 2008-04-25  0:24 UTC (permalink / raw)
  To: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 149 bytes --]

attached is dmesg of [ INFO: inconsistent lock state ]
whenever I use the boot option nohz=off this does not appear.
regards;

-- 
Justin P. Mattock

[-- Attachment #2: dmesg --]
[-- Type: application/octet-stream, Size: 51064 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Linux version 2.6.25-04569-gb69d398 (root@unix) (gcc version 4.1.3 20080114 (prerelease) (Debian 4.1.2-19)) #3 SMP Thu Apr 24 23:46:48 UTC 2008
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000003f0ea000 (usable)
[    0.000000]  BIOS-e820: 000000003f0ea000 - 000000003f2eb000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000003f2eb000 - 000000003febe000 (ACPI data)
[    0.000000]  BIOS-e820: 000000003febe000 - 000000003feef000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000003feef000 - 000000003ff00000 (ACPI data)
[    0.000000]  BIOS-e820: 000000003ff00000 - 0000000040000000 (reserved)
[    0.000000]  BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed14000 - 00000000fed1a000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed20000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)
[    0.000000] x86: PAT support disabled.
[    0.000000] 112MB HIGHMEM available.
[    0.000000] 896MB LOWMEM available.
[    0.000000] Entering add_active_range(0, 0, 258282) 0 entries of 256 used
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA             0 ->     4096
[    0.000000]   Normal       4096 ->   229376
[    0.000000]   HighMem    229376 ->   258282
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[1] active PFN ranges
[    0.000000]     0:        0 ->   258282
[    0.000000] On node 0 totalpages: 258282
[    0.000000]   DMA zone: 36 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 4060 pages, LIFO batch:0
[    0.000000]   Normal zone: 1980 pages used for memmap
[    0.000000]   Normal zone: 223300 pages, LIFO batch:31
[    0.000000]   HighMem zone: 254 pages used for memmap
[    0.000000]   HighMem zone: 28652 pages, LIFO batch:7
[    0.000000]   Movable zone: 0 pages used for memmap
[    0.000000] DMI 2.4 present.
[    0.000000] Using APIC driver default
[    0.000000] ACPI: RSDP 000FE020, 0024 (r2 APPLE )
[    0.000000] ACPI: XSDT 3FEFD1C0, 0074 (r1 APPLE   Apple00       A5       1000013)
[    0.000000] ACPI: FACP 3FEFB000, 00F4 (r3 APPLE   Apple00       A5 Loki       5F)
[    0.000000] ACPI: DSDT 3FEF0000, 48D1 (r1 APPLE  MacBookP    20002 INTL 20050309)
[    0.000000] ACPI: FACS 3FEC0000, 0040
[    0.000000] ACPI: HPET 3FEFA000, 0038 (r1 APPLE   Apple00        1 Loki       5F)
[    0.000000] ACPI: APIC 3FEF9000, 0068 (r1 APPLE   Apple00        1 Loki       5F)
[    0.000000] ACPI: MCFG 3FEF8000, 003C (r1 APPLE   Apple00        1 Loki       5F)
[    0.000000] ACPI: ASF! 3FEF7000, 00A0 (r32 APPLE   Apple00        1 Loki       5F)
[    0.000000] ACPI: SBST 3FEF6000, 0030 (r1 APPLE   Apple00        1 Loki       5F)
[    0.000000] ACPI: ECDT 3FEF5000, 0053 (r1 APPLE   Apple00        1 Loki       5F)
[    0.000000] ACPI: SSDT 3FEEF000, 04DC (r1 APPLE     CpuPm     3000 INTL 20050309)
[    0.000000] ACPI: SSDT 3FEBD000, 064F (r1 SataRe  SataPri     1000 INTL 20050309)
[    0.000000] ACPI: SSDT 3FEBC000, 069C (r1 SataRe  SataSec     1000 INTL 20050309)
[    0.000000] ACPI: DMI detected: Apple
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] BIOS bug, APIC version is 0 for CPU#0! fixing up to 0x10. (tell your hw vendor)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] BIOS bug, APIC version is 0 for CPU#0! fixing up to 0x10. (tell your hw vendor)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 1 already used, trying 2
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Enabling APIC mode:  Flat.  Using 1 I/O APICs
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] Allocating PCI resources starting at 50000000 (gap: 40000000:b0000000)
[    0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] SMP: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] PERCPU: Allocating 343216 bytes of per cpu data
[    0.000000] NR_CPUS: 2, nr_cpu_ids: 2
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 256012
[    0.000000] Kernel command line: root=/dev/sda1 ro quiet splash vga=773 selinux=1 audit=1 enforcing=0 apic=verbose acpi_osi=Linux pnpacpi=off pci=routeirq usbcore.autosuspend=1 nmi_watchdog=0
[    0.000000] audit: enabled (after initialization)
[    0.000000] ACPI: Added _OSI(Linux)
[    0.000000] mapped APIC to ffffb000 (fee00000)
[    0.000000] mapped IOAPIC to ffffa000 (fec00000)
[    0.000000] Enabling fast FPU save and restore... done.
[    0.000000] Enabling unmasked SIMD FPU exception support... done.
[    0.000000] Initializing CPU#0
[    0.000000] PID hash table entries: 4096 (order: 12, 16384 bytes)
[    0.000000] Extended CMOS year: 2000
[    0.000000] Detected 2161.318 MHz processor.
[    0.003333] Console: colour dummy device 80x25
[    0.003333] console [tty0] enabled
[    0.003333] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.003333] ... MAX_LOCKDEP_SUBCLASSES:    8
[    0.003333] ... MAX_LOCK_DEPTH:          48
[    0.003333] ... MAX_LOCKDEP_KEYS:        2048
[    0.003333] ... CLASSHASH_SIZE:           1024
[    0.003333] ... MAX_LOCKDEP_ENTRIES:     8192
[    0.003333] ... MAX_LOCKDEP_CHAINS:      16384
[    0.003333] ... CHAINHASH_SIZE:          8192
[    0.003333]  memory used by lock dependency info: 1024 kB
[    0.003333]  per task-struct memory footprint: 2688 bytes
[    0.003333] ------------------------
[    0.003333] | Locking API testsuite:
[    0.003333] ----------------------------------------------------------------------------
[    0.003333]                                  | spin |wlock |rlock |mutex | wsem | rsem |
[    0.003333]   --------------------------------------------------------------------------
[    0.003333]                      A-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]                  A-B-B-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]              A-B-B-C-C-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]              A-B-C-A-B-C deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]          A-B-B-C-C-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]          A-B-C-D-B-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]          A-B-C-D-B-C-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]                     double unlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]                   initialize held:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]                  bad unlock order:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.003333]   --------------------------------------------------------------------------
[    0.003333]               recursive read-lock:             |  ok  |             |  ok  |
[    0.003333]            recursive read-lock #2:             |  ok  |             |  ok  |
[    0.003333]             mixed read-write-lock:             |  ok  |             |  ok  |
[    0.003333]             mixed write-read-lock:             |  ok  |             |  ok  |
[    0.003333]   --------------------------------------------------------------------------
[    0.003333]      hard-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |
[    0.003333]      soft-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |
[    0.003333]      hard-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |
[    0.003333]      soft-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |
[    0.003333]        sirq-safe-A => hirqs-on/12:  ok  |  ok  |  ok  |
[    0.003333]        sirq-safe-A => hirqs-on/21:  ok  |  ok  |  ok  |
[    0.003333]          hard-safe-A + irqs-on/12:  ok  |  ok  |  ok  |
[    0.003333]          soft-safe-A + irqs-on/12:  ok  |  ok  |  ok  |
[    0.003333]          hard-safe-A + irqs-on/21:  ok  |  ok  |  ok  |
[    0.003333]          soft-safe-A + irqs-on/21:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |
[    0.003333]     hard-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |
[    0.003333]     soft-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq lock-inversion/123:  ok  |  ok  |  ok  |
[    0.003333]       soft-irq lock-inversion/123:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq lock-inversion/132:  ok  |  ok  |  ok  |
[    0.003333]       soft-irq lock-inversion/132:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq lock-inversion/213:  ok  |  ok  |  ok  |
[    0.003333]       soft-irq lock-inversion/213:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq lock-inversion/231:  ok  |  ok  |  ok  |
[    0.003333]       soft-irq lock-inversion/231:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq lock-inversion/312:  ok  |  ok  |  ok  |
[    0.003333]       soft-irq lock-inversion/312:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq lock-inversion/321:  ok  |  ok  |  ok  |
[    0.003333]       soft-irq lock-inversion/321:  ok  |  ok  |  ok  |
[    0.003333]       hard-irq read-recursion/123:  ok  |
[    0.003333]       soft-irq read-recursion/123:  ok  |
[    0.003333]       hard-irq read-recursion/132:  ok  |
[    0.003333]       soft-irq read-recursion/132:  ok  |
[    0.003333]       hard-irq read-recursion/213:  ok  |
[    0.003333]       soft-irq read-recursion/213:  ok  |
[    0.003333]       hard-irq read-recursion/231:  ok  |
[    0.003333]       soft-irq read-recursion/231:  ok  |
[    0.003333]       hard-irq read-recursion/312:  ok  |
[    0.003333]       soft-irq read-recursion/312:  ok  |
[    0.003333]       hard-irq read-recursion/321:  ok  |
[    0.003333]       soft-irq read-recursion/321:  ok  |
[    0.003333] -------------------------------------------------------
[    0.003333] Good, all 218 testcases passed! |
[    0.003333] ---------------------------------
[    0.003333] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.003333] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.003333] Memory: 1014420k/1033128k available (2655k kernel code, 18044k reserved, 1345k data, 628k init, 115624k highmem)
[    0.003333] virtual kernel memory layout:
[    0.003333]     fixmap  : 0xfff7d000 - 0xfffff000   ( 520 kB)
[    0.003333]     pkmap   : 0xff800000 - 0xffc00000   (4096 kB)
[    0.003333]     vmalloc : 0xf8800000 - 0xff7fe000   ( 111 MB)
[    0.003333]     lowmem  : 0xc0000000 - 0xf8000000   ( 896 MB)
[    0.003333]       .init : 0xc04f0000 - 0xc058d000   ( 628 kB)
[    0.003333]       .data : 0xc0397d70 - 0xc04e8190   (1345 kB)
[    0.003333]       .text : 0xc0100000 - 0xc0397d70   (2655 kB)
[    0.003333] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[    0.003333] CPA: page pool initialized 16 of 16 pages preallocated
[    0.003333] SLUB: Genslabs=12, HWalign=64, Order=0-1, MinObjects=4, CPUs=2, Nodes=1
[    0.003333] hpet clockevent registered
[    0.083333] Calibrating delay using timer specific routine.. 4330.57 BogoMIPS (lpj=7215323)
[    0.083440] Security Framework initialized
[    0.083444] SELinux:  Initializing.
[    0.083515] SELinux:  Starting in permissive mode
[    0.083533] selinux_register_security:  Registering secondary module capability
[    0.083535] Capability LSM initialized as secondary
[    0.083590] Mount-cache hash table entries: 512
[    0.084694] Initializing cgroup subsys debug
[    0.084702] Initializing cgroup subsys ns
[    0.084711] Initializing cgroup subsys cpuacct
[    0.084716] Initializing cgroup subsys memory
[    0.084736] CPU: L1 I cache: 32K, L1 D cache: 32K
[    0.084739] CPU: L2 cache: 4096K
[    0.084741] CPU: Physical Processor ID: 0
[    0.084743] CPU: Processor Core ID: 0
[    0.084746] Intel machine check architecture supported.
[    0.084749] Intel machine check reporting enabled on CPU#0.
[    0.084752] using mwait in idle threads.
[    0.084756] Compat vDSO mapped to ffffe000.
[    0.084765] Checking 'hlt' instruction... OK.
[    0.098202] ACPI: Core revision 20070126
[    0.117889] enabled ExtINT on CPU#0
[    0.118105] ENABLING IO-APIC IRQs
[    0.118107] init IO_APIC IRQs
[    0.118109]  IO-APIC (apicid-pin) 2-0 not connected.
[    0.118196]  IO-APIC (apicid-pin) 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 not connected.
[    0.118352] ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.151416] CPU0: Intel(R) Core(TM)2 CPU         T7400  @ 2.16GHz stepping 06
[    0.151420] Using local APIC timer interrupts.
[    0.151421] calibrating APIC timer ...
[    0.153323] ... lapic delta = 1039057
[    0.153323] ... PM timer delta = 357953
[    0.153323] ... PM timer result ok
[    0.153323] ..... delta 1039057
[    0.153323] ..... mult: 44630068
[    0.153323] ..... calibration result: 554163
[    0.153323] ..... CPU clock speed is 2161.1523 MHz.
[    0.153323] ..... host bus clock speed is 166.0885 MHz.
[    0.153323] lockdep: fixing up alternatives.
[    0.153323] Booting processor 1/1 ip 6000
[    0.159982] Initializing CPU#1
[    0.159982] masked ExtINT on CPU#1
[    0.239978] Calibrating delay using timer specific routine.. 4324.62 BogoMIPS (lpj=7204194)
[    0.243311] CPU: L1 I cache: 32K, L1 D cache: 32K
[    0.243311] CPU: L2 cache: 4096K
[    0.243311] CPU: Physical Processor ID: 0
[    0.243311] CPU: Processor Core ID: 1
[    0.243311] Intel machine check architecture supported.
[    0.243311] Intel machine check reporting enabled on CPU#1.
[    0.243311] x86: PAT support disabled.
[    0.244675] CPU1: Intel(R) Core(TM)2 CPU         T7400  @ 2.16GHz stepping 06
[    0.244686] checking TSC synchronization [CPU#0 -> CPU#1]: passed.
[    0.246688] Brought up 2 CPUs
[    0.246692] Total of 2 processors activated (8655.19 BogoMIPS).
[    0.246741] CPU0 attaching sched-domain:
[    0.246744]  domain 0: span 0-1
[    0.246746]   groups: 0 1
[    0.246753] CPU1 attaching sched-domain:
[    0.246756]  domain 0: span 0-1
[    0.246758]   groups: 1 0
[    0.247982] net_namespace: 564 bytes
[    0.248023] Booting paravirtualized kernel on bare hardware
[    0.249997] NET: Registered protocol family 16
[    0.251021] No dock devices found.
[    0.251637] EISA bus registered
[    0.251655] ACPI: bus type pci registered
[    0.252050] PCI: Using MMCONFIG for extended config space
[    0.252053] PCI: Using configuration type 1
[    0.252055] Setting up standard PCI resources
[    0.263484] ACPI: EC: EC description table is found, configuring boot EC
[    0.265015] ACPI: EC: non-query interrupt received, switching to interrupt mode
[    0.274361] ACPI: BIOS _OSI(Linux) query honored via cmdline
[    0.274945] ACPI: Interpreter enabled
[    0.274948] ACPI: (supports S0 S3 S4 S5)
[    0.275031] ACPI: Using IOAPIC for interrupt routing
[    0.307627] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    0.307630] ACPI: EC: driver started in poll mode
[    0.310644] ACPI: PCI Root Bridge [PCI0] (0000:00)
[    0.312392] pci 0000:00:1f.0: quirk: region 0400-047f claimed by ICH6 ACPI/GPIO/TCO
[    0.312399] pci 0000:00:1f.0: quirk: region 0500-053f claimed by ICH6 GPIO
[    0.314182] PCI: Transparent bridge - 0000:00:1e.0
[    0.314263] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.316143] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEGP._PRT]
[    0.316738] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.317304] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    0.317869] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP03._PRT]
[    0.318473] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
[    0.345399] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[    0.345661] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 *11 12 14 15)
[    0.345920] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[    0.346177] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 14 15)
[    0.346432] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[    0.346703] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    0.346959] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 *10 12 14 15)
[    0.347241] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *11 12 14 15)
[    0.348249] Linux Plug and Play Support v0.97 (c) Adam Belay
[    0.348405] pnp: PnP ACPI: disabled
[    0.349335] SCSI subsystem initialized
[    0.349536] libata version 3.00 loaded.
[    0.350095] usbcore: registered new interface driver usbfs
[    0.350402] usbcore: registered new interface driver hub
[    0.350618] usbcore: registered new device driver usb
[    0.351970] PCI: Using ACPI for IRQ routing
[    0.351972] PCI: Routing PCI interrupts for all devices because "pci=routeirq" specified
[    0.351991] ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16
[    0.351999] ACPI: PCI Interrupt 0000:00:07.0[A] -> GSI 16 (level, low) -> IRQ 16
[    0.352010] ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 22 (level, low) -> IRQ 22
[    0.352020] ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 17 (level, low) -> IRQ 17
[    0.352027] ACPI: PCI Interrupt 0000:00:1c.1[B] -> GSI 16 (level, low) -> IRQ 16
[    0.352037] ACPI: PCI Interrupt 0000:00:1c.2[C] -> GSI 18 (level, low) -> IRQ 18
[    0.352047] ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 23 (level, low) -> IRQ 23
[    0.352057] ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) -> IRQ 19
[    0.352065] ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 18
[    0.352072] ACPI: PCI Interrupt 0000:00:1d.3[D] -> GSI 16 (level, low) -> IRQ 16
[    0.352080] ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 23 (level, low) -> IRQ 23
[    0.352095] ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
[    0.352102] ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 19
[    0.352109] ACPI: PCI Interrupt 0000:00:1f.3[B] -> GSI 19 (level, low) -> IRQ 19
[    0.352117] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[    0.352124] ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
[    0.352132] ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 17
[    0.352139] ACPI: PCI Interrupt 0000:0c:03.0[A] -> GSI 19 (level, low) -> IRQ 19
[    0.352146] number of MP IRQ sources: 15.
[    0.352148] number of IO-APIC #2 registers: 24.
[    0.352150] testing the IO APIC.......................
[    0.352159] IO APIC #2......
[    0.352160] .... register #00: 02000000
[    0.352162] .......    : physical APIC id: 02
[    0.352164] .......    : Delivery Type: 0
[    0.352165] .......    : LTS          : 0
[    0.352167] .... register #01: 00170020
[    0.352169] .......     : max redirection entries: 0017
[    0.352170] .......     : PRQ implemented: 0
[    0.352172] .......     : IO APIC version: 0020
[    0.352174] .... IRQ redirection table:
[    0.352175]  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
[    0.352181]  00 000 00  1    0    0   0   0    0    0    00
[    0.352188]  01 003 03  0    0    0   0   0    1    1    39
[    0.352195]  02 003 03  0    0    0   0   0    1    1    31
[    0.352202]  03 003 03  0    0    0   0   0    1    1    41
[    0.352209]  04 003 03  0    0    0   0   0    1    1    49
[    0.352216]  05 003 03  0    0    0   0   0    1    1    51
[    0.352222]  06 003 03  0    0    0   0   0    1    1    59
[    0.352229]  07 003 03  0    0    0   0   0    1    1    61
[    0.352236]  08 003 03  0    0    0   0   0    1    1    69
[    0.352243]  09 003 03  0    1    0   0   0    1    1    71
[    0.352249]  0a 003 03  0    0    0   0   0    1    1    79
[    0.352256]  0b 003 03  0    0    0   0   0    1    1    81
[    0.352263]  0c 003 03  0    0    0   0   0    1    1    89
[    0.352270]  0d 003 03  0    0    0   0   0    1    1    91
[    0.352276]  0e 003 03  0    0    0   0   0    1    1    99
[    0.352283]  0f 003 03  0    0    0   0   0    1    1    A1
[    0.352290]  10 003 03  1    1    0   1   0    1    1    A9
[    0.352297]  11 003 03  1    1    0   1   0    1    1    B9
[    0.352304]  12 003 03  1    1    0   1   0    1    1    C1
[    0.352311]  13 003 03  1    1    0   1   0    1    1    D1
[    0.352318]  14 000 00  1    0    0   0   0    0    0    00
[    0.352324]  15 000 00  1    0    0   0   0    0    0    00
[    0.352331]  16 003 03  1    1    0   1   0    1    1    B1
[    0.352338]  17 003 03  1    1    0   1   0    1    1    C9
[    0.352341] IRQ to pin mappings:
[    0.352343] IRQ0 -> 0:2
[    0.352345] IRQ1 -> 0:1
[    0.352348] IRQ3 -> 0:3
[    0.352350] IRQ4 -> 0:4
[    0.352353] IRQ5 -> 0:5
[    0.352355] IRQ6 -> 0:6
[    0.352358] IRQ7 -> 0:7
[    0.352360] IRQ8 -> 0:8
[    0.352363] IRQ9 -> 0:9
[    0.352365] IRQ10 -> 0:10
[    0.352368] IRQ11 -> 0:11
[    0.352370] IRQ12 -> 0:12
[    0.352373] IRQ13 -> 0:13
[    0.352375] IRQ14 -> 0:14
[    0.352378] IRQ15 -> 0:15
[    0.352381] IRQ16 -> 0:16
[    0.352383] IRQ17 -> 0:17
[    0.352386] IRQ18 -> 0:18
[    0.352388] IRQ19 -> 0:19
[    0.352391] IRQ22 -> 0:22
[    0.352393] IRQ23 -> 0:23
[    0.352396] .................................... done.
[    0.360202] NetLabel: Initializing
[    0.360204] NetLabel:  domain hash size = 128
[    0.360206] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.360313] NetLabel:  unlabeled traffic allowed by default
[    0.360323] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[    0.360328] hpet0: 3 64-bit timers, 14318180 Hz
[    0.399168] PCI: Bridge: 0000:00:01.0
[    0.399172]   IO window: 3000-3fff
[    0.399179]   MEM window: 0x50300000-0x503fffff
[    0.399185]   PREFETCH window: 0x0000000040000000-0x0000000047ffffff
[    0.399195] PCI: Bridge: 0000:00:1c.0
[    0.399199]   IO window: 2000-2fff
[    0.399208]   MEM window: 0x50200000-0x502fffff
[    0.399215]   PREFETCH window: 0x0000000050500000-0x00000000505fffff
[    0.399226] PCI: Bridge: 0000:00:1c.1
[    0.399228]   IO window: disabled.
[    0.399237]   MEM window: 0x50100000-0x501fffff
[    0.399243]   PREFETCH window: disabled.
[    0.399254] PCI: Bridge: 0000:00:1c.2
[    0.399258]   IO window: 1000-1fff
[    0.399267]   MEM window: 0x4c100000-0x500fffff
[    0.399274]   PREFETCH window: 0x0000000048000000-0x000000004bffffff
[    0.399286] PCI: Bridge: 0000:00:1e.0
[    0.399287]   IO window: disabled.
[    0.399296]   MEM window: 0x4c000000-0x4c0fffff
[    0.399302]   PREFETCH window: disabled.
[    0.399335] ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16
[    0.399343] PCI: Setting latency timer of device 0000:00:01.0 to 64
[    0.399383] ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 17 (level, low) -> IRQ 17
[    0.399392] PCI: Setting latency timer of device 0000:00:1c.0 to 64
[    0.399432] ACPI: PCI Interrupt 0000:00:1c.1[B] -> GSI 16 (level, low) -> IRQ 16
[    0.399440] PCI: Setting latency timer of device 0000:00:1c.1 to 64
[    0.399481] ACPI: PCI Interrupt 0000:00:1c.2[C] -> GSI 18 (level, low) -> IRQ 18
[    0.399489] PCI: Setting latency timer of device 0000:00:1c.2 to 64
[    0.399510] PCI: Setting latency timer of device 0000:00:1e.0 to 64
[    0.399531] NET: Registered protocol family 2
[    0.410157] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.410935] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.411818] TCP bind hash table entries: 65536 (order: 9, 2359296 bytes)
[    0.419456] TCP: Hash tables configured (established 131072 bind 65536)
[    0.419482] TCP reno registered
[    0.423512] NET: Registered protocol family 1
[    0.427441] IA-32 Microcode Update Driver: v1.14a <tigran@aivazian.fsnet.co.uk>
[    0.430684] Initializing RT-Tester: OK
[    0.430852] audit: initializing netlink socket (enabled)
[    0.430931] type=2000 audit(1209081460.429:1): initialized
[    0.431538] highmem bounce pool size: 64 pages
[    0.431545] Total HugeTLB memory allocated, 0
[    0.459699] fuse init (API version 7.9)
[    0.461211] SELinux:  Registering netfilter hooks
[    0.461993] io scheduler noop registered
[    0.462531] io scheduler cfq registered (default)
[    0.462722] pci 0000:01:00.0: Boot video device
[    0.463434] vesafb: framebuffer at 0x40000000, mapped to 0xf8880000, using 1536k, total 16384k
[    0.463437] vesafb: mode is 1024x768x8, linelength=1024, pages=18
[    0.463440] vesafb: protected mode interface info at c000:ad0c
[    0.463442] vesafb: pmi: set display start = c00cad94, set palette = c00cae50
[    0.463444] vesafb: scrolling: redraw
[    0.463446] vesafb: Pseudocolor: size=8:8:8:8, shift=0:0:0:0
[    0.477317] Console: switching to colour frame buffer device 128x48
[    0.489397] fb0: VESA VGA frame buffer device
[    0.489661] power_supply ADP1: uevent
[    0.489664] power_supply ADP1: No power supply yet
[    0.489976] power_supply ADP1: power_supply_changed
[    0.489987] ACPI: AC Adapter [ADP1] (on-line)
[    0.490296] power_supply ADP1: power_supply_changed_work
[    0.490307] power_supply ADP1: power_supply_update_gen_leds 1
[    0.490335] power_supply ADP1: uevent
[    0.490337] power_supply ADP1: POWER_SUPPLY_NAME=ADP1
[    0.490344] power_supply ADP1: Static prop TYPE=Mains
[    0.490347] power_supply ADP1: 1 dynamic props
[    0.490350] power_supply ADP1: prop ONLINE=1
[    0.491603] ACPI: EC: non-query interrupt received, switching to interrupt mode
[    0.501336] Switched to high resolution mode on CPU 1
[    0.503314] Switched to high resolution mode on CPU 0
[    0.602776] power_supply BAT0: uevent
[    0.602779] power_supply BAT0: No power supply yet
[    0.602963] power_supply BAT0: power_supply_changed
[    0.603163] power_supply BAT0: power_supply_changed_work
[    0.636543] ACPI: Battery Slot [BAT0] (battery present)
[    0.659618] hpet_resources: 0xfed00000 is busy
[    0.662185] loop: module loaded
[    0.662204] kgdb: Registered I/O driver kgdbts.
[    0.662356] kgdbts:RUN plant and detach test
[    0.662429] kgdbts:RUN sw breakpoint test
[    0.662499] kgdbts:RUN bad memory access test
[    0.662546] kgdbts:RUN singlestep breakpoint test
[    0.662647] kgdbts:RUN hw breakpoint test
[    0.662710] kgdbts:RUN hw write breakpoint test
[    0.662773] kgdbts:RUN access write breakpoint test
[    0.662836] kgdbts:RUN do_fork for 100 breakpoints
[    0.663017] Linux video capture interface: v2.00
[    0.663528] input: Macintosh mouse button emulation as /class/input/input0
[    0.664423] Driver 'sd' needs updating - please use bus_type methods
[    0.664656] Driver 'sr' needs updating - please use bus_type methods
[    0.665508] ata_piix 0000:00:1f.1: version 2.12
[    0.665527] ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
[    0.665628] PCI: Setting latency timer of device 0000:00:1f.1 to 64
[    0.666847] scsi0 : ata_piix
[    0.667327] power_supply BAT0: power_supply_update_bat_leds 4
[    0.667347] power_supply BAT0: uevent
[    0.667348] power_supply BAT0: POWER_SUPPLY_NAME=BAT0
[    0.667353] power_supply BAT0: Static prop TYPE=Battery
[    0.667357] power_supply BAT0: 12 dynamic props
[    0.667360] power_supply BAT0: prop STATUS=Full
[    0.667365] power_supply BAT0: prop PRESENT=1
[    0.667370] power_supply BAT0: prop TECHNOLOGY=Unknown
[    0.667374] power_supply BAT0: prop VOLTAGE_MIN_DESIGN=10800000
[    0.667378] power_supply BAT0: prop VOLTAGE_NOW=12460000
[    0.667383] power_supply BAT0: prop CURRENT_NOW=0
[    0.667387] power_supply BAT0: prop ENERGY_FULL_DESIGN=55000000
[    0.667391] power_supply BAT0: prop ENERGY_FULL=53260000
[    0.667395] power_supply BAT0: prop ENERGY_NOW=51630000
[    0.667399] power_supply BAT0: prop MODEL_NAME=ASMB012
[    0.667403] power_supply BAT0: prop MANUFACTURER=SMPN012
[    0.667407] power_supply BAT0: prop SERIAL_NUMBER=
[    0.667644] scsi1 : ata_piix
[    0.669609] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x40b0 irq 14
[    0.669612] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x40b8 irq 15
[    0.690996] ata1.00: ATAPI: MATSHITADVD-R   UJ-857D, KCV9, max UDMA/66
[    0.704215] ata1.00: configured for UDMA/66
[    0.990944] scsi 0:0:0:0: CD-ROM            MATSHITA DVD-R   UJ-857D  KCV9 PQ: 0 ANSI: 5
[    0.995867] sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
[    0.995871] Uniform CD-ROM driver Revision: 3.20
[    0.996360] sr 0:0:0:0: Attached scsi CD-ROM sr0
[    0.996937] sr 0:0:0:0: Attached scsi generic sg0 type 5
[    0.997034] ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 19
[    0.997042] ata_piix 0000:00:1f.2: MAP [ P0 P2 -- -- ]
[    1.015177] PCI: Setting latency timer of device 0000:00:1f.2 to 64
[    1.147605] scsi2 : ata_piix
[    1.148053] scsi3 : ata_piix
[    1.153976] ata3: SATA max UDMA/133 cmd 0x40c8 ctl 0x40e4 bmdma 0x40a0 irq 19
[    1.153979] ata4: SATA max UDMA/133 cmd 0x40c0 ctl 0x40e0 bmdma 0x40a8 irq 19
[    1.330988] ata3.01: ATA-8: FUJITSU MHW2120BH, 00810013, max UDMA/100
[    1.330991] ata3.01: 234441648 sectors, multi 16: LBA48 NCQ (depth 0/32)
[    1.344295] ata3.01: configured for UDMA/100
[    1.471830] scsi 2:0:1:0: Direct-Access     ATA      FUJITSU MHW2120B 0081 PQ: 0 ANSI: 5
[    1.479181] sd 2:0:1:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
[    1.479227] sd 2:0:1:0: [sda] Write Protect is off
[    1.479230] sd 2:0:1:0: [sda] Mode Sense: 00 3a 00 00
[    1.479315] sd 2:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.479879] sd 2:0:1:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
[    1.479925] sd 2:0:1:0: [sda] Write Protect is off
[    1.479928] sd 2:0:1:0: [sda] Mode Sense: 00 3a 00 00
[    1.480014] sd 2:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.480041]  sda: sda1 sda2 < sda5 >
[    1.482382] sd 2:0:1:0: [sda] Attached SCSI disk
[    1.482861] sd 2:0:1:0: Attached scsi generic sg1 type 0
[    1.483322] usbcore: registered new interface driver usblcd
[    1.483530] usbcore: registered new interface driver usbled
[    1.484381] PNP: No PS/2 controller found. Probing ports directly.
[    1.485266] i8042.c: No controller found.
[    1.489203] mice: PS/2 mouse device common for all mice
[    1.490530] device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com
[    1.490533] EDAC MC: Ver: 2.1.0 Apr 24 2008
[    1.491554] cpuidle: using governor ladder
[    1.491558] cpuidle: using governor menu
[    1.491777] usbcore: registered new interface driver hiddev
[    1.492047] usbcore: registered new interface driver usbhid
[    1.492054] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[    1.492307] Advanced Linux Sound Architecture Driver Version 1.0.16.
[    1.492309] ALSA device list:
[    1.492311]   No soundcards found.
[    1.492711] oprofile: using NMI interrupt.
[    1.494580] IPVS: Registered protocols (TCP, AH, ESP)
[    1.494928] IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
[    1.494973] IPVS: ipvs loaded.
[    1.494975] Initializing XFRM netlink socket
[    1.495004] NET: Registered protocol family 17
[    1.495028] NET: Registered protocol family 15
[    1.495038] Using IPI No-Shortcut mode
[    1.499695] kjournald starting.  Commit interval 5 seconds
[    1.499895] EXT3-fs: mounted filesystem with ordered data mode.
[    1.499994] VFS: Mounted root (ext3 filesystem) readonly.
[    1.500067] debug: unmapping init memory c04f0000..c058d000
[    2.176870] SELinux: 8192 avtab hash slots, 205835 rules.
[    2.323767] SELinux: 8192 avtab hash slots, 205835 rules.
[    2.522185] SELinux:  7 users, 7 roles, 3017 types, 90 bools
[    2.522190] SELinux:  72 classes, 205835 rules
[    2.529399] SELinux:  Completing initialization.
[    2.529402] SELinux:  Setting up existing superblocks.
[    2.536933] SELinux: initialized (dev sda1, type ext3), uses xattr
[    2.651700] SELinux: initialized (dev selinuxfs, type selinuxfs), uses genfs_contexts
[    2.651924] SELinux: initialized (dev mqueue, type mqueue), uses transition SIDs
[    2.652032] SELinux: initialized (dev hugetlbfs, type hugetlbfs), uses genfs_contexts
[    2.652123] SELinux: initialized (dev devpts, type devpts), uses transition SIDs
[    2.676627] SELinux: initialized (dev inotifyfs, type inotifyfs), uses genfs_contexts
[    2.676714] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[    2.676826] SELinux: initialized (dev futexfs, type futexfs), uses genfs_contexts
[    2.676923] SELinux: initialized (dev anon_inodefs, type anon_inodefs), uses genfs_contexts
[    2.677012] SELinux: initialized (dev pipefs, type pipefs), uses task SIDs
[    2.677113] SELinux: initialized (dev debugfs, type debugfs), uses genfs_contexts
[    2.677222] SELinux: initialized (dev sockfs, type sockfs), uses task SIDs
[    2.677326] SELinux: initialized (dev proc, type proc), uses genfs_contexts
[    2.677497] SELinux: initialized (dev bdev, type bdev), uses genfs_contexts
[    2.677593] SELinux: initialized (dev rootfs, type rootfs), uses genfs_contexts
[    2.677713] SELinux: initialized (dev sysfs, type sysfs), uses genfs_contexts
[    2.703134] SELinux: policy loaded with handle_unknown=deny
[    2.703171] type=1403 audit(1209081462.740:2): policy loaded auid=4294967295 ses=4294967295
[    3.759285] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[    3.768087] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[    5.091143] kgdb: Unregistered I/O driver kgdbts, debugger disabled.
[    8.686386] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[    8.966980] power_supply ADP1: uevent
[    8.966983] power_supply ADP1: POWER_SUPPLY_NAME=ADP1
[    8.966990] power_supply ADP1: Static prop TYPE=Mains
[    8.966995] power_supply ADP1: 1 dynamic props
[    8.966998] power_supply ADP1: prop ONLINE=1
[    8.969506] power_supply BAT0: uevent
[    8.969508] power_supply BAT0: POWER_SUPPLY_NAME=BAT0
[    8.969513] power_supply BAT0: Static prop TYPE=Battery
[    8.969517] power_supply BAT0: 12 dynamic props
[    9.020810] power_supply BAT0: prop STATUS=Full
[    9.020817] power_supply BAT0: prop PRESENT=1
[    9.020823] power_supply BAT0: prop TECHNOLOGY=Unknown
[    9.020827] power_supply BAT0: prop VOLTAGE_MIN_DESIGN=10800000
[    9.020831] power_supply BAT0: prop VOLTAGE_NOW=12460000
[    9.020834] power_supply BAT0: prop CURRENT_NOW=0
[    9.020838] power_supply BAT0: prop ENERGY_FULL_DESIGN=55000000
[    9.020842] power_supply BAT0: prop ENERGY_FULL=53260000
[    9.020846] power_supply BAT0: prop ENERGY_NOW=51630000
[    9.020850] power_supply BAT0: prop MODEL_NAME=ASMB012
[    9.020853] power_supply BAT0: prop MANUFACTURER=SMPN012
[    9.020857] power_supply BAT0: prop SERIAL_NUMBER=
[   10.767156] input: Power Button (FF) as /class/input/input1
[   10.787213] ACPI: Power Button (FF) [PWRF]
[   10.787648] input: Lid Switch as /class/input/input2
[   10.787799] ACPI: Lid Switch [LID0]
[   10.787985] input: Power Button (CM) as /class/input/input3
[   10.818856] ACPI: Power Button (CM) [PWRB]
[   10.819071] input: Sleep Button (CM) as /class/input/input4
[   10.850810] ACPI: Sleep Button (CM) [SLPB]
[   11.081744] ACPI: SSDT 3FEB8C10, 02AE (r1 APPLE   Cpu0Ist     3000 INTL 20050309)
[   11.083278] ACPI: SSDT 3FEB8910, 02A0 (r1 APPLE   Cpu0Cst     3001 INTL 20050309)
[   11.084799] Monitor-Mwait will be used to enter C-1 state
[   11.084803] Monitor-Mwait will be used to enter C-2 state
[   11.084807] Monitor-Mwait will be used to enter C-3 state
[   11.085422] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[   11.085613] ACPI: ACPI0007:00 is registered as cooling_device0
[   11.085626] ACPI: Processor [CPU0] (supports 8 throttling states)
[   11.086905] ACPI: SSDT 3FEB8F10, 0087 (r1 APPLE   Cpu1Ist     3000 INTL 20050309)
[   11.088386] ACPI: SSDT 3FEB7F10, 0085 (r1 APPLE   Cpu1Cst     3000 INTL 20050309)
[   11.167923] ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3])
[   11.168028] ACPI: ACPI0007:01 is registered as cooling_device1
[   11.168044] ACPI: Processor [CPU1] (supports 8 throttling states)
[   11.170821] input: Video Bus as /class/input/input5
[   11.208162] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   11.230535] Linux agpgart interface v0.103
[   11.342216] USB Universal Host Controller Interface driver v3.0
[   11.342501] ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 23 (level, low) -> IRQ 23
[   11.342519] PCI: Setting latency timer of device 0000:00:1d.0 to 64
[   11.342524] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[   11.344356] SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts
[   11.345055] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
[   11.345115] uhci_hcd 0000:00:1d.0: irq 23, io base 0x00004080
[   11.346079] usb usb1: configuration #1 chosen from 1 choice
[   11.346380] hub 1-0:1.0: USB hub found
[   11.346511] hub 1-0:1.0: 2 ports detected
[   11.450990] ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) -> IRQ 19
[   11.451009] PCI: Setting latency timer of device 0000:00:1d.1 to 64
[   11.451015] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[   11.451139] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
[   11.451183] uhci_hcd 0000:00:1d.1: irq 19, io base 0x00004060
[   11.451658] usb usb2: configuration #1 chosen from 1 choice
[   11.451758] hub 2-0:1.0: USB hub found
[   11.451781] hub 2-0:1.0: 2 ports detected
[   11.559212] ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 18
[   11.559234] PCI: Setting latency timer of device 0000:00:1d.2 to 64
[   11.559239] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[   11.559398] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
[   11.559459] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00004040
[   11.560096] usb usb3: configuration #1 chosen from 1 choice
[   11.560198] hub 3-0:1.0: USB hub found
[   11.560219] hub 3-0:1.0: 2 ports detected
[   11.670477] ACPI: PCI Interrupt 0000:00:1d.3[D] -> GSI 16 (level, low) -> IRQ 16
[   11.670494] PCI: Setting latency timer of device 0000:00:1d.3 to 64
[   11.670499] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[   11.670606] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 4
[   11.670685] uhci_hcd 0000:00:1d.3: irq 16, io base 0x00004020
[   11.671111] usb usb4: configuration #1 chosen from 1 choice
[   11.671225] hub 4-0:1.0: USB hub found
[   11.671245] hub 4-0:1.0: 2 ports detected
[   11.694701] usb 1-2: new full speed USB device using uhci_hcd and address 2
[   11.776780] ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 23 (level, low) -> IRQ 23
[   11.776807] PCI: Setting latency timer of device 0000:00:1d.7 to 64
[   11.776813] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[   11.776941] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 5
[   11.780888] ehci_hcd 0000:00:1d.7: debug port 1
[   11.780899] PCI: cache line size of 32 is not supported by device 0000:00:1d.7
[   11.780912] ehci_hcd 0000:00:1d.7: irq 23, io mem 0x50405400
[   11.863181] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
[   11.863643] usb usb5: configuration #1 chosen from 1 choice
[   11.863745] hub 5-0:1.0: USB hub found
[   11.863856] hub 5-0:1.0: 8 ports detected
[   11.874998] usb 1-2: unable to read config index 0 descriptor/all
[   11.875162] usb 1-2: can't read configurations, error -71
[   12.107733] ACPI: PCI Interrupt 0000:0c:03.0[A] -> GSI 19 (level, low) -> IRQ 19
[   12.159526] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[19]  MMIO=[4c004000-4c0047ff]  Max Packet=[4096]  IR/IT contexts=[4/8]
[   12.813885] usb 5-4: new high speed USB device using ehci_hcd and address 3
[   12.908856] ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 22 (level, low) -> IRQ 22
[   12.908946] PCI: Setting latency timer of device 0000:00:1b.0 to 64
[   12.947394] hda_codec: STAC922x, Apple subsys_id=106b1e00
[   12.974968] usb 5-4: configuration #1 chosen from 1 choice
[   13.269748] Marking TSC unstable due to: TSC halts in idle.
[   13.269762] 
[   13.269763] =================================
[   13.270954] [ INFO: inconsistent lock state ]
[   13.271865] 2.6.25-04569-gb69d398 #3
[   13.272614] ---------------------------------
[   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
[   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
[   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
[   13.276859] {in-hardirq-W} state was registered at:
[   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
[   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
[   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
[   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
[   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
[   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
[   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
[   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
[   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
[   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
[   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
[   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
[   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
[   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
[   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
[   13.293520]   [<ffffffff>] 0xffffffff
[   13.293520] irq event stamp: 253965
[   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
[   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
[   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
[   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
[   13.303522] 
[   13.303522] other info that might help us debug this:
[   13.303522] no locks held by swapper/0.
[   13.303522] 
[   13.303522] stack backtrace:
[   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
[   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
[   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
[   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
[   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
[   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
[   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
[   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
[   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
[   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
[   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
[   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
[   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
[   13.383517]  [<c0387071>] rest_init+0x49/0x4b
[   13.386850]  =======================
[   13.746969] ieee1394: Host added: ID:BUS[0-00:1023]  GUID[0019e3fffe2ad87e]
[   13.908965] usb 1-2: new full speed USB device using uhci_hcd and address 4
[   14.008693] Clocksource tsc unstable (delta = -192259833 ns)
[   14.105113] usb 1-2: configuration #1 chosen from 1 choice
[   14.122683] input: Apple Computer Apple Internal Keyboard / Trackpad as /class/input/input6
[   14.152184] input: USB HID v1.11 Keyboard [Apple Computer Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-2
[   14.171815] input: Apple Computer Apple Internal Keyboard / Trackpad as /class/input/input7
[   14.187854] input: USB HID v1.11 Device [Apple Computer Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-2
[   14.467490] usb 3-2: new full speed USB device using uhci_hcd and address 2
[   14.652911] usb 3-2: configuration #1 chosen from 1 choice
[   14.672321] hiddev0: USB HID v1.11 Device [Apple Computer, Inc. IR Receiver] on usb-0000:00:1d.2-2
[   14.977075] usb 4-1: new full speed USB device using uhci_hcd and address 2
[   15.224317] usb 4-1: configuration #1 chosen from 1 choice
[   15.272181] input: HID 05ac:1000 as /class/input/input8
[   15.286213] input: USB HID v1.11 Keyboard [HID 05ac:1000] on usb-0000:00:1d.3-1
[   15.320322] input: HID 05ac:1000 as /class/input/input9
[   15.334877] input: USB HID v1.11 Mouse [HID 05ac:1000] on usb-0000:00:1d.3-1
[   15.365332] appletouch: Geyser mode initialized.
[   15.370791] input: appletouch as /class/input/input10
[   15.439825] usbcore: registered new interface driver appletouch
[   15.675377] usb 5-4: USB disconnect, address 3
[   16.071446] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[   16.214553] applesmc: Apple MacBook Pro detected:
[   16.218315] applesmc:  - Model with accelerometer
[   16.231620] applesmc:  - Model with light sensors and backlight
[   16.240618] applesmc:  - Model with 12 temperature sensors
[   16.358731] applesmc: device successfully initialized (0xe0, 0x00).
[   16.358735] applesmc: device successfully initialized.
[   16.369144] applesmc: 2 fans found.
[   16.383592] input: applesmc as /class/input/input11
[   16.411909] Registered led device: smc::kbd_backlight
[   16.417313] applesmc: driver successfully loaded.
[   16.724341] intelfb: Framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM chipsets
[   16.729798] intelfb: Version 0.9.4
[   16.862401] ip_tables: (C) 2000-2006 Netfilter Core Team
[   16.996418] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[   17.101522] arp_tables: (C) 2002 David S. Miller
[   17.209549] ieee80211_crypt: registered algorithm 'NULL'
[   17.259115] ieee80211_crypt: registered algorithm 'TKIP'
[   17.402449] ipmi message handler version 39.1
[   17.442611] IPMI Watchdog: driver initialized
[   17.823337] Adding 2988048k swap on /dev/disk/by-uuid/c58cdc7c-b94b-4116-9cca-bf154269e4d8.  Priority:-1 extents:1 across:2988048k
[   18.021390] EXT3 FS on sda1, internal journal
[   18.176381] usb 5-4: new high speed USB device using ehci_hcd and address 6
[   18.358555] usb 5-4: configuration #1 chosen from 1 choice
[   22.500853] appletouch: incomplete data package (first byte: 2, length: 4).
[   22.500875] drivers/input/mouse/appletouch.c: atp_complete - usb_submit_urb failed with result -1
[   24.593585] input: Pommed beeper device as /class/input/input12
[   24.864839] Bluetooth: Core ver 2.11
[   24.865664] NET: Registered protocol family 31
[   24.865668] Bluetooth: HCI device and connection manager initialized
[   24.865672] Bluetooth: HCI socket layer initialized
[   24.929632] Bluetooth: L2CAP ver 2.9
[   24.929636] Bluetooth: L2CAP socket layer initialized
[   25.030308] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[   25.062256] usb 4-1: usbfs: USBDEVFS_CONTROL failed cmd hid2hci rqt 64 rq 0 len 0 ret -84
[   25.127751] Bluetooth: RFCOMM socket layer initialized
[   25.127776] Bluetooth: RFCOMM TTY layer initialized
[   25.127779] Bluetooth: RFCOMM ver 1.8
[   25.493270] usb 4-1: USB disconnect, address 2
[   25.880980] usb 4-1: new full speed USB device using uhci_hcd and address 3
[   26.158839] usb 4-1: configuration #1 chosen from 1 choice
[   26.369180] Bluetooth: HCI USB driver ver 2.9
[   26.373836] usbcore: registered new interface driver hci_usb
[   33.809420] input: Apple Computer, Inc. Mighty Mouse as /class/input/input13
[   35.545722] CPA self-test:
[   35.546134]  4k 8192 large 216 gb 0 x 8408[c0000000-f7fff000] miss 0
[   35.570533]  4k 194560 large 34 gb 0 x 194594[c0000000-f7fff000] miss 0
[   35.590530]  4k 194560 large 34 gb 0 x 194594[c0000000-f7fff000] miss 0
[   35.590537] ok.
[   51.844686] type=1400 audit(1209081504.512:3): avc:  denied  { read write } for  pid=2904 comm="modprobe" name="tty7" dev=tmpfs ino=2897 scontext=a-12:sysadm_r:insmod_t tcontext=system_u:object_r:tty_device_t tclass=chr_file
[   51.844917] type=1400 audit(1209081504.512:3): avc:  denied  { read write } for  pid=2904 comm="modprobe" path="socket:[8267]" dev=sockfs ino=8267 scontext=a-12:sysadm_r:insmod_t tcontext=a-12:sysadm_r:sysadm_xserver_t tclass=unix_stream_socket
[   51.845129] type=1300 audit(1209081504.512:3): arch=40000003 syscall=11 success=yes exit=0 a0=bf8efae8 a1=bf8eeaa8 a2=bf8f044c a3=2 items=0 ppid=2891 pid=2904 auid=4294967295 uid=0 gid=1000 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty7 ses=4294967295 comm="modprobe" exe="/sbin/modprobe" subj=a-12:sysadm_r:insmod_t key=(null)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ INFO: iconsistent lock state ]
  2008-04-25  0:24 [ INFO: iconsistent lock state ] Justin Mattock
@ 2008-04-25 12:11 ` Peter Zijlstra
  2008-04-25 14:47   ` Justin Mattock
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Zijlstra @ 2008-04-25 12:11 UTC (permalink / raw)
  To: Justin Mattock
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, 2008-04-25 at 00:24 +0000, Justin Mattock wrote:

> [   13.269763] =================================
> [   13.270954] [ INFO: inconsistent lock state ]
> [   13.271865] 2.6.25-04569-gb69d398 #3

What tree is that? git checkout gb69d398 doesn't want to happen here.

> [   13.272614] ---------------------------------
> [   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
> [   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
> [   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
> [   13.276859] {in-hardirq-W} state was registered at:
> [   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
> [   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
> [   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
> [   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
> [   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
> [   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
> [   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
> [   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
> [   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
> [   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
> [   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
> [   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
> [   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
> [   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
> [   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
> [   13.293520]   [<ffffffff>] 0xffffffff
> [   13.293520] irq event stamp: 253965
> [   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
> [   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
> [   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
> [   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
> [   13.303522]
> [   13.303522] other info that might help us debug this:
> [   13.303522] no locks held by swapper/0.
> [   13.303522]
> [   13.303522] stack backtrace:
> [   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
> [   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
> [   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
> [   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
> [   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
> [   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
> [   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
> [   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
> [   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
> [   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
> [   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
> [   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
> [   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
> [   13.383517]  [<c0387071>] rest_init+0x49/0x4b
> [   13.386850]  =======================

looking at current -linus I'm not directly seeing how we can get there
with interrupts enabled.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ INFO: iconsistent lock state ]
  2008-04-25 12:11 ` Peter Zijlstra
@ 2008-04-25 14:47   ` Justin Mattock
  2008-04-25 14:59     ` Peter Zijlstra
  0 siblings, 1 reply; 10+ messages in thread
From: Justin Mattock @ 2008-04-25 14:47 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, Apr 25, 2008 at 12:11 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Fri, 2008-04-25 at 00:24 +0000, Justin Mattock wrote:
>
>  > [   13.269763] =================================
>  > [   13.270954] [ INFO: inconsistent lock state ]
>  > [   13.271865] 2.6.25-04569-gb69d398 #3
>
>  What tree is that? git checkout gb69d398 doesn't want to happen here.
>
>  > [   13.272614] ---------------------------------
>  > [   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
>  > [   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
>  > [   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
>  > [   13.276859] {in-hardirq-W} state was registered at:
>  > [   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
>  > [   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
>  > [   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
>  > [   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
>  > [   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
>  > [   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
>  > [   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
>  > [   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
>  > [   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
>  > [   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
>  > [   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
>  > [   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
>  > [   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
>  > [   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
>  > [   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
>  > [   13.293520]   [<ffffffff>] 0xffffffff
>  > [   13.293520] irq event stamp: 253965
>  > [   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
>  > [   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
>  > [   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
>  > [   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
>  > [   13.303522]
>  > [   13.303522] other info that might help us debug this:
>  > [   13.303522] no locks held by swapper/0.
>  > [   13.303522]
>  > [   13.303522] stack backtrace:
>  > [   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
>  > [   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
>  > [   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
>  > [   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
>  > [   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
>  > [   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
>  > [   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
>  > [   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
>  > [   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
>  > [   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
>  > [   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
>  > [   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
>  > [   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
>  > [   13.383517]  [<c0387071>] rest_init+0x49/0x4b
>  > [   13.386850]  =======================
>
>  looking at current -linus I'm not directly seeing how we can get there
>  with interrupts enabled.
>
>

Hello; I have been using:
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

I used the tutorial from kernel hackers, and IBM. If this is what you're asking.
All I know is last friday I did git-pull, "2.6.25-xxxx-xxxxx" and my
system has not been able to run right,
If I new how to pull code out of my ass I would probably have fixed
this problem that I have by now, but I dont,
regards;


-- 
Justin P. Mattock

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ INFO: iconsistent lock state ]
  2008-04-25 14:47   ` Justin Mattock
@ 2008-04-25 14:59     ` Peter Zijlstra
  2008-04-25 15:39       ` [PATCH] idle (arch, acpi and apm) and lockdep Peter Zijlstra
  2008-04-25 15:45       ` [ INFO: iconsistent lock state ] Justin Mattock
  0 siblings, 2 replies; 10+ messages in thread
From: Peter Zijlstra @ 2008-04-25 14:59 UTC (permalink / raw)
  To: Justin Mattock
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, 2008-04-25 at 14:47 +0000, Justin Mattock wrote:
> On Fri, Apr 25, 2008 at 12:11 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> > On Fri, 2008-04-25 at 00:24 +0000, Justin Mattock wrote:
> >
> >  > [   13.269763] =================================
> >  > [   13.270954] [ INFO: inconsistent lock state ]
> >  > [   13.271865] 2.6.25-04569-gb69d398 #3
> >
> >  What tree is that? git checkout gb69d398 doesn't want to happen here.

Argh, s/g// so the hash is: b69d398

Could we make that -git-# ?

> >  > [   13.272614] ---------------------------------
> >  > [   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
> >  > [   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
> >  > [   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
> >  > [   13.276859] {in-hardirq-W} state was registered at:
> >  > [   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
> >  > [   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
> >  > [   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
> >  > [   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
> >  > [   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
> >  > [   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
> >  > [   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
> >  > [   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
> >  > [   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
> >  > [   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
> >  > [   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
> >  > [   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
> >  > [   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
> >  > [   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
> >  > [   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
> >  > [   13.293520]   [<ffffffff>] 0xffffffff
> >  > [   13.293520] irq event stamp: 253965
> >  > [   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
> >  > [   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
> >  > [   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
> >  > [   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
> >  > [   13.303522]
> >  > [   13.303522] other info that might help us debug this:
> >  > [   13.303522] no locks held by swapper/0.
> >  > [   13.303522]
> >  > [   13.303522] stack backtrace:
> >  > [   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
> >  > [   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
> >  > [   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
> >  > [   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
> >  > [   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
> >  > [   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
> >  > [   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
> >  > [   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
> >  > [   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74

Got it:

  acpi_idle_do_entry()
    acpi_processor_ffh_cstate_enter()
      mwait_idle_with_hints() (32 bit)
        local_irq_enable()

  sched_clock_idle_wakeup_event()


I think my recent idle patches should address this, no?

> >  > [   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
> >  > [   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
> >  > [   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
> >  > [   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
> >  > [   13.383517]  [<c0387071>] rest_init+0x49/0x4b
> >  > [   13.386850]  =======================
> >
> >  looking at current -linus I'm not directly seeing how we can get there
> >  with interrupts enabled.
> >


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] idle (arch, acpi and apm) and lockdep
  2008-04-25 14:59     ` Peter Zijlstra
@ 2008-04-25 15:39       ` Peter Zijlstra
  2008-04-25 18:08         ` Justin Mattock
  2008-04-25 15:45       ` [ INFO: iconsistent lock state ] Justin Mattock
  1 sibling, 1 reply; 10+ messages in thread
From: Peter Zijlstra @ 2008-04-25 15:39 UTC (permalink / raw)
  To: Justin Mattock
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, 2008-04-25 at 16:59 +0200, Peter Zijlstra wrote:
> On Fri, 2008-04-25 at 14:47 +0000, Justin Mattock wrote:
> > On Fri, Apr 25, 2008 at 12:11 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> > > On Fri, 2008-04-25 at 00:24 +0000, Justin Mattock wrote:
> > >
> > >  > [   13.269763] =================================
> > >  > [   13.270954] [ INFO: inconsistent lock state ]
> > >  > [   13.271865] 2.6.25-04569-gb69d398 #3
> > >  > [   13.272614] ---------------------------------
> > >  > [   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
> > >  > [   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
> > >  > [   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
> > >  > [   13.276859] {in-hardirq-W} state was registered at:
> > >  > [   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
> > >  > [   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
> > >  > [   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
> > >  > [   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
> > >  > [   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
> > >  > [   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
> > >  > [   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
> > >  > [   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
> > >  > [   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
> > >  > [   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
> > >  > [   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
> > >  > [   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
> > >  > [   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
> > >  > [   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
> > >  > [   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
> > >  > [   13.293520]   [<ffffffff>] 0xffffffff
> > >  > [   13.293520] irq event stamp: 253965
> > >  > [   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
> > >  > [   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
> > >  > [   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
> > >  > [   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
> > >  > [   13.303522]
> > >  > [   13.303522] other info that might help us debug this:
> > >  > [   13.303522] no locks held by swapper/0.
> > >  > [   13.303522]
> > >  > [   13.303522] stack backtrace:
> > >  > [   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
> > >  > [   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
> > >  > [   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
> > >  > [   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
> > >  > [   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
> > >  > [   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
> > >  > [   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
> > >  > [   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
> > >  > [   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
> 
> Got it:
> 
>   acpi_idle_do_entry()
>     acpi_processor_ffh_cstate_enter()
>       mwait_idle_with_hints() (32 bit)
>         local_irq_enable()
> 
>   sched_clock_idle_wakeup_event()
> 
> 
> I think my recent idle patches should address this, no?
> 
> > >  > [   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
> > >  > [   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
> > >  > [   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
> > >  > [   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
> > >  > [   13.383517]  [<c0387071>] rest_init+0x49/0x4b
> > >  > [   13.386850]  =======================

(I just found out I failed to copy LKML on the last discussion about
these patches)

---
Subject: [PATCH] idle (arch,acpi and apm) and lockdep
From: Peter Zijlstra <peterz@infradead.org>

OK, so 25-mm1 gave a lockdep error which made me look into this.

The first thing that I noticed was the horrible mess; the second thing I
saw was hacks like: 71e93d15612c61c2e26a169567becf088e71b8ff

The problem is that arch idle routines are somewhat inconsitent with
their IRQ state handling and instead of fixing _that_, we go paper over
the problem.

So the thing I've tried to do is set a standard for idle routines and
fix them all up to adhere to that. So the rules are:

  idle routines are entered with IRQs disabled
  idle routines will exit with IRQs enabled

Nearly all already did this in one form or another.

Merge the 32 and 64 bit bits so they no longer have different bugs.

As for the actual lockdep warning; __sti_mwait() did a plainly un-annotated
irq-enable.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
 arch/x86/kernel/apm_32.c      |    3 +
 arch/x86/kernel/process.c     |  117 +++++++++++++++++++++++++++++++++++++++
 arch/x86/kernel/process_32.c  |  118 +---------------------------------------
 arch/x86/kernel/process_64.c  |  123 +-----------------------------------------
 drivers/acpi/processor_idle.c |   19 +++---
 include/asm-x86/processor.h   |    1 
 6 files changed, 137 insertions(+), 244 deletions(-)

Index: linux-2.6-2/arch/x86/kernel/process_32.c
===================================================================
--- linux-2.6-2.orig/arch/x86/kernel/process_32.c
+++ linux-2.6-2/arch/x86/kernel/process_32.c
@@ -111,12 +111,10 @@ void default_idle(void)
 		 */
 		smp_mb();
 
-		local_irq_disable();
-		if (!need_resched()) {
+		if (!need_resched())
 			safe_halt();	/* enables interrupts racelessly */
-			local_irq_disable();
-		}
-		local_irq_enable();
+		else
+			local_irq_enable();
 		current_thread_info()->status |= TS_POLLING;
 	} else {
 		local_irq_enable();
@@ -128,17 +126,6 @@ void default_idle(void)
 EXPORT_SYMBOL(default_idle);
 #endif
 
-/*
- * On SMP it's slightly faster (but much more power-consuming!)
- * to poll the ->work.need_resched flag instead of waiting for the
- * cross-CPU IPI to arrive. Use this option with caution.
- */
-static void poll_idle(void)
-{
-	local_irq_enable();
-	cpu_relax();
-}
-
 #ifdef CONFIG_HOTPLUG_CPU
 #include <asm/nmi.h>
 /* We don't actually take CPU down, just spin without interrupts. */
@@ -196,6 +183,7 @@ void cpu_idle(void)
 			if (cpu_is_offline(cpu))
 				play_dead();
 
+			local_irq_disable();
 			__get_cpu_var(irq_stat).idle_timestamp = jiffies;
 			idle();
 		}
@@ -206,104 +194,6 @@ void cpu_idle(void)
 	}
 }
 
-static void do_nothing(void *unused)
-{
-}
-
-/*
- * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
- * pm_idle and update to new pm_idle value. Required while changing pm_idle
- * handler on SMP systems.
- *
- * Caller must have changed pm_idle to the new value before the call. Old
- * pm_idle value will not be used by any CPU after the return of this function.
- */
-void cpu_idle_wait(void)
-{
-	smp_mb();
-	/* kick all the CPUs so that they exit out of pm_idle */
-	smp_call_function(do_nothing, NULL, 0, 1);
-}
-EXPORT_SYMBOL_GPL(cpu_idle_wait);
-
-/*
- * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
- * which can obviate IPI to trigger checking of need_resched.
- * We execute MONITOR against need_resched and enter optimized wait state
- * through MWAIT. Whenever someone changes need_resched, we would be woken
- * up from MWAIT (without an IPI).
- *
- * New with Core Duo processors, MWAIT can take some hints based on CPU
- * capability.
- */
-void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
-{
-	if (!need_resched()) {
-		__monitor((void *)&current_thread_info()->flags, 0, 0);
-		smp_mb();
-		if (!need_resched())
-			__sti_mwait(ax, cx);
-		else
-			local_irq_enable();
-	} else
-		local_irq_enable();
-}
-
-/* Default MONITOR/MWAIT with no hints, used for default C1 state */
-static void mwait_idle(void)
-{
-	local_irq_enable();
-	mwait_idle_with_hints(0, 0);
-}
-
-static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
-{
-	if (force_mwait)
-		return 1;
-	/* Any C1 states supported? */
-	return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
-}
-
-void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
-{
-	static int selected;
-
-	if (selected)
-		return;
-#ifdef CONFIG_X86_SMP
-	if (pm_idle == poll_idle && smp_num_siblings > 1) {
-		printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
-			" performance may degrade.\n");
-	}
-#endif
-	if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
-		/*
-		 * Skip, if setup has overridden idle.
-		 * One CPU supports mwait => All CPUs supports mwait
-		 */
-		if (!pm_idle) {
-			printk(KERN_INFO "using mwait in idle threads.\n");
-			pm_idle = mwait_idle;
-		}
-	}
-	selected = 1;
-}
-
-static int __init idle_setup(char *str)
-{
-	if (!strcmp(str, "poll")) {
-		printk("using polling idle threads.\n");
-		pm_idle = poll_idle;
-	} else if (!strcmp(str, "mwait"))
-		force_mwait = 1;
-	else
-		return -1;
-
-	boot_option_idle_override = 1;
-	return 0;
-}
-early_param("idle", idle_setup);
-
 void __show_registers(struct pt_regs *regs, int all)
 {
 	unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;
Index: linux-2.6-2/arch/x86/kernel/process_64.c
===================================================================
--- linux-2.6-2.orig/arch/x86/kernel/process_64.c
+++ linux-2.6-2/arch/x86/kernel/process_64.c
@@ -106,26 +106,13 @@ void default_idle(void)
 	 * test NEED_RESCHED:
 	 */
 	smp_mb();
-	local_irq_disable();
-	if (!need_resched()) {
+	if (!need_resched())
 		safe_halt();	/* enables interrupts racelessly */
-		local_irq_disable();
-	}
-	local_irq_enable();
+	else
+		local_irq_enable();
 	current_thread_info()->status |= TS_POLLING;
 }
 
-/*
- * On SMP it's slightly faster (but much more power-consuming!)
- * to poll the ->need_resched flag instead of waiting for the
- * cross-CPU IPI to arrive. Use this option with caution.
- */
-static void poll_idle(void)
-{
-	local_irq_enable();
-	cpu_relax();
-}
-
 #ifdef CONFIG_HOTPLUG_CPU
 DECLARE_PER_CPU(int, cpu_state);
 
@@ -192,110 +179,6 @@ void cpu_idle(void)
 	}
 }
 
-static void do_nothing(void *unused)
-{
-}
-
-/*
- * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
- * pm_idle and update to new pm_idle value. Required while changing pm_idle
- * handler on SMP systems.
- *
- * Caller must have changed pm_idle to the new value before the call. Old
- * pm_idle value will not be used by any CPU after the return of this function.
- */
-void cpu_idle_wait(void)
-{
-	smp_mb();
-	/* kick all the CPUs so that they exit out of pm_idle */
-	smp_call_function(do_nothing, NULL, 0, 1);
-}
-EXPORT_SYMBOL_GPL(cpu_idle_wait);
-
-/*
- * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
- * which can obviate IPI to trigger checking of need_resched.
- * We execute MONITOR against need_resched and enter optimized wait state
- * through MWAIT. Whenever someone changes need_resched, we would be woken
- * up from MWAIT (without an IPI).
- *
- * New with Core Duo processors, MWAIT can take some hints based on CPU
- * capability.
- */
-void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
-{
-	if (!need_resched()) {
-		__monitor((void *)&current_thread_info()->flags, 0, 0);
-		smp_mb();
-		if (!need_resched())
-			__mwait(ax, cx);
-	}
-}
-
-/* Default MONITOR/MWAIT with no hints, used for default C1 state */
-static void mwait_idle(void)
-{
-	if (!need_resched()) {
-		__monitor((void *)&current_thread_info()->flags, 0, 0);
-		smp_mb();
-		if (!need_resched())
-			__sti_mwait(0, 0);
-		else
-			local_irq_enable();
-	} else {
-		local_irq_enable();
-	}
-}
-
-
-static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
-{
-	if (force_mwait)
-		return 1;
-	/* Any C1 states supported? */
-	return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
-}
-
-void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
-{
-	static int selected;
-
-	if (selected)
-		return;
-#ifdef CONFIG_X86_SMP
-	if (pm_idle == poll_idle && smp_num_siblings > 1) {
-		printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
-			" performance may degrade.\n");
-	}
-#endif
-	if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
-		/*
-		 * Skip, if setup has overridden idle.
-		 * One CPU supports mwait => All CPUs supports mwait
-		 */
-		if (!pm_idle) {
-			printk(KERN_INFO "using mwait in idle threads.\n");
-			pm_idle = mwait_idle;
-		}
-	}
-	selected = 1;
-}
-
-static int __init idle_setup(char *str)
-{
-	if (!strcmp(str, "poll")) {
-		printk("using polling idle threads.\n");
-		pm_idle = poll_idle;
-	} else if (!strcmp(str, "mwait"))
-		force_mwait = 1;
-	else
-		return -1;
-
-	boot_option_idle_override = 1;
-	return 0;
-}
-early_param("idle", idle_setup);
-
 /* Prints also some state that isn't saved in the pt_regs */
 void __show_regs(struct pt_regs * regs)
 {
Index: linux-2.6-2/drivers/acpi/processor_idle.c
===================================================================
--- linux-2.6-2.orig/drivers/acpi/processor_idle.c
+++ linux-2.6-2/drivers/acpi/processor_idle.c
@@ -418,13 +418,12 @@ static void acpi_processor_idle(void)
 
 	cx = pr->power.state;
 	if (!cx || acpi_idle_suspend) {
-		if (pm_idle_save)
-			pm_idle_save();
-		else
+		if (pm_idle_save) {
+			pm_idle_save(); /* enables IRQs */
+		} else {
 			acpi_safe_halt();
-
-		if (irqs_disabled())
 			local_irq_enable();
+		}
 
 		return;
 	}
@@ -520,10 +519,12 @@ static void acpi_processor_idle(void)
 		 * Use the appropriate idle routine, the one that would
 		 * be used without acpi C-states.
 		 */
-		if (pm_idle_save)
-			pm_idle_save();
-		else
+		if (pm_idle_save) {
+			pm_idle_save(); /* enables IRQs */
+		} else {
 			acpi_safe_halt();
+			local_irq_enable();
+		}
 
 		/*
 		 * TBD: Can't get time duration while in C1, as resumes
@@ -534,8 +535,6 @@ static void acpi_processor_idle(void)
 		 *       skew otherwise.
 		 */
 		sleep_ticks = 0xFFFFFFFF;
-		if (irqs_disabled())
-			local_irq_enable();
 
 		break;
 
Index: linux-2.6-2/arch/x86/kernel/apm_32.c
===================================================================
--- linux-2.6-2.orig/arch/x86/kernel/apm_32.c
+++ linux-2.6-2/arch/x86/kernel/apm_32.c
@@ -904,6 +904,7 @@ recalc:
 			original_pm_idle();
 		else
 			default_idle();
+		local_irq_disable();
 		jiffies_since_last_check = jiffies - last_jiffies;
 		if (jiffies_since_last_check > idle_period)
 			goto recalc;
@@ -911,6 +912,8 @@ recalc:
 
 	if (apm_idle_done)
 		apm_do_busy();
+
+	local_irq_enable();
 }
 
 /**
Index: linux-2.6-2/include/asm-x86/processor.h
===================================================================
--- linux-2.6-2.orig/include/asm-x86/processor.h
+++ linux-2.6-2/include/asm-x86/processor.h
@@ -723,6 +723,7 @@ static inline void __mwait(unsigned long
 
 static inline void __sti_mwait(unsigned long eax, unsigned long ecx)
 {
+	trace_hardirqs_on();
 	/* "mwait %eax, %ecx;" */
 	asm volatile("sti; .byte 0x0f, 0x01, 0xc9;"
 		     :: "a" (eax), "c" (ecx));
Index: linux-2.6-2/arch/x86/kernel/process.c
===================================================================
--- linux-2.6-2.orig/arch/x86/kernel/process.c
+++ linux-2.6-2/arch/x86/kernel/process.c
@@ -4,6 +4,8 @@
 #include <linux/smp.h>
 #include <linux/slab.h>
 #include <linux/sched.h>
+#include <linux/module.h>
+#include <linux/pm.h>
 
 struct kmem_cache *task_xstate_cachep;
 
@@ -42,3 +44,118 @@ void arch_task_cache_init(void)
 				  __alignof__(union thread_xstate),
 				  SLAB_PANIC, NULL);
 }
+
+static void do_nothing(void *unused)
+{
+}
+
+/*
+ * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
+ * pm_idle and update to new pm_idle value. Required while changing pm_idle
+ * handler on SMP systems.
+ *
+ * Caller must have changed pm_idle to the new value before the call. Old
+ * pm_idle value will not be used by any CPU after the return of this function.
+ */
+void cpu_idle_wait(void)
+{
+	smp_mb();
+	/* kick all the CPUs so that they exit out of pm_idle */
+	smp_call_function(do_nothing, NULL, 0, 1);
+}
+EXPORT_SYMBOL_GPL(cpu_idle_wait);
+
+/*
+ * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
+ * which can obviate IPI to trigger checking of need_resched.
+ * We execute MONITOR against need_resched and enter optimized wait state
+ * through MWAIT. Whenever someone changes need_resched, we would be woken
+ * up from MWAIT (without an IPI).
+ *
+ * New with Core Duo processors, MWAIT can take some hints based on CPU
+ * capability.
+ */
+void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
+{
+	if (!need_resched()) {
+		__monitor((void *)&current_thread_info()->flags, 0, 0);
+		smp_mb();
+		if (!need_resched())
+			__mwait(ax, cx);
+	}
+}
+
+/* Default MONITOR/MWAIT with no hints, used for default C1 state */
+static void mwait_idle(void)
+{
+	if (!need_resched()) {
+		__monitor((void *)&current_thread_info()->flags, 0, 0);
+		smp_mb();
+		if (!need_resched())
+			__sti_mwait(0, 0);
+		else
+			local_irq_enable();
+	} else
+		local_irq_enable();
+}
+
+
+static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
+{
+	if (force_mwait)
+		return 1;
+	/* Any C1 states supported? */
+	return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
+}
+
+/*
+ * On SMP it's slightly faster (but much more power-consuming!)
+ * to poll the ->work.need_resched flag instead of waiting for the
+ * cross-CPU IPI to arrive. Use this option with caution.
+ */
+static void poll_idle(void)
+{
+	local_irq_enable();
+	cpu_relax();
+}
+
+void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
+{
+	static int selected;
+
+	if (selected)
+		return;
+#ifdef CONFIG_X86_SMP
+	if (pm_idle == poll_idle && smp_num_siblings > 1) {
+		printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
+			" performance may degrade.\n");
+	}
+#endif
+	if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
+		/*
+		 * Skip, if setup has overridden idle.
+		 * One CPU supports mwait => All CPUs supports mwait
+		 */
+		if (!pm_idle) {
+			printk(KERN_INFO "using mwait in idle threads.\n");
+			pm_idle = mwait_idle;
+		}
+	}
+	selected = 1;
+}
+
+static int __init idle_setup(char *str)
+{
+	if (!strcmp(str, "poll")) {
+		printk("using polling idle threads.\n");
+		pm_idle = poll_idle;
+	} else if (!strcmp(str, "mwait"))
+		force_mwait = 1;
+	else
+		return -1;
+
+	boot_option_idle_override = 1;
+	return 0;
+}
+early_param("idle", idle_setup);
+



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ INFO: iconsistent lock state ]
  2008-04-25 14:59     ` Peter Zijlstra
  2008-04-25 15:39       ` [PATCH] idle (arch, acpi and apm) and lockdep Peter Zijlstra
@ 2008-04-25 15:45       ` Justin Mattock
  1 sibling, 0 replies; 10+ messages in thread
From: Justin Mattock @ 2008-04-25 15:45 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, Apr 25, 2008 at 2:59 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Fri, 2008-04-25 at 14:47 +0000, Justin Mattock wrote:
>  > On Fri, Apr 25, 2008 at 12:11 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
>  > > On Fri, 2008-04-25 at 00:24 +0000, Justin Mattock wrote:
>  > >
>  > >  > [   13.269763] =================================
>  > >  > [   13.270954] [ INFO: inconsistent lock state ]
>  > >  > [   13.271865] 2.6.25-04569-gb69d398 #3
>  > >
>  > >  What tree is that? git checkout gb69d398 doesn't want to happen here.
>
>  Argh, s/g// so the hash is: b69d398
>
>  Could we make that -git-# ?
>
>
>
>  > >  > [   13.272614] ---------------------------------
>  > >  > [   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
>  > >  > [   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
>  > >  > [   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
>  > >  > [   13.276859] {in-hardirq-W} state was registered at:
>  > >  > [   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
>  > >  > [   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
>  > >  > [   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
>  > >  > [   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
>  > >  > [   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
>  > >  > [   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
>  > >  > [   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
>  > >  > [   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
>  > >  > [   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
>  > >  > [   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
>  > >  > [   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
>  > >  > [   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
>  > >  > [   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
>  > >  > [   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
>  > >  > [   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
>  > >  > [   13.293520]   [<ffffffff>] 0xffffffff
>  > >  > [   13.293520] irq event stamp: 253965
>  > >  > [   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
>  > >  > [   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
>  > >  > [   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
>  > >  > [   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
>  > >  > [   13.303522]
>  > >  > [   13.303522] other info that might help us debug this:
>  > >  > [   13.303522] no locks held by swapper/0.
>  > >  > [   13.303522]
>  > >  > [   13.303522] stack backtrace:
>  > >  > [   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
>  > >  > [   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
>  > >  > [   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
>  > >  > [   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
>  > >  > [   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
>  > >  > [   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
>  > >  > [   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
>  > >  > [   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
>  > >  > [   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
>
>  Got it:
>
>   acpi_idle_do_entry()
>     acpi_processor_ffh_cstate_enter()
>       mwait_idle_with_hints() (32 bit)
>         local_irq_enable()
>
>   sched_clock_idle_wakeup_event()
>
>
>  I think my recent idle patches should address this, no?

>From what I'm experiencing over here, as soon as I start the system,if
I turn on glxgears from the terminal, the system wont freeze(until
after a while when powersave starts to kick in), but If I
start the system and let it sit there the system will freeze. At this
point since I dont know where to look in the kernel, where this
problem is
at I'm game to try anything to see if it stops the freezing from happening.


>
>
>
>  > >  > [   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
>  > >  > [   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
>  > >  > [   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
>  > >  > [   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
>  > >  > [   13.383517]  [<c0387071>] rest_init+0x49/0x4b
>  > >  > [   13.386850]  =======================
>  > >
>  > >  looking at current -linus I'm not directly seeing how we can get there
>  > >  with interrupts enabled.
>  > >
>
>

With -git-# should I put that at the end of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
like this linux-2.6-git-# or linux-2.6.-git-#
regards;

-- 
Justin P. Mattock

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] idle (arch, acpi and apm) and lockdep
  2008-04-25 15:39       ` [PATCH] idle (arch, acpi and apm) and lockdep Peter Zijlstra
@ 2008-04-25 18:08         ` Justin Mattock
  2008-04-25 18:19           ` Peter Zijlstra
  0 siblings, 1 reply; 10+ messages in thread
From: Justin Mattock @ 2008-04-25 18:08 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

O.K. I applied this patch, below are the results:

On Fri, Apr 25, 2008 at 3:39 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, 2008-04-25 at 16:59 +0200, Peter Zijlstra wrote:
>  > On Fri, 2008-04-25 at 14:47 +0000, Justin Mattock wrote:
>  > > On Fri, Apr 25, 2008 at 12:11 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
>  > > > On Fri, 2008-04-25 at 00:24 +0000, Justin Mattock wrote:
>  > > >
>  > > >  > [   13.269763] =================================
>  > > >  > [   13.270954] [ INFO: inconsistent lock state ]
>  > > >  > [   13.271865] 2.6.25-04569-gb69d398 #3
>  > > >  > [   13.272614] ---------------------------------
>  > > >  > [   13.273521] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
>  > > >  > [   13.274745] swapper/0 [HC0[0]:SC0[0]:HE1:SE1] takes:
>  > > >  > [   13.275787]  (&rq->rq_lock_key){++..}, at: [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
>  > > >  > [   13.276859] {in-hardirq-W} state was registered at:
>  > > >  > [   13.276859]   [<c01423d8>] __lock_acquire+0x419/0xb70
>  > > >  > [   13.276859]   [<c0142bae>] lock_acquire+0x7f/0xa6
>  > > >  > [   13.280188]   [<c0394132>] _spin_lock+0x1c/0x49
>  > > >  > [   13.280188]   [<c0121c44>] scheduler_tick+0x43/0x1bd
>  > > >  > [   13.280188]   [<c012d99f>] update_process_times+0x3d/0x49
>  > > >  > [   13.283524]   [<c013daf6>] tick_periodic+0x66/0x72
>  > > >  > [   13.283524]   [<c013db1b>] tick_handle_periodic+0x19/0x6a
>  > > >  > [   13.283524]   [<c0105a87>] timer_interrupt+0x47/0x4e
>  > > >  > [   13.286855]   [<c015cf64>] handle_IRQ_event+0x1a/0x4f
>  > > >  > [   13.286855]   [<c015e3e9>] handle_level_irq+0x7f/0xca
>  > > >  > [   13.286855]   [<c0105a27>] do_IRQ+0x71/0x8a
>  > > >  > [   13.290190]   [<c01043fe>] common_interrupt+0x2e/0x34
>  > > >  > [   13.290190]   [<c038bd6f>] calibrate_delay+0x8f/0x276
>  > > >  > [   13.290190]   [<c04f0883>] start_kernel+0x27c/0x2f8
>  > > >  > [   13.293520]   [<c04f0008>] __init_begin+0x8/0xa
>  > > >  > [   13.293520]   [<ffffffff>] 0xffffffff
>  > > >  > [   13.293520] irq event stamp: 253965
>  > > >  > [   13.296856] hardirqs last  enabled at (253965): [<c0108069>] native_sched_clock+0xe7/0xff
>  > > >  > [   13.296856] hardirqs last disabled at (253964): [<c0107fef>] native_sched_clock+0x6d/0xff
>  > > >  > [   13.300190] softirqs last  enabled at (253958): [<c0129cea>] __do_softirq+0xf9/0xff
>  > > >  > [   13.300190] softirqs last disabled at (253953): [<c0129d3d>] do_softirq+0x4d/0x79
>  > > >  > [   13.303522]
>  > > >  > [   13.303522] other info that might help us debug this:
>  > > >  > [   13.303522] no locks held by swapper/0.
>  > > >  > [   13.303522]
>  > > >  > [   13.303522] stack backtrace:
>  > > >  > [   13.306852] Pid: 0, comm: swapper Not tainted 2.6.25-04569-gb69d398 #3
>  > > >  > [   13.336851]  [<c01409f9>] print_usage_bug+0x106/0x113
>  > > >  > [   13.340185]  [<c0141823>] mark_lock+0x1ed/0x3a5
>  > > >  > [   13.343519]  [<c014244d>] __lock_acquire+0x48e/0xb70
>  > > >  > [   13.346852]  [<c0142bae>] lock_acquire+0x7f/0xa6
>  > > >  > [   13.350185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
>  > > >  > [   13.353519]  [<c0394132>] _spin_lock+0x1c/0x49
>  > > >  > [   13.360185]  [<c01208e9>] ? sched_clock_idle_wakeup_event+0x43/0x74
>  > > >  > [   13.363518]  [<c01208e9>] sched_clock_idle_wakeup_event+0x43/0x74
>  >
>  > Got it:
>  >
>  >   acpi_idle_do_entry()
>  >     acpi_processor_ffh_cstate_enter()
>  >       mwait_idle_with_hints() (32 bit)
>  >         local_irq_enable()
>  >
>  >   sched_clock_idle_wakeup_event()
>  >
>  >
>  > I think my recent idle patches should address this, no?
>  >
>  > > >  > [   13.366851]  [<f883919b>] acpi_idle_enter_bm+0x2b3/0x333 [processor]
>  > > >  > [   13.370184]  [<c02e5ec1>] cpuidle_idle_call+0x63/0x92
>  > > >  > [   13.373517]  [<c02e5e5e>] ? cpuidle_idle_call+0x0/0x92
>  > > >  > [   13.380184]  [<c010257d>] cpu_idle+0xb6/0xd6
>  > > >  > [   13.383517]  [<c0387071>] rest_init+0x49/0x4b
>  > > >  > [   13.386850]  =======================
>
>  (I just found out I failed to copy LKML on the last discussion about
>  these patches)
>
>  ---
>  Subject: [PATCH] idle (arch,acpi and apm) and lockdep
>  From: Peter Zijlstra <peterz@infradead.org>
>
>  OK, so 25-mm1 gave a lockdep error which made me look into this.
>
>  The first thing that I noticed was the horrible mess; the second thing I
>  saw was hacks like: 71e93d15612c61c2e26a169567becf088e71b8ff
>
>  The problem is that arch idle routines are somewhat inconsitent with
>  their IRQ state handling and instead of fixing _that_, we go paper over
>  the problem.
>
>  So the thing I've tried to do is set a standard for idle routines and
>  fix them all up to adhere to that. So the rules are:
>
>   idle routines are entered with IRQs disabled
>   idle routines will exit with IRQs enabled
>
>  Nearly all already did this in one form or another.
>
>  Merge the 32 and 64 bit bits so they no longer have different bugs.
>
>  As for the actual lockdep warning; __sti_mwait() did a plainly un-annotated
>  irq-enable.
>
>  Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
>  ---
>   arch/x86/kernel/apm_32.c      |    3 +
>   arch/x86/kernel/process.c     |  117 +++++++++++++++++++++++++++++++++++++++
>   arch/x86/kernel/process_32.c  |  118 +---------------------------------------
>   arch/x86/kernel/process_64.c  |  123 +-----------------------------------------
>   drivers/acpi/processor_idle.c |   19 +++---
>   include/asm-x86/processor.h   |    1
>   6 files changed, 137 insertions(+), 244 deletions(-)
>
>  Index: linux-2.6-2/arch/x86/kernel/process_32.c
>  ===================================================================
>  --- linux-2.6-2.orig/arch/x86/kernel/process_32.c
>  +++ linux-2.6-2/arch/x86/kernel/process_32.c
>  @@ -111,12 +111,10 @@ void default_idle(void)
>                  */
>                 smp_mb();
>
>  -               local_irq_disable();
>  -               if (!need_resched()) {
>  +               if (!need_resched())
>                         safe_halt();    /* enables interrupts racelessly */
>  -                       local_irq_disable();
>  -               }
>  -               local_irq_enable();
>  +               else
>  +                       local_irq_enable();
>                 current_thread_info()->status |= TS_POLLING;
>         } else {
>                 local_irq_enable();
>  @@ -128,17 +126,6 @@ void default_idle(void)
>   EXPORT_SYMBOL(default_idle);
>   #endif
>
>  -/*
>  - * On SMP it's slightly faster (but much more power-consuming!)
>  - * to poll the ->work.need_resched flag instead of waiting for the
>  - * cross-CPU IPI to arrive. Use this option with caution.
>  - */
>  -static void poll_idle(void)
>  -{
>  -       local_irq_enable();
>  -       cpu_relax();
>  -}
>  -
>   #ifdef CONFIG_HOTPLUG_CPU
>   #include <asm/nmi.h>
>   /* We don't actually take CPU down, just spin without interrupts. */
>  @@ -196,6 +183,7 @@ void cpu_idle(void)
>                         if (cpu_is_offline(cpu))
>                                 play_dead();
>
>  +                       local_irq_disable();
>                         __get_cpu_var(irq_stat).idle_timestamp = jiffies;
>                         idle();
>                 }
>  @@ -206,104 +194,6 @@ void cpu_idle(void)
>         }
>   }
>
>  -static void do_nothing(void *unused)
>  -{
>  -}
>  -
>  -/*
>  - * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
>  - * pm_idle and update to new pm_idle value. Required while changing pm_idle
>  - * handler on SMP systems.
>  - *
>  - * Caller must have changed pm_idle to the new value before the call. Old
>  - * pm_idle value will not be used by any CPU after the return of this function.
>  - */
>  -void cpu_idle_wait(void)
>  -{
>  -       smp_mb();
>  -       /* kick all the CPUs so that they exit out of pm_idle */
>  -       smp_call_function(do_nothing, NULL, 0, 1);
>  -}
>  -EXPORT_SYMBOL_GPL(cpu_idle_wait);
>  -
>  -/*
>  - * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
>  - * which can obviate IPI to trigger checking of need_resched.
>  - * We execute MONITOR against need_resched and enter optimized wait state
>  - * through MWAIT. Whenever someone changes need_resched, we would be woken
>  - * up from MWAIT (without an IPI).
>  - *
>  - * New with Core Duo processors, MWAIT can take some hints based on CPU
>  - * capability.
>  - */
>  -void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
>  -{
>  -       if (!need_resched()) {
>  -               __monitor((void *)&current_thread_info()->flags, 0, 0);
>  -               smp_mb();
>  -               if (!need_resched())
>  -                       __sti_mwait(ax, cx);
>  -               else
>  -                       local_irq_enable();
>  -       } else
>  -               local_irq_enable();
>  -}
>  -
>  -/* Default MONITOR/MWAIT with no hints, used for default C1 state */
>  -static void mwait_idle(void)
>  -{
>  -       local_irq_enable();
>  -       mwait_idle_with_hints(0, 0);
>  -}
>  -
>  -static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
>  -{
>  -       if (force_mwait)
>  -               return 1;
>  -       /* Any C1 states supported? */
>  -       return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
>  -}
>  -
>  -void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
>  -{
>  -       static int selected;
>  -
>  -       if (selected)
>  -               return;
>  -#ifdef CONFIG_X86_SMP
>  -       if (pm_idle == poll_idle && smp_num_siblings > 1) {
>  -               printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
>  -                       " performance may degrade.\n");
>  -       }
>  -#endif
>  -       if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
>  -               /*
>  -                * Skip, if setup has overridden idle.
>  -                * One CPU supports mwait => All CPUs supports mwait
>  -                */
>  -               if (!pm_idle) {
>  -                       printk(KERN_INFO "using mwait in idle threads.\n");
>  -                       pm_idle = mwait_idle;
>  -               }
>  -       }
>  -       selected = 1;
>  -}
>  -
>  -static int __init idle_setup(char *str)
>  -{
>  -       if (!strcmp(str, "poll")) {
>  -               printk("using polling idle threads.\n");
>  -               pm_idle = poll_idle;
>  -       } else if (!strcmp(str, "mwait"))
>  -               force_mwait = 1;
>  -       else
>  -               return -1;
>  -
>  -       boot_option_idle_override = 1;
>  -       return 0;
>  -}
>  -early_param("idle", idle_setup);
>  -
>   void __show_registers(struct pt_regs *regs, int all)
>   {
>         unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;
>  Index: linux-2.6-2/arch/x86/kernel/process_64.c
>  ===================================================================
>  --- linux-2.6-2.orig/arch/x86/kernel/process_64.c
>  +++ linux-2.6-2/arch/x86/kernel/process_64.c
>  @@ -106,26 +106,13 @@ void default_idle(void)
>          * test NEED_RESCHED:
>          */
>         smp_mb();
>  -       local_irq_disable();
>  -       if (!need_resched()) {
>  +       if (!need_resched())
>                 safe_halt();    /* enables interrupts racelessly */
>  -               local_irq_disable();
>  -       }
>  -       local_irq_enable();
>  +       else
>  +               local_irq_enable();
>         current_thread_info()->status |= TS_POLLING;
>   }
>
>  -/*
>  - * On SMP it's slightly faster (but much more power-consuming!)
>  - * to poll the ->need_resched flag instead of waiting for the
>  - * cross-CPU IPI to arrive. Use this option with caution.
>  - */
>  -static void poll_idle(void)
>  -{
>  -       local_irq_enable();
>  -       cpu_relax();
>  -}
>  -
>   #ifdef CONFIG_HOTPLUG_CPU
>   DECLARE_PER_CPU(int, cpu_state);
>
>  @@ -192,110 +179,6 @@ void cpu_idle(void)
>         }
>   }
>
>  -static void do_nothing(void *unused)
>  -{
>  -}
>  -
>  -/*
>  - * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
>  - * pm_idle and update to new pm_idle value. Required while changing pm_idle
>  - * handler on SMP systems.
>  - *
>  - * Caller must have changed pm_idle to the new value before the call. Old
>  - * pm_idle value will not be used by any CPU after the return of this function.
>  - */
>  -void cpu_idle_wait(void)
>  -{
>  -       smp_mb();
>  -       /* kick all the CPUs so that they exit out of pm_idle */
>  -       smp_call_function(do_nothing, NULL, 0, 1);
>  -}
>  -EXPORT_SYMBOL_GPL(cpu_idle_wait);
>  -
>  -/*
>  - * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
>  - * which can obviate IPI to trigger checking of need_resched.
>  - * We execute MONITOR against need_resched and enter optimized wait state
>  - * through MWAIT. Whenever someone changes need_resched, we would be woken
>  - * up from MWAIT (without an IPI).
>  - *
>  - * New with Core Duo processors, MWAIT can take some hints based on CPU
>  - * capability.
>  - */
>  -void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
>  -{
>  -       if (!need_resched()) {
>  -               __monitor((void *)&current_thread_info()->flags, 0, 0);
>  -               smp_mb();
>  -               if (!need_resched())
>  -                       __mwait(ax, cx);
>  -       }
>  -}
>  -
>  -/* Default MONITOR/MWAIT with no hints, used for default C1 state */
>  -static void mwait_idle(void)
>  -{
>  -       if (!need_resched()) {
>  -               __monitor((void *)&current_thread_info()->flags, 0, 0);
>  -               smp_mb();
>  -               if (!need_resched())
>  -                       __sti_mwait(0, 0);
>  -               else
>  -                       local_irq_enable();
>  -       } else {
>  -               local_irq_enable();
>  -       }
>  -}
>  -
>  -
>  -static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
>  -{
>  -       if (force_mwait)
>  -               return 1;
>  -       /* Any C1 states supported? */
>  -       return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
>  -}
>  -
>  -void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
>  -{
>  -       static int selected;
>  -
>  -       if (selected)
>  -               return;
>  -#ifdef CONFIG_X86_SMP
>  -       if (pm_idle == poll_idle && smp_num_siblings > 1) {
>  -               printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
>  -                       " performance may degrade.\n");
>  -       }
>  -#endif
>  -       if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
>  -               /*
>  -                * Skip, if setup has overridden idle.
>  -                * One CPU supports mwait => All CPUs supports mwait
>  -                */
>  -               if (!pm_idle) {
>  -                       printk(KERN_INFO "using mwait in idle threads.\n");
>  -                       pm_idle = mwait_idle;
>  -               }
>  -       }
>  -       selected = 1;
>  -}
>  -
>  -static int __init idle_setup(char *str)
>  -{
>  -       if (!strcmp(str, "poll")) {
>  -               printk("using polling idle threads.\n");
>  -               pm_idle = poll_idle;
>  -       } else if (!strcmp(str, "mwait"))
>  -               force_mwait = 1;
>  -       else
>  -               return -1;
>  -
>  -       boot_option_idle_override = 1;
>  -       return 0;
>  -}
>  -early_param("idle", idle_setup);
>  -
>   /* Prints also some state that isn't saved in the pt_regs */
>   void __show_regs(struct pt_regs * regs)
>   {
>  Index: linux-2.6-2/drivers/acpi/processor_idle.c
>  ===================================================================
>  --- linux-2.6-2.orig/drivers/acpi/processor_idle.c
>  +++ linux-2.6-2/drivers/acpi/processor_idle.c
>  @@ -418,13 +418,12 @@ static void acpi_processor_idle(void)
>
>         cx = pr->power.state;
>         if (!cx || acpi_idle_suspend) {
>  -               if (pm_idle_save)
>  -                       pm_idle_save();
>  -               else
>  +               if (pm_idle_save) {
>  +                       pm_idle_save(); /* enables IRQs */
>  +               } else {
>                         acpi_safe_halt();
>  -
>  -               if (irqs_disabled())
>                         local_irq_enable();
>  +               }
>
>                 return;
>         }
>  @@ -520,10 +519,12 @@ static void acpi_processor_idle(void)
>                  * Use the appropriate idle routine, the one that would
>                  * be used without acpi C-states.
>                  */
>  -               if (pm_idle_save)
>  -                       pm_idle_save();
>  -               else
>  +               if (pm_idle_save) {
>  +                       pm_idle_save(); /* enables IRQs */
>  +               } else {
>                         acpi_safe_halt();
>  +                       local_irq_enable();
>  +               }
>
>                 /*
>                  * TBD: Can't get time duration while in C1, as resumes
>  @@ -534,8 +535,6 @@ static void acpi_processor_idle(void)
>                  *       skew otherwise.
>                  */
>                 sleep_ticks = 0xFFFFFFFF;
>  -               if (irqs_disabled())
>  -                       local_irq_enable();
>
>                 break;
>
>  Index: linux-2.6-2/arch/x86/kernel/apm_32.c
>  ===================================================================
>  --- linux-2.6-2.orig/arch/x86/kernel/apm_32.c
>  +++ linux-2.6-2/arch/x86/kernel/apm_32.c
>  @@ -904,6 +904,7 @@ recalc:
>                         original_pm_idle();
>                 else
>                         default_idle();
>  +               local_irq_disable();
>                 jiffies_since_last_check = jiffies - last_jiffies;
>                 if (jiffies_since_last_check > idle_period)
>                         goto recalc;
>  @@ -911,6 +912,8 @@ recalc:
>
>         if (apm_idle_done)
>                 apm_do_busy();
>  +
>  +       local_irq_enable();
>   }
>
>   /**
>  Index: linux-2.6-2/include/asm-x86/processor.h
>  ===================================================================
>  --- linux-2.6-2.orig/include/asm-x86/processor.h
>  +++ linux-2.6-2/include/asm-x86/processor.h
>  @@ -723,6 +723,7 @@ static inline void __mwait(unsigned long
>
>   static inline void __sti_mwait(unsigned long eax, unsigned long ecx)
>   {
>  +       trace_hardirqs_on();
>         /* "mwait %eax, %ecx;" */
>         asm volatile("sti; .byte 0x0f, 0x01, 0xc9;"
>                      :: "a" (eax), "c" (ecx));
>  Index: linux-2.6-2/arch/x86/kernel/process.c
>  ===================================================================
>  --- linux-2.6-2.orig/arch/x86/kernel/process.c
>  +++ linux-2.6-2/arch/x86/kernel/process.c
>  @@ -4,6 +4,8 @@
>   #include <linux/smp.h>
>   #include <linux/slab.h>
>   #include <linux/sched.h>
>  +#include <linux/module.h>
>  +#include <linux/pm.h>
>
>   struct kmem_cache *task_xstate_cachep;
>
>  @@ -42,3 +44,118 @@ void arch_task_cache_init(void)
>                                   __alignof__(union thread_xstate),
>                                   SLAB_PANIC, NULL);
>   }
>  +
>  +static void do_nothing(void *unused)
>  +{
>  +}
>  +
>  +/*
>  + * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
>  + * pm_idle and update to new pm_idle value. Required while changing pm_idle
>  + * handler on SMP systems.
>  + *
>  + * Caller must have changed pm_idle to the new value before the call. Old
>  + * pm_idle value will not be used by any CPU after the return of this function.
>  + */
>  +void cpu_idle_wait(void)
>  +{
>  +       smp_mb();
>  +       /* kick all the CPUs so that they exit out of pm_idle */
>  +       smp_call_function(do_nothing, NULL, 0, 1);
>  +}
>  +EXPORT_SYMBOL_GPL(cpu_idle_wait);
>  +
>  +/*
>  + * This uses new MONITOR/MWAIT instructions on P4 processors with PNI,
>  + * which can obviate IPI to trigger checking of need_resched.
>  + * We execute MONITOR against need_resched and enter optimized wait state
>  + * through MWAIT. Whenever someone changes need_resched, we would be woken
>  + * up from MWAIT (without an IPI).
>  + *
>  + * New with Core Duo processors, MWAIT can take some hints based on CPU
>  + * capability.
>  + */
>  +void mwait_idle_with_hints(unsigned long ax, unsigned long cx)
>  +{
>  +       if (!need_resched()) {
>  +               __monitor((void *)&current_thread_info()->flags, 0, 0);
>  +               smp_mb();
>  +               if (!need_resched())
>  +                       __mwait(ax, cx);
>  +       }
>  +}
>  +
>  +/* Default MONITOR/MWAIT with no hints, used for default C1 state */
>  +static void mwait_idle(void)
>  +{
>  +       if (!need_resched()) {
>  +               __monitor((void *)&current_thread_info()->flags, 0, 0);
>  +               smp_mb();
>  +               if (!need_resched())
>  +                       __sti_mwait(0, 0);
>  +               else
>  +                       local_irq_enable();
>  +       } else
>  +               local_irq_enable();
>  +}
>  +
>  +
>  +static int __cpuinit mwait_usable(const struct cpuinfo_x86 *c)
>  +{
>  +       if (force_mwait)
>  +               return 1;
>  +       /* Any C1 states supported? */
>  +       return c->cpuid_level >= 5 && ((cpuid_edx(5) >> 4) & 0xf) > 0;
>  +}
>  +
>  +/*
>  + * On SMP it's slightly faster (but much more power-consuming!)
>  + * to poll the ->work.need_resched flag instead of waiting for the
>  + * cross-CPU IPI to arrive. Use this option with caution.
>  + */
>  +static void poll_idle(void)
>  +{
>  +       local_irq_enable();
>  +       cpu_relax();
>  +}
>  +
>  +void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
>  +{
>  +       static int selected;
>  +
>  +       if (selected)
>  +               return;
>  +#ifdef CONFIG_X86_SMP
>  +       if (pm_idle == poll_idle && smp_num_siblings > 1) {
>  +               printk(KERN_WARNING "WARNING: polling idle and HT enabled,"
>  +                       " performance may degrade.\n");
>  +       }
>  +#endif
>  +       if (cpu_has(c, X86_FEATURE_MWAIT) && mwait_usable(c)) {
>  +               /*
>  +                * Skip, if setup has overridden idle.
>  +                * One CPU supports mwait => All CPUs supports mwait
>  +                */
>  +               if (!pm_idle) {
>  +                       printk(KERN_INFO "using mwait in idle threads.\n");
>  +                       pm_idle = mwait_idle;
>  +               }
>  +       }
>  +       selected = 1;
>  +}
>  +
>  +static int __init idle_setup(char *str)
>  +{
>  +       if (!strcmp(str, "poll")) {
>  +               printk("using polling idle threads.\n");
>  +               pm_idle = poll_idle;
>  +       } else if (!strcmp(str, "mwait"))
>  +               force_mwait = 1;
>  +       else
>  +               return -1;
>  +
>  +       boot_option_idle_override = 1;
>  +       return 0;
>  +}
>  +early_param("idle", idle_setup);
>  +
>
>
>

patching file arch/x86/kernel/process_32.c
Hunk #1 FAILED at 111.
Hunk #2 FAILED at 126.
Hunk #3 FAILED at 183.
Hunk #4 FAILED at 194.
4 out of 4 hunks FAILED -- saving rejects to file
arch/x86/kernel/process_32.c.rej
patching file arch/x86/kernel/process_64.c
Hunk #1 FAILED at 106.
Hunk #2 FAILED at 179.
2 out of 2 hunks FAILED -- saving rejects to file
arch/x86/kernel/process_64.c.rej
patching file drivers/acpi/processor_idle.c
Hunk #1 FAILED at 418.
Hunk #2 FAILED at 519.
Hunk #3 FAILED at 535.
3 out of 3 FAILED -- saving rejects to file drivers/acpi/processor_idle.c.rej
pathing file arch/x86/kernel/apm_32.c
Hunk #1 FAILED at 904.
Hunk #2 FAILED at 912.
2 out of 2 hunks FAILED -- saving rejects to file arch/x86/kernel/apm_32.c.rej
patching file include/asm/asm-x86/processor.h
Hunk #1 FAILED at 723.
1 out of 1 hunk FAILE -- saving rejects to file include/asm-x86/processor.h.rej
patching file arch/x86/kernel/process.c
Hunk #2 succeeded at 44 with fuzz 2.

When I compile the kernel I'm receiving this.

arch/x86/kernel/process.o: In function `select_idle_routine':
process.c:(.cpuinit.text+0x0): multiple definition of `select_idle_routine'
arch/x86/kernel/process_32.o:process_32.c(.cpuinit.text+0x0: first defined here
arch/x86/kernel/process.o: In function `cpu_idle_wait':
process.c:(text+0x16): multiple definition of `cpu_idle_wait'
arch/x86/kernel/process_32.o:process_32.c:(.text0x432): first defined here
arch/x86/kernel/process.o: In function `mwait_idle_with_hints':
process.c:(.text+0x113): multiple definition of 'mwait_idle_with_hints'
arch/x86/kernel/process_32.o:process_32.c:(.text+0x1db): first defined here
make[1]: *** [arch/x86/kernel/built-in.o] Error 1
make: *** [arch/x86/kernel] Error 2


Should I just go ahead and try git-pull to see if these patches are
applied over there correctly.
regards;




-- 
Justin P. Mattock

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] idle (arch, acpi and apm) and lockdep
  2008-04-25 18:08         ` Justin Mattock
@ 2008-04-25 18:19           ` Peter Zijlstra
  2008-04-25 19:18             ` Justin Mattock
  0 siblings, 1 reply; 10+ messages in thread
From: Peter Zijlstra @ 2008-04-25 18:19 UTC (permalink / raw)
  To: Justin Mattock
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, 2008-04-25 at 18:08 +0000, Justin Mattock wrote:
> O.K. I applied this patch, below are the results:

> patching file arch/x86/kernel/process_32.c
> Hunk #1 FAILED at 111.
> Hunk #2 FAILED at 126.
> Hunk #3 FAILED at 183.
> Hunk #4 FAILED at 194.
> 4 out of 4 hunks FAILED -- saving rejects to file
> arch/x86/kernel/process_32.c.rej
> patching file arch/x86/kernel/process_64.c
> Hunk #1 FAILED at 106.
> Hunk #2 FAILED at 179.
> 2 out of 2 hunks FAILED -- saving rejects to file
> arch/x86/kernel/process_64.c.rej
> patching file drivers/acpi/processor_idle.c
> Hunk #1 FAILED at 418.
> Hunk #2 FAILED at 519.
> Hunk #3 FAILED at 535.
> 3 out of 3 FAILED -- saving rejects to file drivers/acpi/processor_idle.c.rej
> pathing file arch/x86/kernel/apm_32.c
> Hunk #1 FAILED at 904.
> Hunk #2 FAILED at 912.
> 2 out of 2 hunks FAILED -- saving rejects to file arch/x86/kernel/apm_32.c.rej
> patching file include/asm/asm-x86/processor.h
> Hunk #1 FAILED at 723.
> 1 out of 1 hunk FAILE -- saving rejects to file include/asm-x86/processor.h.rej
> patching file arch/x86/kernel/process.c
> Hunk #2 succeeded at 44 with fuzz 2.
> 
> When I compile the kernel I'm receiving this.
> 
> arch/x86/kernel/process.o: In function `select_idle_routine':
> process.c:(.cpuinit.text+0x0): multiple definition of `select_idle_routine'
> arch/x86/kernel/process_32.o:process_32.c(.cpuinit.text+0x0: first defined here
> arch/x86/kernel/process.o: In function `cpu_idle_wait':
> process.c:(text+0x16): multiple definition of `cpu_idle_wait'
> arch/x86/kernel/process_32.o:process_32.c:(.text0x432): first defined here
> arch/x86/kernel/process.o: In function `mwait_idle_with_hints':
> process.c:(.text+0x113): multiple definition of 'mwait_idle_with_hints'
> arch/x86/kernel/process_32.o:process_32.c:(.text+0x1db): first defined here
> make[1]: *** [arch/x86/kernel/built-in.o] Error 1
> make: *** [arch/x86/kernel] Error 2
> 
> 
> Should I just go ahead and try git-pull to see if these patches are
> applied over there correctly.
> regards;

That's no good :-/

weird, I have:

# git describe
v2.6.25-4569-gb69d398

# quilt push
Applying patch patches/idle-lockdep-1.patch
patching file arch/x86/kernel/process_32.c
patching file arch/x86/kernel/process_64.c
patching file drivers/acpi/processor_idle.c
patching file arch/x86/kernel/apm_32.c
patching file include/asm-x86/processor.h
patching file arch/x86/kernel/process.c

Now at patch patches/idle-lockdep-1.patch


And I did a i386 and x86_64 defconfig build before I send it out.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] idle (arch, acpi and apm) and lockdep
  2008-04-25 18:19           ` Peter Zijlstra
@ 2008-04-25 19:18             ` Justin Mattock
  2008-04-25 22:05               ` Justin Mattock
  0 siblings, 1 reply; 10+ messages in thread
From: Justin Mattock @ 2008-04-25 19:18 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, Apr 25, 2008 at 6:19 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, 2008-04-25 at 18:08 +0000, Justin Mattock wrote:
>  > O.K. I applied this patch, below are the results:
>
>
>
> > patching file arch/x86/kernel/process_32.c
>  > Hunk #1 FAILED at 111.
>  > Hunk #2 FAILED at 126.
>  > Hunk #3 FAILED at 183.
>  > Hunk #4 FAILED at 194.
>  > 4 out of 4 hunks FAILED -- saving rejects to file
>  > arch/x86/kernel/process_32.c.rej
>  > patching file arch/x86/kernel/process_64.c
>  > Hunk #1 FAILED at 106.
>  > Hunk #2 FAILED at 179.
>  > 2 out of 2 hunks FAILED -- saving rejects to file
>  > arch/x86/kernel/process_64.c.rej
>  > patching file drivers/acpi/processor_idle.c
>  > Hunk #1 FAILED at 418.
>  > Hunk #2 FAILED at 519.
>  > Hunk #3 FAILED at 535.
>  > 3 out of 3 FAILED -- saving rejects to file drivers/acpi/processor_idle.c.rej
>  > pathing file arch/x86/kernel/apm_32.c
>  > Hunk #1 FAILED at 904.
>  > Hunk #2 FAILED at 912.
>  > 2 out of 2 hunks FAILED -- saving rejects to file arch/x86/kernel/apm_32.c.rej
>  > patching file include/asm/asm-x86/processor.h
>  > Hunk #1 FAILED at 723.
>  > 1 out of 1 hunk FAILE -- saving rejects to file include/asm-x86/processor.h.rej
>  > patching file arch/x86/kernel/process.c
>  > Hunk #2 succeeded at 44 with fuzz 2.
>  >
>  > When I compile the kernel I'm receiving this.
>  >
>  > arch/x86/kernel/process.o: In function `select_idle_routine':
>  > process.c:(.cpuinit.text+0x0): multiple definition of `select_idle_routine'
>  > arch/x86/kernel/process_32.o:process_32.c(.cpuinit.text+0x0: first defined here
>  > arch/x86/kernel/process.o: In function `cpu_idle_wait':
>  > process.c:(text+0x16): multiple definition of `cpu_idle_wait'
>  > arch/x86/kernel/process_32.o:process_32.c:(.text0x432): first defined here
>  > arch/x86/kernel/process.o: In function `mwait_idle_with_hints':
>  > process.c:(.text+0x113): multiple definition of 'mwait_idle_with_hints'
>  > arch/x86/kernel/process_32.o:process_32.c:(.text+0x1db): first defined here
>  > make[1]: *** [arch/x86/kernel/built-in.o] Error 1
>  > make: *** [arch/x86/kernel] Error 2
>  >
>  >
>  > Should I just go ahead and try git-pull to see if these patches are
>  > applied over there correctly.
>  > regards;
>
>  That's no good :-/
>
>  weird, I have:
>
>  # git describe
>  v2.6.25-4569-gb69d398
>
>  # quilt push
>  Applying patch patches/idle-lockdep-1.patch
>
> patching file arch/x86/kernel/process_32.c
>
> patching file arch/x86/kernel/process_64.c
>
> patching file drivers/acpi/processor_idle.c
>  patching file arch/x86/kernel/apm_32.c
>  patching file include/asm-x86/processor.h
>
> patching file arch/x86/kernel/process.c
>
>  Now at patch patches/idle-lockdep-1.patch
>
>
>  And I did a i386 and x86_64 defconfig build before I send it out.
>
>

I did patch -p1 < xxx.patch

-- 
Justin P. Mattock

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] idle (arch, acpi and apm) and lockdep
  2008-04-25 19:18             ` Justin Mattock
@ 2008-04-25 22:05               ` Justin Mattock
  0 siblings, 0 replies; 10+ messages in thread
From: Justin Mattock @ 2008-04-25 22:05 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Linux Kernel Mailing List, Ingo Molnar, Venki Pallipadi,
	Brown, Len

On Fri, Apr 25, 2008 at 7:18 PM, Justin Mattock <justinmattock@gmail.com> wrote:
>
> On Fri, Apr 25, 2008 at 6:19 PM, Peter Zijlstra <peterz@infradead.org> wrote:
>  > On Fri, 2008-04-25 at 18:08 +0000, Justin Mattock wrote:
>  >  > O.K. I applied this patch, below are the results:
>  >
>  >
>  >
>  > > patching file arch/x86/kernel/process_32.c
>  >  > Hunk #1 FAILED at 111.
>  >  > Hunk #2 FAILED at 126.
>  >  > Hunk #3 FAILED at 183.
>  >  > Hunk #4 FAILED at 194.
>  >  > 4 out of 4 hunks FAILED -- saving rejects to file
>  >  > arch/x86/kernel/process_32.c.rej
>  >  > patching file arch/x86/kernel/process_64.c
>  >  > Hunk #1 FAILED at 106.
>  >  > Hunk #2 FAILED at 179.
>  >  > 2 out of 2 hunks FAILED -- saving rejects to file
>  >  > arch/x86/kernel/process_64.c.rej
>  >  > patching file drivers/acpi/processor_idle.c
>  >  > Hunk #1 FAILED at 418.
>  >  > Hunk #2 FAILED at 519.
>  >  > Hunk #3 FAILED at 535.
>  >  > 3 out of 3 FAILED -- saving rejects to file drivers/acpi/processor_idle.c.rej
>  >  > pathing file arch/x86/kernel/apm_32.c
>  >  > Hunk #1 FAILED at 904.
>  >  > Hunk #2 FAILED at 912.
>  >  > 2 out of 2 hunks FAILED -- saving rejects to file arch/x86/kernel/apm_32.c.rej
>  >  > patching file include/asm/asm-x86/processor.h
>  >  > Hunk #1 FAILED at 723.
>  >  > 1 out of 1 hunk FAILE -- saving rejects to file include/asm-x86/processor.h.rej
>  >  > patching file arch/x86/kernel/process.c
>  >  > Hunk #2 succeeded at 44 with fuzz 2.
>  >  >
>  >  > When I compile the kernel I'm receiving this.
>  >  >
>  >  > arch/x86/kernel/process.o: In function `select_idle_routine':
>  >  > process.c:(.cpuinit.text+0x0): multiple definition of `select_idle_routine'
>  >  > arch/x86/kernel/process_32.o:process_32.c(.cpuinit.text+0x0: first defined here
>  >  > arch/x86/kernel/process.o: In function `cpu_idle_wait':
>  >  > process.c:(text+0x16): multiple definition of `cpu_idle_wait'
>  >  > arch/x86/kernel/process_32.o:process_32.c:(.text0x432): first defined here
>  >  > arch/x86/kernel/process.o: In function `mwait_idle_with_hints':
>  >  > process.c:(.text+0x113): multiple definition of 'mwait_idle_with_hints'
>  >  > arch/x86/kernel/process_32.o:process_32.c:(.text+0x1db): first defined here
>  >  > make[1]: *** [arch/x86/kernel/built-in.o] Error 1
>  >  > make: *** [arch/x86/kernel] Error 2
>  >  >
>  >  >
>  >  > Should I just go ahead and try git-pull to see if these patches are
>  >  > applied over there correctly.
>  >  > regards;
>  >
>  >  That's no good :-/
>  >
>  >  weird, I have:
>  >
>  >  # git describe
>  >  v2.6.25-4569-gb69d398
>  >
>  >  # quilt push
>  >  Applying patch patches/idle-lockdep-1.patch
>  >
>  > patching file arch/x86/kernel/process_32.c
>  >
>  > patching file arch/x86/kernel/process_64.c
>  >
>  > patching file drivers/acpi/processor_idle.c
>  >  patching file arch/x86/kernel/apm_32.c
>  >  patching file include/asm-x86/processor.h
>  >
>  > patching file arch/x86/kernel/process.c
>  >
>  >  Now at patch patches/idle-lockdep-1.patch
>  >
>  >
>  >  And I did a i386 and x86_64 defconfig build before I send it out.
>  >
>  >
>
>  I did patch -p1 < xxx.patch
>
>  --
>  Justin P. Mattock
>

Hello;
 Thank you very much for that patch, the system is running and I dont
need to use nohz=off ("knock on wood")
I dont know why the patch failed the first time, so I decide to clean
the board and start fresh, then manually go in and add and subtract
what
you had from the patch.( "I need to get better at reading and
writting") So far I'm not receiving any freezes, but it's only been
around 20 minutes. I'll leave the system running for a while to see if
there's a freeze.
again thank you very much,
regards;

-- 
Justin P. Mattock

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-04-25 22:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-25  0:24 [ INFO: iconsistent lock state ] Justin Mattock
2008-04-25 12:11 ` Peter Zijlstra
2008-04-25 14:47   ` Justin Mattock
2008-04-25 14:59     ` Peter Zijlstra
2008-04-25 15:39       ` [PATCH] idle (arch, acpi and apm) and lockdep Peter Zijlstra
2008-04-25 18:08         ` Justin Mattock
2008-04-25 18:19           ` Peter Zijlstra
2008-04-25 19:18             ` Justin Mattock
2008-04-25 22:05               ` Justin Mattock
2008-04-25 15:45       ` [ INFO: iconsistent lock state ] Justin Mattock

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox