xfs
[Top] [All Lists]

Re: Bug in sgi-xfs?

Subject: Re: Bug in sgi-xfs?
From: "D. Stimits" <stimits@xxxxxxxxxx>
Date: Tue, 09 Oct 2001 05:12:56 -0600
Cc: Willi.Langenberger@xxxxxxxxxxxxx, linux-xfs@xxxxxxxxxxx
References: <15298.48625.831518.499561@xxxxxxxxxxxxxxxxxxx> <15298.49018.477634.619452@xxxxxxxxxxxxxxxxxxx> <3BC2C0F9.D9E3F955@xxxxxxxxxxxxxxxx> <15298.50628.6988.697607@xxxxxxxxxxxxxxxxxxx> <3BC2D0BE.2CB6D5C1@xxxxxxxxxxxxxxxx>
Reply-to: stimits@xxxxxxxxxx
Sender: owner-linux-xfs@xxxxxxxxxxx
There was a problem that got fixed around 2.4.6-preSomething. Without a
ksymoops, nobody will be able to verify it, but assuming you don't want
to try something more recent than 2.4.5 (which I guarantee has this bug
I'm thinking of within stock kernels), you can manually edit a file and
test this. If you go to your kernel source, file fs/block_dev.c, find
function ioctl_by_bdev (near line 596). Within that function, you'll
see:
  inode_fake.i_rdev=rdev;
Immediately after this, also add:
  inode_fake.i_bdev=bdev;

A couple of lines before that, something else that wouldn't hurt is to
initialize the struct. You can change the line that appears like this:
  struct inode inode_fake;

Such that it becomes this instead:
  struct inode inode_fake = { 0 };

The new function will look like this:
int ioctl_by_bdev(struct block_device *bdev, unsigned cmd, unsigned long
arg)
{
        kdev_t rdev = to_kdev_t(bdev->bd_dev);
        struct inode inode_fake = { 0 };
        int res;
        mm_segment_t old_fs = get_fs();

        if (!bdev->bd_op->ioctl)
                return -EINVAL;
        inode_fake.i_rdev=rdev;
        inode_fake.i_bdev=bdev;
        init_waitqueue_head(&inode_fake.i_wait);
        set_fs(KERNEL_DS);
        res = bdev->bd_op->ioctl(&inode_fake, NULL, cmd, arg);
        set_fs(old_fs);
        return res;
}

Be sure to do a make mrproper, config it, and then do a completely new
build. If that fixes it, then you can bet 2.4.6+ won't have this
problem.

D. Stimits, stimits@xxxxxxxxxx

Simon Matter wrote:
> 
> Willi Langenberger schrieb:
> >
> > According to Simon Matter:
> > > Could you provide a dmesg output?
> >
> > Sure (sorry, hadn't thought about that...):
> > # dmesg
> > Linux version 2.4.5-SGI_XFS_1.0.1 (root@exclaim) (gcc version egcs-2.91.66 
> > 19990314/Linux (egcs-1.1.2 release)) #1 Mon Jul 9 13:44:02 CDT 2001
> > BIOS-provided physical RAM map:
> >  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> >  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> >  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> >  BIOS-e820: 0000000000100000 - 000000001fff0000 (usable)
> >  BIOS-e820: 000000001fff0000 - 000000001fff8000 (ACPI data)
> >  BIOS-e820: 000000001fff8000 - 0000000020000000 (ACPI NVS)
> >  BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
> > On node 0 totalpages: 131056
> > zone(0): 4096 pages.
> > zone(1): 126960 pages.
> > zone(2): 0 pages.
> > Kernel command line: auto BOOT_IMAGE=linux ro root=341 
> > BOOT_FILE=/boot/vmlinuz-2.4.5-SGI_XFS_1.0.1
> > Initializing CPU#0
> > Detected 1050.034 MHz processor.
> > Console: colour VGA+ 80x25
> > Calibrating delay loop... 2090.59 BogoMIPS
> > Memory: 511808k/524224k available (1503k kernel code, 12028k reserved, 935k 
> > data, 220k init, 0k highmem)
> > kdb version 1.8 by Scott Lurndal, Keith Owens. Copyright SGI, All Rights 
> > Reserved
> > Dentry-cache hash table entries: 65536 (order: 7, 524288 bytes)
> > Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
> > Buffer-cache hash table entries: 32768 (order: 5, 131072 bytes)
> > Page-cache hash table entries: 131072 (order: 7, 524288 bytes)
> > CPU: Before vendor init, caps: 0183f9ff c1c7f9ff 00000000, vendor = 2
> > CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
> > CPU: L2 Cache: 256K (64 bytes/line)
> > CPU: After vendor init, caps: 0183f9ff c1c7f9ff 00000000 00000000
> > CPU:     After generic, caps: 0183f9ff c1c7f9ff 00000000 00000000
> > CPU:             Common caps: 0183f9ff c1c7f9ff 00000000 00000000
> > CPU: AMD Athlon(tm) Processor stepping 04
> > Enabling fast FPU save and restore... done.
> > Checking 'hlt' instruction... OK.
> > POSIX conformance testing by UNIFIX
> > mtrr: v1.40 (20010327) Richard Gooch (rgooch@xxxxxxxxxxxxx)
> > mtrr: detected mtrr type: Intel
> > PCI: PCI BIOS revision 2.10 entry at 0xfdb51, last bus=1
> > PCI: Using configuration type 1
> > PCI: Probing PCI hardware
> > PCI: Using IRQ router default [1106/3074] at 00:11.0
> > isapnp: Scanning for PnP cards...
> > isapnp: No Plug & Play device found
> > Linux NET4.0 for Linux 2.4
> > Based upon Swansea University Computer Society NET3.039
> > Initializing RT netlink socket
> > apm: BIOS version 1.2 Flags 0x03 (Driver version 1.14)
> > Starting kswapd v1.8
> > allocated 32 pages and 32 bhs reserved for the highmem bounces
> > VFS: Diskquotas version dquot_6.4.0 initialized
> > pty: 256 Unix98 ptys configured
> > Serial driver version 5.05a (2001-03-20) with MANY_PORTS MULTIPORT 
> > SHARE_IRQ SERIAL_PCI ISAPNP enabled
> > ttyS00 at 0x03f8 (irq = 4) is a 16550A
> > ttyS01 at 0x02f8 (irq = 3) is a 16550A
> > Real Time Clock Driver v1.10d
> > block: queued sectors max/low 340072kB/209000kB, 1024 slots per queue
> > RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
> > Uniform Multi-Platform E-IDE driver Revision: 6.31
> > ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> > PDC20265: IDE controller on PCI bus 00 dev 60
> > PDC20265: chipset revision 2
> > ide: Found promise 20265 in RAID mode.
> > PDC20265: not 100% native mode: will probe irqs later
> > PDC20265: ROM enabled at 0xdffe0000
> > PDC20265: (U)DMA Burst Bit ENABLED Primary MASTER Mode Secondary MASTER 
> > Mode.
> >     ide2: BM-DMA at 0xc000-0xc007, BIOS settings: hde:pio, hdf:pio
> > VP_IDE: IDE controller on PCI bus 00 dev 89
> > VP_IDE: chipset revision 6
> > VP_IDE: not 100% native mode: will probe irqs later
> > ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> > VP_IDE: VIA vt8233 (rev 00) IDE UDMA100 controller on pci00:11.1
> >     ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:DMA
> >     ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:pio
> > hda: IBM-DTLA-307045, ATA DISK drive
> > hdb: IC35L060AVER07-0, ATA DISK drive
> > hdc: SONY CD-ROM CDU4821, ATAPI CD/DVD-ROM drive
> > ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> > ide1 at 0x170-0x177,0x376 on irq 15
> > hda: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=5606/255/63, UDMA(100)
> > hdb: 120103200 sectors (61493 MB) w/1916KiB Cache, CHS=7476/255/63, 
> > UDMA(100)
> > Partition check:
> >  hda: hda1 hda2 < hda5 hda6 hda7 >
> >  hdb: hdb1 hdb2 hdb3 hdb4 < hdb5 hdb6 >
> > Floppy drive(s): fd0 is 1.44M
> > FDC 0 is a post-1991 82077
> > md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
> > md.c: sizeof(mdp_super_t) = 4096
> > autodetecting RAID arrays
> > autorun ...
> > ... autorun DONE.
> > NET4: Linux TCP/IP 1.0 for NET4.0
> > IP Protocols: ICMP, UDP, TCP, IGMP
> > IP: routing cache hash table of 4096 buckets, 32Kbytes
> > TCP: Hash tables configured (established 32768 bind 32768)
> > Linux IP multicast router 0.06 plus PIM-SM
> > NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> > RAMDISK: Compressed image found at block 0
> > Freeing initrd memory: 356k freed
> > VFS: Mounted root (ext2 filesystem).
> > SCSI subsystem driver Revision: 1.00
> > ahc_pci:0:6:0: Host Adapter Bios disabled.  Using default SCSI device 
> > parameters
> > scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.1.13
> >         <Adaptec 2902/04/10/15/20/30C SCSI adapter>
> >         aic7850: Single Channel A, SCSI Id=7, 3/255 SCBs
> >
> >   Vendor: HP        Model: C1537A            Rev: L907
> >   Type:   Sequential-Access                  ANSI SCSI revision: 02
> > VFS: Mounted root (ext2 filesystem) readonly.
> > change_root: old root has d_count=2
> > Trying to unmount old root ... okay
> > Freeing unused kernel memory: 220k freed
> > Adding Swap: 265032k swap-space (priority -1)
> > Adding Swap: 530104k swap-space (priority -2)
> > usb.c: registered new driver usbdevfs
> > usb.c: registered new driver hub
> > usb-uhci.c: $Revision: 1.259 $ time 14:00:01 Jul  9 2001
> > usb-uhci.c: High bandwidth mode enabled
> > usb-uhci.c: USB UHCI at I/O 0xb800, IRQ 10
> > usb-uhci.c: Detected 2 ports
> > usb.c: new USB bus registered, assigned bus number 1
> > hub.c: USB hub found
> > hub.c: 2 ports detected
> > usb-uhci.c: USB UHCI at I/O 0xb400, IRQ 10
> > usb-uhci.c: Detected 2 ports
> > usb.c: new USB bus registered, assigned bus number 2
> > hub.c: USB hub found
> > hub.c: 2 ports detected
> > usb-uhci.c: USB UHCI at I/O 0xb000, IRQ 10
> > usb-uhci.c: Detected 2 ports
> > hub.c: USB new device connect on bus2/2, assigned device number 2
> > usb.c: new USB bus registered, assigned bus number 3
> > hub.c: USB hub found
> > hub.c: 2 ports detected
> > usb.c: USB device 2 (vend/prod 0x5e3/0x502) is not claimed by any active 
> > driver.
> > usb-uhci.c: v1.251 Georg Acher, Deti Fliegl, Thomas Sailer, Roman 
> > Weissgaerber
> > usb-uhci.c: USB Universal Host Controller Interface driver
> > Start mounting filesystem: ide0(3,70)
> > Ending clean XFS mount for filesystem: ide0(3,70)
> > Detected scsi tape st0 at scsi0, channel 0, id 3, lun 0
> > st: bufsize 32768, wrt 30720, max init. buffers 4, s/g segs 16.
> > Winbond Super-IO detection, now testing ports 3F0,370,250,4E,2E ...
> > Winbond chip at EFER=0x2e key=0x87 devid=52 devrev=17 oldid=ff
> > Winbond chip type 83627
> > Winbond LPT Config: cr_30=01 60,61=0378 70=07 74=03, f0=3a
> > Winbond LPT Config: active=yes, io=0x0378 irq=7, dma=3
> > Winbond LPT Config: irqtype=pulsed low, high-Z, ECP fifo threshold=7
> > Winbond LPT Config: Port mode=ECP
> > SMSC Super-IO detection, now testing Ports 2F0, 370 ...
> > 0x378: FIFO is 16 bytes
> > 0x378: writeIntrThreshold is 9
> > 0x378: readIntrThreshold is 9
> > 0x378: PWord is 8 bits
> > 0x378: Interrupts are ISA-Pulses
> > 0x378: ECP port cfgA=0x10 cfgB=0x48
> > 0x378: ECP settings irq=7 dma=<none or set by other means>
> > parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,COMPAT,EPP,ECP]
> > parport0: irq 7 detected
> > parport0: cpp_daisy: aa5500ff(38)
> > parport0: assign_addrs: aa5500ff(38)
> > parport0: cpp_daisy: aa5500ff(38)
> > parport0: assign_addrs: aa5500ff(38)
> > ip_conntrack (4095 buckets, 32760 max)
> > eepro100.c:v1.09j-t 9/29/99 Donald Becker 
> > http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
> > eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin 
> > <saw@xxxxxxxxxxxxx> and others
> > eth0: Intel Corporation 82557 [Ethernet Pro 100], 00:90:27:2C:94:D9, IRQ 10.
> >   Receiver lock-up bug exists -- enabling work-around.
> >   Board assembly 689661-004, Physical connectors present: RJ45
> >   Primary interface chip i82555 PHY #1.
> >   General self-test: passed.
> >   Serial sub-system self-test: passed.
> >   Internal registers self-test: passed.
> >   ROM checksum self-test: passed (0x24c9f043).
> >   Receiver lock-up workaround activated.
> > scsi1 : SCSI host adapter emulation for IDE ATAPI devices
> >   Vendor: SONY      Model: CD-ROM CDU4821    Rev: S0.Q
> >   Type:   CD-ROM                             ANSI SCSI revision: 02
> > (scsi0:A:3): 10.000MB/s transfers (10.000MHz, offset 15)
> > Unable to handle kernel paging request at virtual address 2ca0721c
> >  printing eip:
> > c01449f2
> > *pde = 00000000
> > Oops: 0000
> > CPU:    0
> > EIP:    0010:[<c01449f2>]
> > EFLAGS: 00010207
> > eax: ffffffff   ebx: 2ca07218   ecx: c189dfa0   edx: 00134880
> > esi: 2ca07210   edi: 2ca07218   ebp: c189dfa0   esp: c189df88
> > ds: 0018   es: 0018   ss: 0018
> > Process kswapd (pid: 4, stackpage=c189d000)
> > Stack: 0000028b 00000004 00000000 0008e000 00000001 00000000 c189dfa0 
> > c189dfa0
> >        c0144af1 00001839 c012a56f 00000006 00000004 00000006 00000004 
> > 00000004
> >        00000000 c189c000 c02815f1 c189c239 c012a5eb 00000004 00000000 
> > 00010f00
> > Call Trace: [<c0144af1>] [<c012a56f>] [<c012a5eb>] [<c0105000>] [<c0105647>]
> >
> > Code: 8b 7f 04 8b 86 f4 00 00 00 a8 38 74 21 68 8a 02 00 00 68 7f
> >
> > \wlang{}
> 
> Hmm, I think it's the same problem I had with different systems. I had
> it with different CPUs, Chipsets, IDE-adapters and several kernels but I
> could not figure out what is causing the problem. The only thing I found
> is that it does ONLY happen if you have more than one IDE drive in a
> system with 2.4.x kernel. This will lead - under some sircumstances - to
> corruption. It is not filesystem specific, happens with ext2 as well.
> 
> -Simon
> 
> >
> > --
> > Willi.Langenberger@xxxxxxxxxxxxx                 Fax: +43/1/31336/702
> > Zentrum fuer Informatikdienste, Wirtschaftsuniversitaet Wien, Austria


<Prev in Thread] Current Thread [Next in Thread>