Re: Linux-2.0

Clive Messer (clive@epos.demon.co.uk)
Fri, 7 Jun 1996 13:10:10 +0100 (BST)


On Thu, 6 Jun 1996, Linus Torvalds wrote:

> HOWEVER, in the unlikely case that there are still problems, I'd like to
> hear about them. We may not be able to fix all the problems in the world
> in the last day or two of 2.0 development, but at least we can try. So
> consider it your civic duty to bother enough that you try this out, ok?

Did something change in the way interrupts are handled in 1.99.11 ?

Specifically, I seem to be having a problem with unmasking interrupts
using 'hdparm -u1', which I have been doing for most of the 1.3 kernels
with a UMC8672 controller and now with the ali14xx.

Background:

ide_setup: ide0=autotune
ide_setup: ide1=autotune
ide_setup: ide0=ali14xxali14xx: base= 0x0f4, regOn= 0x30
hda: QUANTUM FIREBALL1280A, 1222MB w/83kB Cache, LBA, CHS=621/64/63
hda: PIO mode3, t1=120ns, t2=80ns, cycles = 3+1, 3+1
hdc: ST3491A, 408MB w/120kB Cache, CHS=899/15/62
hdc: PIO mode3, t1=180ns, t2=80ns, cycles = 3+3, 3+3
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15

I sent the following to the Oops to linux-kernel after running 1.99.11.

Unable to handle kernel NULL pointer dereference at virtual address c0000018
current->tss.cr3 = 0080b000, %cr3 = 0080b000
*pde = 00102067
*pte = 00000027
Oops: 0000
CPU: 0
EIP: 0010:[<001857e0>]
EFLAGS: 00010202
eax: 00008018 ebx: 00000000 ecx: 00000001 edx: 00211238
esi: 00000002 edi: 00000002 ebp: 081801f0 esp: 00970f68
ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
Process pine (pid: 2736, process nr: 30, stackpage=00970000)
Stack: 00008018 00211244 00185770 081885c0 00211244 00185770 00000001 001105a3
0037ac0c 00e1a001 00008018 00000000 00000002 00008018 00000002 0018693e
00211244 0009e0d8 0000000e 08189388 0010c9e3 0000000e 00008018 00000000
Call Trace: [<00185770>] [<00185770>] [<001105a3>] [<0018693e>] [<0010c9e3>] [<0010c71f>]
Code: 8b 73 18 39 74 24 38 73 04 8b 74 24 38 29 74 24 38 eb 12 8d
Aiee, killing interrupt handler

Using `/System.map' to map addresses to symbols.

>>EIP: 1857e0 <read_intr+70/190>
Trace: 1857e0 <read_intr+70/190>
Trace: 1857e0 <read_intr+70/190>
Trace: 1105a3 <do_page_fault+163/2d0>
Trace: 18693e <ide_intr+3e/70>
Trace: 10c9e3 <do_fast_IRQ+23/30>
Trace: 10c71f <fast_IRQ14_interrupt+3f/70>

Code: 1857e0 <read_intr+70/190> movl 0x18(%ebx),%esi
Code: 1857e3 <read_intr+73/190> cmpl %esi,0x38(%esp,1)
Code: 1857e7 <read_intr+77/190> jae 1857ed <read_intr+7d/190>
Code: 1857e9 <read_intr+79/190> movl 0x38(%esp,1),%esi
Code: 1857ed <read_intr+7d/190> subl %esi,0x38(%esp,1)
Code: 1857f1 <read_intr+81/190> jmp 185805 <read_intr+95/190>
Code: 1857f3 <read_intr+83/190> leal (%eax),%eax
Code: 1857f5 <read_intr+85/190> nop
Code: 1857f6 <read_intr+86/190> nop
Code: 1857f7 <read_intr+87/190> nop

After several days of running with interupt unmasking turned off, I tried
again with 1.99.14. It didn't Oops, but I ended up with a corrupted
filesystem. My system log shows the following .....

Jun 7 04:00:42 epos kernel: ector 331796
Jun 7 04:00:42 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331798
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331798
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331800
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331800
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331802
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331802
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331804
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331804
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331806
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331806
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331808
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331808
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331810
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331810
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331812
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331812
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331814
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331814
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331816
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331816
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331818
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331818
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331820
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331820
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331822
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331822
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331824
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331824
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331826
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331826
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331844
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331844
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331846
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331846
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331848
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331848
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331850
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331850
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331852
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331852
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=331854
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:02, sector 331854
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=360468
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:03, sector 360468
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=540730
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:03, sector 540730
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=540742
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:03, sector 540742
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=770096
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:03, sector 770096
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=802962
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:03, sector 802962
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hda: status error: status=0x73 { DriveReady DeviceFault SeekComplete Index Error }
Jun 7 04:00:43 epos kernel: hda: status error: error=0x6d { UncorrectableError DriveStatusError AddrMarkNotFound }, CHS=28001/14/115, sector=868384
Jun 7 04:00:43 epos kernel: end_request: I/O error, dev 03:03, sector 868384
Jun 7 04:00:43 epos kernel: hda: no DRQ after issuing MULTWRITE
Jun 7 04:00:43 epos kernel: hdc: read_intr: status=0xd0 { Busy }
Jun 7 04:00:43 epos kernel: ide1: reset: success
Jun 7 04:01:08 epos kernel: hdc: read_intr: status=0x50 { DriveReady SeekComplete }
Jun 7 04:01:18 epos kernel: hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
Jun 7 04:56:50 epos kernel: EXT2-fs warning (device 03:02): ext2_free_blocks: bit already cleared for block 164444
Jun 7 04:56:50 epos kernel: EXT2-fs warning (device 03:02): ext2_free_inode: bit already cleared for inode 40539
Jun 7 04:56:50 epos kernel: EXT2-fs warning (device 03:02): ext2_free_inode: bit already cleared for inode 40541
Jun 7 04:59:19 epos kernel: EXT2-fs warning (device 03:02): ext2_free_inode: bit already cleared for inode 40541
Jun 7 04:59:19 epos kernel: EXT2-fs warning (device 03:02): ext2_free_blocks: bit already cleared for block 164444
Jun 7 04:59:19 epos kernel: EXT2-fs warning (device 03:02): ext2_free_inode: bit already cleared for inode 40539

I know that the documentation warns against unmasking interupts, but as I
said before I have not had any problems with it prior to 1.99.11.
If this could be fixed before 2.0 it would be useful.

Clive.

-- 
C Messer. Epos Systems. UK.  |
<clive@epos.demon.co.uk>     |   "I pressed her thigh and death smiled."
<clive@epos.easynet.co.uk>   |    Jim Morrison.