Messages in this thread | | | Date | Tue, 29 Apr 2008 22:23:10 +0200 | From | Jens Axboe <> | Subject | Re: queue_flag_clear warnings with the latest git tree |
| |
On Tue, Apr 29 2008, Bartlomiej Zolnierkiewicz wrote: > On Tuesday 29 April 2008, Jens Axboe wrote: > > On Tue, Apr 29 2008, Bartlomiej Zolnierkiewicz wrote: > > > > > > They happen both with IDE and SCSI/libata... > > > > > > IDE: > > > > > > Linux version 2.6.25-06476-gc9a3f6d-dirty (bzolnier@localhost.localdomain) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-27)) #225 PREEMPT Tue Apr 29 20:53:53 CEST 2008 > > > BIOS-provided physical RAM map: > > > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) > > > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) > > > BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) > > > BIOS-e820: 0000000000100000 - 0000000007ff0000 (usable) > > > BIOS-e820: 0000000007ff0000 - 0000000008000000 (ACPI data) > > > BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved) > > > 127MB LOWMEM available. > > > Zone PFN ranges: > > > DMA 0 -> 4096 > > > Normal 4096 -> 32752 > > > Movable zone start PFN for each node > > > early_node_map[1] active PFN ranges > > > 0: 0 -> 32752 > > > DMI not present or invalid. > > > ACPI: RSDP 000FA5D0, 0014 (r0 QEMU ) > > > ACPI: RSDT 07FF0000, 002C (r0 QEMU QEMURSDT 1 QEMU 1) > > > ACPI: FACP 07FF002C, 0074 (r0 QEMU QEMUFACP 1 QEMU 1) > > > ACPI: DSDT 07FF0100, 0832 (r1 BXPC BXDSDT 1 INTL 20060912) > > > ACPI: FACS 07FF00C0, 0040 > > > ACPI: APIC 07FF0938, 0040 (r0 QEMU QEMUAPIC 1 QEMU 1) > > > ACPI: PM-Timer IO Port: 0xb008 > > > ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) > > > BIOS bug, APIC version is 0 for CPU#0! fixing up to 0x10. (tell your hw vendor) > > > ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) > > > IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-23 > > > Enabling APIC mode: Flat. Using 1 I/O APICs > > > Using ACPI (MADT) for SMP configuration information > > > Allocating PCI resources starting at 10000000 (gap: 08000000:f7fc0000) > > > Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32497 > > > Kernel command line: root=/dev/hda init=/bin/sh console=ttyS0,115200 > > > Enabling fast FPU save and restore... done. > > > Enabling unmasked SIMD FPU exception support... done. > > > Initializing CPU#0 > > > CPU 0 irqstacks, hard=c03e1000 soft=c03e0000 > > > PID hash table entries: 512 (order: 9, 2048 bytes) > > > Detected 1495.172 MHz processor. > > > Console: colour VGA+ 80x25 > > > console [ttyS0] enabled > > > Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) > > > Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > > > Memory: 126096k/131008k available (1912k kernel code, 4432k reserved, 832k data, 180k init, 0k highmem) > > > virtual kernel memory layout: > > > fixmap : 0xfffb5000 - 0xfffff000 ( 296 kB) > > > vmalloc : 0xc8800000 - 0xfffb3000 ( 887 MB) > > > lowmem : 0xc0000000 - 0xc7ff0000 ( 127 MB) > > > .init : 0xc03b0000 - 0xc03dd000 ( 180 kB) > > > .data : 0xc02de117 - 0xc03ae1e0 ( 832 kB) > > > .text : 0xc0100000 - 0xc02de117 (1912 kB) > > > Checking if this processor honours the WP bit even in supervisor mode...Ok. > > > Calibrating delay using timer specific routine.. 3012.98 BogoMIPS (lpj=6025962) > > > Mount-cache hash table entries: 512 > > > CPU: L1 I cache: 8K > > > CPU: L2 cache: 128K > > > Compat vDSO mapped to ffffe000. > > > CPU: Intel Pentium II (Klamath) stepping 03 > > > Checking 'hlt' instruction... OK. > > > Freeing SMP alternatives: 0k freed > > > ACPI: Core revision 20070126 > > > ENABLING IO-APIC IRQs > > > ..TIMER: vector=0x31 apic1=0 pin1=0 apic2=-1 pin2=-1 > > > APIC calibration not consistent with PM Timer: 52ms instead of 100ms > > > APIC delta adjusted to PM-Timer: 6250026 (3292476) > > > net_namespace: 480 bytes > > > NET: Registered protocol family 16 > > > No dock devices found. > > > ACPI: bus type pci registered > > > PCI: PCI BIOS revision 2.10 entry at 0xfa110, last bus=0 > > > PCI: Using configuration type 1 for base access > > > Setting up standard PCI resources > > > ACPI: Interpreter enabled > > > ACPI: (supports S0 S5) > > > ACPI: Using IOAPIC for interrupt routing > > > ACPI: PCI Root Bridge [PCI0] (0000:00) > > > * Found PM-Timer Bug on the chipset. Due to workarounds for a bug, > > > * this clock source is slow. Consider trying other clock sources > > > pci 0000:00:01.3: quirk: region b000-b03f claimed by PIIX4 ACPI > > > pci 0000:00:01.3: quirk: region b100-b10f claimed by PIIX4 SMB > > > ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12) > > > ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9 10 11 12) > > > ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 *11 12) > > > ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *9 10 11 12) > > > Linux Plug and Play Support v0.97 (c) Adam Belay > > > pnp: PnP ACPI init > > > ACPI: bus type pnp registered > > > pnp: PnP ACPI: found 6 devices > > > ACPI: ACPI bus type pnp unregistered > > > SCSI subsystem initialized > > > usbcore: registered new interface driver usbfs > > > usbcore: registered new interface driver hub > > > usbcore: registered new device driver usb > > > PCI: Using ACPI for IRQ routing > > > NET: Registered protocol family 2 > > > IP route cache hash table entries: 1024 (order: 0, 4096 bytes) > > > TCP established hash table entries: 4096 (order: 3, 32768 bytes) > > > TCP bind hash table entries: 4096 (order: 2, 16384 bytes) > > > TCP: Hash tables configured (established 4096 bind 4096) > > > TCP reno registered > > > NET: Registered protocol family 1 > > > audit: initializing netlink socket (disabled) > > > type=2000 audit(1209495511.389:1): initialized > > > Total HugeTLB memory allocated, 0 > > > fuse init (API version 7.9) > > > msgmni has been set to 246 for ipc namespace c0394260 > > > io scheduler noop registered > > > io scheduler anticipatory registered (default) > > > io scheduler deadline registered > > > io scheduler cfq registered > > > pci 0000:00:00.0: Limiting direct PCI/PCI transfers > > > pci 0000:00:01.0: PIIX3: Enabling Passive Release > > > pci 0000:00:01.0: Activating ISA DMA hang workarounds > > > isapnp: Scanning for PnP cards... > > > isapnp: No Plug & Play device found > > > Real Time Clock Driver v1.12ac > > > Linux agpgart interface v0.103 > > > Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled > > > Switched to NOHz mode on CPU #0 > > > ?serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450 > > > 00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450 > > > Uniform Multi-Platform E-IDE driver > > > PIIX3: IDE controller (0x8086:0x7010 rev 0x00) at PCI slot 0000:00:01.1 > > > PIIX3: not 100% native mode: will probe irqs later > > > ide0: BM-DMA at 0xc000-0xc007 > > > ide1: BM-DMA at 0xc008-0xc00f > > > hda: QEMU HARDDISK, ATA DISK drive > > > Clocksource tsc unstable (delta = -713139329 ns) > > > hda: MWDMA2 mode selected > > > hdc: QEMU CD-ROM, ATAPI CD/DVD-ROM drive > > > hdc: MWDMA2 mode selected > > > ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 > > > ide1 at 0x170-0x177,0x376 on irq 15 > > > ide_generic: I/O resource 0x1F0-0x1F7 not free. > > > ide_generic: I/O resource 0x170-0x177 not free. > > > hda: max request size: 512KiB > > > hda: 102400 sectors (52 MB) w/256KiB Cache, CHS=101/255/63 > > > hda: cache flushes supported > > > hda:<4>------------[ cut here ]------------ > > > WARNING: at include/linux/blkdev.h:439 queue_flag_clear+0x1e/0x3e() > > > Modules linked in: > > > Pid: 1, comm: swapper Not tainted 2.6.25-06476-gc9a3f6d-dirty #225 > > > [<c011a21e>] warn_on_slowpath+0x40/0x67 > > > [<c01b6ce3>] elv_rb_add+0x47/0x4f > > > [<c01bda3e>] as_add_request+0x92/0xbe > > > [<c01b6b8a>] elv_insert+0x11a/0x142 > > > [<c01b8b30>] __make_request+0x24e/0x292 > > > [<c01b8b53>] __make_request+0x271/0x292 > > > [<c01b7cb0>] generic_make_request+0x163/0x190 > > > > Hmm, I'm guessing UP and spin_is_locked() doesn't work there? I was > > pretty sure that was 'fixed' years ago. I lieu of a better fix, > > something like this should suffice. > > > > diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h > > index 669b65c..9e2e23b 100644 > > --- a/include/linux/blkdev.h > > +++ b/include/linux/blkdev.h > > @@ -418,8 +418,12 @@ struct request_queue > > > > static inline int queue_is_locked(struct request_queue *q) > > { > > +#ifdef CONFIG_SMP > > spinlock_t *lock = q->queue_lock; > > return lock && spin_is_locked(lock); > > +#else > > + return 1; > > +#endif > > } > > > > static inline void queue_flag_set_unlocked(unsigned int flag, > > Yeah, all warnings are gone.
Goodie, thanks for the report :)
-- Jens Axboe
| |