Testing IDE-TCQ and Taskfile - doesn't work nicely:)
Hi!
I've played a bit with my "mirror" machine
- 200MHz Pentium-MMX
- 64MB RAM
- jbglaw@mirror:~$ cat /proc/ide/hd*/model
WDC AC2850F # System drive
IC35L040AVER07-0 # \
IC35L120AVV207-0 # > Storage (with DM/LVM)
Maxtor 4W100H6 # /
- jbglaw@mirror:~$ lspci |grep IDE
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
- Linux v2.5.73
- <*> Intel PIIXn chipsets support
Basically, if I enable Taskfile I/O, the box refuses to boot (basically,
the first drive sounds really broken like "clack clack clack" and no
data comes off the drive so there's no partition table, no root FS, but a panic:) Is anybody interested in nailing this bug down?
Disabling Taskfile lets me boot the box, but hdc doesn't like TCQ and gives errors:
ide_tcq_intr_timeout: timeout waiting for service interruptide_tcq_intr_timeout: missing isr!
hdc: invalidating tag queue (0 commands)
hdc: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc: drive_cmd: error=0x04 { DriveStatusError } [above messages repeat...]
IDE's boot log:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
hda: tcq forbidden by blacklist
hdb: only one drive on a channel supported for tcq
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
hdc: tagged command queueing enabled, command queue depth 32
hdd: only one drive on a channel supported for tcq
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >
IDE settings:
mirror:~# lspci -xxx -v -d 8086:7111
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
Flags: bus master, medium devsel, latency 64
I/O ports at f000 [size=16]
00: 86 80 11 71 05 00 80 02 01 80 01 01 00 40 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 77 e1 77 e3 bb 00 00 00 0e 00 20 22 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 28 0f 00 00 00 00 00 00MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Quoted 16 lines · Jan-Benedict Glaw
Hi!
I've played a bit with my "mirror" machine
- 200MHz Pentium-MMX
- 64MB RAM
- jbglaw@mirror:~$ cat/proc/ide/hd*/model
WDC AC2850F # System drive
IC35L040AVER07-0 # \
IC35L120AVV207-0 # > Storage (with DM/LVM)
Maxtor 4W100H6 # /
- jbglaw@mirror:~$ lspci |grep IDE
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
- Linux v2.5.73
- <*> Intel PIIXn chipsets support
Quoted 4 lines
Basically, if I enable Taskfile I/O, the box refuses to boot (basically,
the first drive sounds really broken like "clack clack clack" and no
data comes off the drive so there's no partition table, no root FS, but a panic:) Is anybody interested in nailing this bug down?
YES
Quoted 9 lines
Disabling Taskfile lets me boot the box, but hdc doesn't like TCQ and gives errors:
ide_tcq_intr_timeout: timeout waiting for service interruptide_tcq_intr_timeout: missing isr!
hdc: invalidating tag queue (0 commands)
hdc:drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc:drive_cmd: error=0x04 { DriveStatusError } [above messages repeat...]
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
Can you try attached patch?
Regards,
--
Bartlomiej
Quoted 59 lines
IDE's boot log:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
hda: tcq forbidden by blacklist
hdb: only one drive on a channel supported for tcq
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
hdc: tagged command queueing enabled, command queue depth 32
hdd: only one drive on a channel supported for tcq
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda:task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda:task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >IDE settings:
mirror:~# lspci -xxx -v -d 8086:7111 00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master]) Flags: bus master, medium devsel, latency 64 I/O ports at f000 [size=16] 00: 86 80 11 71 05 00 80 02 01 80 01 01 00 40 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 01 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: 77 e1 77 e3 bb 00 00 00 0e 00 20 22 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 28 0f 00 00 00 00 00 00
Quoted 7 lines
MfG, JBG
--
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Kriegfuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak!
ret =do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
[ide] TCQ initialization fixes
- do not enable TCQ in ide_init_drive(), its too early
- enable TCQ in __ide_dma_on() only if CONFIG_BLK_DEV_IDE_TCQ_DEFAULT=y
drivers/ide/ide-dma.c | 8 ++++---- drivers/ide/ide-probe.c | 5 ----- include/linux/ide.h | 1 - 3 files changed, 4 insertions(+), 10 deletions(-)
drivers/ide/ide-probe.c renamed from drivers/ide/ide-probe.c~ide-tcq-init-fixes +0 -5
@@ -983,7 +983,6 @@ static void ide_init_queue(ide_drive_t *blk_init_queue (q, do_ide_request, &ide_lock); q->queuedata =HWGROUP (drive); - drive->queue_setup =1 ;blk_queue_segment_boundary (q,0xffff );if (!hwif->rqsize)
@@ -1005,10 +1004,6 @@ static void ide_init_queue(ide_drive_t *static void ide_init_drive (ide_drive_t *drive) {ide_toggle_bounce (drive,1 ); - -#ifdef CONFIG_BLK_DEV_IDE_TCQ_DEFAULT -HWIF (drive)->ide_dma_queued_on (drive); -#endif }/*
drivers/ide/ide-dma.c renamed from drivers/ide/ide-dma.c~ide-tcq-init-fixes +4 -4
@@ -523,8 +523,7 @@ int __ide_dma_off_quietly (ide_drive_t *if (HWIF (drive)->ide_dma_host_off (drive))return 1 ; -if (drive->queue_setup) -HWIF (drive)->ide_dma_queued_off (drive); +HWIF (drive)->ide_dma_queued_off (drive);return 0 ; }
@@ -585,8 +584,9 @@ int __ide_dma_on (ide_drive_t *drive)if (HWIF (drive)->ide_dma_host_on (drive))return 1 ; -if (drive->queue_setup) -HWIF (drive)->ide_dma_queued_on (drive); +#ifdef BLK_DEV_IDE_TCQ_DEFAULT +HWIF (drive)->ide_dma_queued_on (drive); +#endif return 0 ; }
include/linux/ide.h renamed from include/linux/ide.h~ide-tcq-init-fixes +0 -1
@@ -726,7 +726,6 @@ typedef struct ide_drive_s { unsigned ata_flash : 1; /* 1=present, 0=default */ unsigned blocked : 1; /* 1=powermanagment told us not to do anything, so sleep nicely */ unsigned vdma : 1; /* 1=doing PIO over DMA 0=doing normal DMA */ - unsigned queue_setup : 1;unsigned addressing;/* : 3; * 0=28-bit * 1=48-bit
_
On Mon, 2003-06-23 23:18:00 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 16 lines · Jan-Benedict Glaw
Quoted 15 lines
I've played a bit with my "mirror" machine
- 200MHz Pentium-MMX
- 64MB RAM
- jbglaw@mirror:~$ cat/proc/ide/hd*/model
WDC AC2850F # System drive
IC35L040AVER07-0 # \
IC35L120AVV207-0 # > Storage (with DM/LVM)
Maxtor 4W100H6 # /
- jbglaw@mirror:~$ lspci |grep IDE
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
- Linux v2.5.73
- <*> Intel PIIXn chipsets support
Quoted 6 lines
Quoted 4 lines
Basically, if I enable Taskfile I/O, the box refuses to boot (basically,
the first drive sounds really broken like "clack clack clack" and no
data comes off the drive so there's no partition table, no root FS, but a panic:) Is anybody interested in nailing this bug down?YES
What can I do about this one? I'll try to capture the lines... Taskfile I/O seems to hit my drive(s) really hard:)
Quoted 10 lines
Quoted 9 lines
Disabling Taskfile lets me boot the box, but hdc doesn't like TCQ and gives errors:
ide_tcq_intr_timeout: timeout waiting for service interruptide_tcq_intr_timeout: missing isr!
hdc: invalidating tag queue (0 commands)
hdc:drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc:drive_cmd: error=0x04 { DriveStatusError } [above messages repeat...]
Quoted 5 lines
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
Can you try attached patch?
I'll rebuild with your patch and give it a try (TCQ enabled, Taskfile disabled...).
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
On Mon, 2003-06-23 23:18:00 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 15 lines · Jan-Benedict Glaw
Quoted 14 lines
I've played a bit with my "mirror" machine
- 200MHz Pentium-MMX
- 64MB RAM
- jbglaw@mirror:~$ cat/proc/ide/hd*/model
WDC AC2850F # System drive
IC35L040AVER07-0 # \
IC35L120AVV207-0 # > Storage (with DM/LVM)
Maxtor 4W100H6 # /
- jbglaw@mirror:~$ lspci |grep IDE
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
- Linux v2.5.73
- <*> Intel PIIXn chipsets support
Quoted 6 lines
Quoted 4 lines
Basically, if I enable Taskfile I/O, the box refuses to boot (basically,
the first drive sounds really broken like "clack clack clack" and no
data comes off the drive so there's no partition table, no root FS, but a panic:) Is anybody interested in nailing this bug down?YES
I'll note down this one after having had a little sleep...
Quoted 10 lines
Quoted 9 lines
Disabling Taskfile lets me boot the box, but hdc doesn't like TCQ and gives errors:
ide_tcq_intr_timeout: timeout waiting for service interruptide_tcq_intr_timeout: missing isr!
hdc: invalidating tag queue (0 commands)
hdc:drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc:drive_cmd: error=0x04 { DriveStatusError } [above messages repeat...]
Quoted 3 lines
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
Your patch works for me - TCQ gets no longer stitched on while I've configured to default ON, queue depth 32:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >
The box is now running for a couple of minuted hitting it's HDDs with rsync...
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
On Tue, 24 Jun 2003, Jan-Benedict Glaw wrote:
<...>
Quoted 29 lines
Quoted 3 lines
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
Your patch works for me - TCQ gets no longer stitched on while I've configured to default ON, queue depth 32:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda:task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda:task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4
Quoted 8 lines
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >
There is no info about IDE trying (then failing) to enable TCQ ?
--
Bartlomiej
On Tue, 2003-06-24 02:53:29 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 39 lines · Jan-Benedict Glaw
Quoted 29 lines
Quoted 3 lines
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
Your patch works for me - TCQ gets no longer stitched on while I've configured to default ON, queue depth 32:
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda:task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda:task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4Quoted 8 lines
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >
Quoted 1 line
There is no info about IDE trying (then failing) to enable TCQ ?
No, there isn't. The box is now up'n'running for nearly 7 hours - that should have been enough:) That's with your patch applied and the IDE config as attached below.
Up to now, there's not a single IDE failure of any kind *knock on wood*.
MfG, JBG
#
# Please see Documentation/ide.txt for help/info on IDE drives #
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_IDEDISK=yCONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECD=mCONFIG_BLK_DEV_IDEFLOPPY=mCONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
#
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not setCONFIG_BLK_DEV_IDEPCI=yCONFIG_BLK_DEV_GENERIC=yCONFIG_IDEPCI_SHARE_IRQ=yCONFIG_BLK_DEV_IDEDMA_PCI=yCONFIG_BLK_DEV_IDE_TCQ=yCONFIG_BLK_DEV_IDE_TCQ_DEFAULT=yCONFIG_BLK_DEV_IDE_TCQ_DEPTH=32
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not setCONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not setCONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_PCI_WIP is not setCONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not setCONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_CHIPSETS is not setCONFIG_IDEDMA_AUTO=y
# CONFIG_IDEDMA_IVB is not setCONFIG_BLK_DEV_IDE_MODES=y
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Corrected patch below...
--
Bartlomiej
[ide] TCQ initialization fixes
- do not enable TCQ in ide_init_drive(), its too early
- enable TCQ in __ide_dma_on() only if CONFIG_BLK_DEV_IDE_TCQ_DEFAULT=y
- try to enable TCQ only on disk drives
- correct check for two drives on one channel
drivers/ide/ide-dma.c | 8 ++++---- drivers/ide/ide-probe.c | 5 ----- drivers/ide/ide-tcq.c | 14 +++++++++++--- include/linux/ide.h | 1 - 4 files changed, 15 insertions(+), 13 deletions(-)
drivers/ide/ide-probe.c renamed from drivers/ide/ide-probe.c~ide-tcq-init-fixes +0 -5
@@ -983,7 +983,6 @@ static void ide_init_queue(ide_drive_t *blk_init_queue (q, do_ide_request, &ide_lock); q->queuedata =HWGROUP (drive); - drive->queue_setup =1 ;blk_queue_segment_boundary (q,0xffff );if (!hwif->rqsize)
@@ -1005,10 +1004,6 @@ static void ide_init_queue(ide_drive_t *static void ide_init_drive (ide_drive_t *drive) {ide_toggle_bounce (drive,1 ); - -#ifdef CONFIG_BLK_DEV_IDE_TCQ_DEFAULT -HWIF (drive)->ide_dma_queued_on (drive); -#endif }/*
drivers/ide/ide-dma.c renamed from drivers/ide/ide-dma.c~ide-tcq-init-fixes +4 -4
@@ -523,8 +523,7 @@ int __ide_dma_off_quietly (ide_drive_t *if (HWIF (drive)->ide_dma_host_off (drive))return 1 ; -if (drive->queue_setup) -HWIF (drive)->ide_dma_queued_off (drive); +HWIF (drive)->ide_dma_queued_off (drive);return 0 ; }
@@ -585,8 +584,9 @@ int __ide_dma_on (ide_drive_t *drive)if (HWIF (drive)->ide_dma_host_on (drive))return 1 ; -if (drive->queue_setup) -HWIF (drive)->ide_dma_queued_on (drive); +#ifdef CONFIG_BLK_DEV_IDE_TCQ_DEFAULT +HWIF (drive)->ide_dma_queued_on (drive); +#endif return 0 ; }
drivers/ide/ide-tcq.c renamed from drivers/ide/ide-tcq.c~ide-tcq-init-fixes +11 -3
@@ -501,8 +501,10 @@ static int ide_tcq_configure(ide_drive_t* bit 14 and 1 must be set in word 83 of the device id to indicate * support for dma queued protocol, and bit 15 must be cleared */ -if ((drive->id->command_set_2 & tcq_bits) ^ tcq_mask) +if ((drive->id->command_set_2 & tcq_bits) ^ tcq_mask) { +printk (KERN_INFO "%s: TCQ not supported\n" , drive->name);return -EIO ; + } args =kmalloc (sizeof (*args),GFP_ATOMIC );if (!args)
@@ -655,16 +657,20 @@ static int ide_tcq_check_blacklist(ide_dint __ide_dma_queued_on (ide_drive_t *drive) { +ide_hwif_t *hwif =HWIF (drive); + +if (drive->media != ide_disk) +return 1 ;if (!drive->using_dma)return 1 ; -if (HWIF (drive)->chipset == ide_pdc4030) +if (hwif->chipset == ide_pdc4030)return 1 ;if (ide_tcq_check_blacklist (drive)) {printk (KERN_WARNING "%s: tcq forbidden by blacklist\n" , drive->name);return 1 ; } -if (drive->next != drive) { +if (hwif->drives[0 ].present && hwif->drives[1 ].present) {printk (KERN_WARNING "%s: only one drive on a channel supported" " for tcq\n" , drive->name);return 1 ;
@@ -681,6 +687,8 @@ int __ide_dma_queued_on(ide_drive_t *driint __ide_dma_queued_off (ide_drive_t *drive) { +if (drive->media != ide_disk) +return 1 ;if (ata_pending_commands (drive)) {printk ("ide-tcq; can't toggle tcq feature on busy drive\n" );return 1 ;
include/linux/ide.h renamed from include/linux/ide.h~ide-tcq-init-fixes +0 -1
@@ -726,7 +726,6 @@ typedef struct ide_drive_s { unsigned ata_flash : 1; /* 1=present, 0=default */ unsigned blocked : 1; /* 1=powermanagment told us not to do anything, so sleep nicely */ unsigned vdma : 1; /* 1=doing PIO over DMA 0=doing normal DMA */ - unsigned queue_setup : 1;unsigned addressing;/* : 3; * 0=28-bit * 1=48-bit
_
On Tue, 2003-06-24 15:44:36 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 1 line
Corrected patch below...
Taking this 2nd IDE patch, my boot-up looks as shown below. I still have to test the taskfile thing again, but I cannot find my girlfriends digital camera right now:)
MfG, JBG
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
hda: tcq forbidden by blacklist
hdb: only one drive on a channel supported for tcq
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
hdc: only one drive on a channel supported for tcq
hdd: only one drive on a channel supported for tcq
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Quoted 6 lines · Jan-Benedict Glaw
On Tue, 2003-06-24 15:44:36 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 1 line
Corrected patch below...
Taking this 2nd IDE patch, my boot-up looks as shown below. I still have
Thanks for testing, it looks okay now.
Quoted 2 lines
to test the taskfile thing again, but I cannot find my girlfriends digital camera right now:)
:-)
Quoted 41 lines
MfG, JBG
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:piohda: WDC AC2850F, ATA DISK drive
hdb: IC35L040AVER07-0, ATA DISK drive
hda: tcq forbidden by blacklist
hdb: only one drive on a channel supported for tcq
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IC35L120AVV207-0, ATA DISK drive
hdd: Maxtor 4W100H6, ATA DISK drive
hdc: only one drive on a channel supported for tcq
hdd: only one drive on a channel supported for tcq
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda:task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda:task_no_data_intr: error=0x04 { DriveStatusError }
hda: 1667232 sectors (854 MB) w/64KiB Cache, CHS=1654/16/63, DMA
hda: hda1 hda2 hda3
hdb: max request size: 128KiB
hdb: host protected area => 1
hdb: 80418240 sectors (41174 MB) w/1916KiB Cache, CHS=79780/16/63, UDMA(33)
hdb: hdb1 hdb2 hdb3 hdb4
hdc: max request size: 1024KiB
hdc: host protected area => 1
hdc: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(33)
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13 hdc14 hdc15 hdc16 hdc17 >
hdd: max request size: 128KiB
hdd: host protected area => 1
hdd: 195711264 sectors (100204 MB) w/2048KiB Cache, CHS=194158/16/63, UDMA(33)
hdd: hdd1 < hdd5 hdd6 hdd7 hdd8 hdd9 hdd10 hdd11 hdd12 hdd13 hdd14 >
--Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Kriegfuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak!
ret =do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
SOLVED - Testing IDE-TCQ and Taskfile - doesn't work nicely:)
On Wed, 2003-06-25 01:08:13 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 12 lines · Jan-Benedict Glaw
Quoted 6 lines
On Tue, 2003-06-24 15:44:36 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 1 line
Corrected patch below...
Taking this 2nd IDE patch, my boot-up looks as shown below. I still have
Thanks for testing, it looks okay now.
Quoted 2 lines
to test the taskfile thing again, but I cannot find my girlfriends digital camera right now:)
Found the cam, downloaded any old pics, recompiled with taskfile I/O and
- nothing. 2.5.73 + your second IDE patch do work flawlessly on my old
box. The "clack clack clack" went away is if had never been
there...
So - thanks a lot for looking at my problem. Please feed your patch to Linus as it seems to actually solve (at least my) problems.
However, allow me to ask why this occured never bevore (for other people)? Do they all have only one drive? Does nobody use TCQ? Nobody with old hardware (though, your patch hasn't touched the core PIIX parts...)?
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Re: SOLVED - Testing IDE-TCQ and Taskfile - doesn't work nicely:)
Quoted 12 lines · Jan-Benedict Glaw
On Wed, 2003-06-25 01:08:13 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 10 lines · Jan-Benedict Glaw
Quoted 6 lines
On Tue, 2003-06-24 15:44:36 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 1 line
Corrected patch below...
Taking this 2nd IDE patch, my boot-up looks as shown below. I still have
Thanks for testing, it looks okay now.
Quoted 7 lines
Quoted 2 lines
Quoted 2 lines
to test the taskfile thing again, but I cannot find my girlfriends digital camera right now:)
Found the cam, downloaded any old pics, recompiled with taskfile I/O and
- nothing. 2.5.73 + your second IDE patch do work flawlessly on my old
box. The "clack clack clack" went away is if had never been
there...
:-)
Quoted 7 lines
So - thanks a lot for looking at my problem. Please feed your patch to Linus as it seems to actually solve (at least my) problems.
However, allow me to ask why this occured never bevore (for other people)? Do they all have only one drive? Does nobody use TCQ? Nobody with old hardware (though, your patch hasn't touched the core PIIX parts...)?
nobody is stupid^H^Hbrave enough to use TCQ ;-)
Thanks,
--
Bartlomiej
Quoted 7 lines
MfG, JBG
--
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Kriegfuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak!
ret =do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Re: SOLVED - Testing IDE-TCQ and Taskfile - doesn't work nicely:)
On Wed, 2003-06-25 20:44:19 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 7 lines · Jan-Benedict Glaw
Quoted 5 lines
On Wed, 2003-06-25 01:08:13 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 3 lines · Jan-Benedict Glaw
Quoted 2 lines
On Tue, 2003-06-24 15:44:36 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 6 lines
Quoted 4 lines
However, allow me to ask why this occured never bevore (for other people)? Do they all have only one drive? Does nobody use TCQ? Nobody with old hardware (though, your patch hasn't touched the core PIIX parts...)?
nobody is stupid^H^Hbrave enough to use TCQ ;-)
Well... I knew that it was, erm, brave to use it at some time (this box isn't really important - if I kill its filesystems, I'll simply re-install and recover my mirror scripts:) , but new, where 2.5.x starts to be really useable, I'd suggest to face users with upcoming problems:
CONFIG_IDE_TASKFILE_IO
It is safe to say Y to this question, in most cases.
(By the way, exactly which cases are ment?)
CONFIG_BLK_DEV_IDE_TCQ
If you have such a drive, say Y here.
CONFIG_BLK_DEV_IDE_TCQ_DEFAULT
Generally say Y here.
CONFIG_BLK_DEV_IDE_TCQ_DEPTH
You probably just want the default of 32 here.
(Default queue depth is 8, not 32...)
Right now, I'm building 2.5.73-bk3 + your 2nd patch. Let's face it:)
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Re: SOLVED - Testing IDE-TCQ and Taskfile - doesn't work nicely:)
Quoted 14 lines · Jan-Benedict Glaw
On Wed, 2003-06-25 20:44:19 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 12 lines · Jan-Benedict Glaw
Quoted 10 lines
On Wed, 2003-06-25 01:08:13 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 3 lines · Jan-Benedict Glaw
Quoted 2 lines
On Tue, 2003-06-24 15:44:36 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
However, allow me to ask why this occured never bevore (for other people)? Do they all have only one drive? Does nobody use TCQ? Nobody with old hardware (though, your patch hasn't touched the core PIIX parts...)?
Quoted 7 lines
Quoted 1 line
nobody is stupid^H^Hbrave enough to use TCQ ;-)
Well... I knew that it was, erm, brave to use it at some time (this box isn't really important - if I kill its filesystems, I'll simply re-install and recover my mirror scripts:) , but new, where 2.5.x starts to be really useable, I'd suggest to face users with upcoming problems:
I think 2.5.x is really useable.
Quoted 4 lines
CONFIG_IDE_TASKFILE_IO
It is safe to say Y to this question, in most cases.(By the way, exactly which cases are ment?)
Ehh... 3 weird bugreports (all are oopses):
- on x86_64 with 32 bit userspace when reading /proc/ide/hdx/identify
- in task_mulout_intr() on access to freed rq->bio
- "bad: scheduling while atomic"
I don't have any ideas how to find&fix these bugs...
Quoted 2 lines
CONFIG_BLK_DEV_IDE_TCQ
If you have such a drive, say Y here.
TCQ is marked (EXPERIMENTAL) but there should be warning about potential risk... :-)
Quoted 8 lines
CONFIG_BLK_DEV_IDE_TCQ_DEFAULT
Generally say Y here.
CONFIG_BLK_DEV_IDE_TCQ_DEPTH
You probably just want the default of 32 here.(Default queue depth is 8, not 32...)
Jens did some testing ages ago and 8 was optimal...
Quoted 1 line
Right now, I'm building 2.5.73-bk3 + your 2nd patch. Let's face it:)
Okay. :-)
--
Bartlomiej
Quoted 7 lines
MfG, JBG
--
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Kriegfuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak!
ret =do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Re: SOLVED - Testing IDE-TCQ and Taskfile - doesn't work nicely:)
Quoted 4 lines · Bartlomiej Zolnierkiewicz
Ehh... 3 weird bugreports (all are oopses):
- onx86_64with 32 bit userspace when reading/proc/ide/hdx/identify
- intask_mulout_intr()on access to freedrq->bio
- "bad: scheduling while atomic"
Perhaps if you can point me towards that one, i can try and give a hand
Zwane
Signature · 1 line
function.linuxpower.ca
Re: SOLVED - Testing IDE-TCQ and Taskfile - doesn't work nicely:)
In reply to Bartlomiej ZolnierkiewiczOn Wed, 2003-06-25 21:30:02 +0200, Bartlomiej Zolnierkiewicz <[email protected]> wrote in message <[email protected]>:
Quoted 4 lines · Jan-Benedict Glaw
Quoted 2 lines
Right now, I'm building 2.5.73-bk3 + your 2nd patch. Let's face it:)
Okay. :-)
2.5.73-bk3 with TCQ and Taskfile-I/O
[X] Works
Good job!
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
Quoted 69 lines · Bartlomiej Zolnierkiewicz
[ide] TCQ initialization fixes
- do not enable TCQ in
ide_init_drive(), its too early
- enable TCQ in__ide_dma_on()only ifCONFIG_BLK_DEV_IDE_TCQ_DEFAULT=ydrivers/ide/ide-dma.c | 8 ++++---- drivers/ide/ide-probe.c | 5 ----- include/linux/ide.h | 1 - 3 files changed, 4 insertions(+), 10 deletions(-)diff -puN
drivers/ide/ide-probe.c~ide-tcq-init-fixesdrivers/ide/ide-probe.cdrivers/ide/ide-probe.c renamed from drivers/ide/ide-probe.c~ide-tcq-init-fixes +0
-5@@ -983,7 +983,6 @@ static void ide_init_queue(ide_drive_t *blk_init_queue (q, do_ide_request, &ide_lock); q->queuedata =HWGROUP (drive); - drive->queue_setup =1 ;blk_queue_segment_boundary (q,0xffff );if (!hwif->rqsize)@@ -1005,10 +1004,6 @@ static void ide_init_queue(ide_drive_t *static void ide_init_drive (ide_drive_t *drive) {ide_toggle_bounce (drive,1 ); - -#ifdef CONFIG_BLK_DEV_IDE_TCQ_DEFAULT -HWIF (drive)->ide_dma_queued_on (drive); -#endif }/* diff -puN
drivers/ide/ide-dma.c~ide-tcq-init-fixesdrivers/ide/ide-dma.cdrivers/ide/ide-dma.c renamed from drivers/ide/ide-dma.c~ide-tcq-init-fixes +4
-4@@ -523,8 +523,7 @@ int __ide_dma_off_quietly (ide_drive_t *if (HWIF (drive)->ide_dma_host_off (drive))return 1 ; -if (drive->queue_setup) -HWIF (drive)->ide_dma_queued_off (drive); +HWIF (drive)->ide_dma_queued_off (drive);return 0 ; }@@ -585,8 +584,9 @@ int __ide_dma_on (ide_drive_t *drive)if (HWIF (drive)->ide_dma_host_on (drive))return 1 ; -if (drive->queue_setup) -HWIF (drive)->ide_dma_queued_on (drive); +#ifdef BLK_DEV_IDE_TCQ_DEFAULT +HWIF (drive)->ide_dma_queued_on (drive); +#endif return 0 ; }diff -puN
include/linux/ide.h~ide-tcq-init-fixesinclude/linux/ide.hinclude/linux/ide.h renamed from include/linux/ide.h~ide-tcq-init-fixes +0
-1@@ -726,7 +726,6 @@ typedef struct ide_drive_s { unsigned ata_flash : 1; /* 1=present, 0=default */ unsigned blocked : 1; /* 1=powermanagment told us not to do anything, so sleep nicely */ unsigned vdma : 1; /* 1=doing PIO over DMA 0=doing normal DMA */ - unsigned queue_setup : 1;unsigned addressing;/* : 3; * 0=28-bit * 1=48-bit
Quoted 1 line
_
Patch is nice and kills the ->queue_setup abomination, great.
Signature · 1 line
Jens Axboe
Quoted 3 lines · Bartlomiej Zolnierkiewicz
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
IMO the best rule is "enable TCQ if and only if 100% of the channel supports TCQ".
So, two drives on the same channel can do TCQ, if and only if they both support TCQ. That's a big benefit of bus release, after all, simultaneously servicing multiple drives. The device-select and service interrupt semantics are annoying but doable.
Jeff
Quoted 6 lines · Jeff Garzik
Quoted 3 lines · Bartlomiej Zolnierkiewicz
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
Quoted 7 lines
IMO the best rule is "enable TCQ if and only if 100% of the channel supports TCQ".
So, two drives on the same channel can do TCQ, if and only if they both support TCQ. That's a big benefit of bus release, after all, simultaneously servicing multiple drives. The device-select and service interrupt semantics are annoying but doable.
ide-tcq is even more restrictive now, it only enables TCQ if the drive is alone on the channel. Feel free to write the device select code if you want, I'm not mucking more with the bastard that is ide tcq.
Signature · 1 line
Jens Axboe
Quoted 3 lines · Jens Axboe
ide-tcq is even more restrictive now, it only enables TCQ if the drive is alone on the channel. Feel free to write the device select code if you want, I'm not mucking more with the bastard that is ide tcq.
hehe! I don't blame you ;-)
I plan to write the devsel code, but for my ata-scsi driver... :/ It will go into libata, which I would love to have sharing code with drivers/ide...
Jeff
The best rule is to default it off and let the end user enable regardless. Thus the default will NEVER encounter the issues seen now.
Andre Hedrick
LAD Storage Consulting Group
Quoted 24 lines · Jeff Garzik
Quoted 3 lines · Bartlomiej Zolnierkiewicz
TCQ shouldn't be enabled on hdc, you have two drives on second ide channel and current TCQ driver design allows only one drive per channel, so proper fix is to not enable TCQ :-).
IMO the best rule is "enable TCQ if and only if 100% of the channel supports TCQ".
So, two drives on the same channel can do TCQ, if and only if they both support TCQ. That's a big benefit of bus release, after all, simultaneously servicing multiple drives. The device-select and service interrupt semantics are annoying but doable.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
On Sat, 2003-06-28 19:17:53 -0700, Andre Hedrick <[email protected]> wrote in message <[email protected]>:
Quoted 3 lines
The best rule is to default it off and let the end user enable regardless. Thus the default will NEVER encounter the issues seen now.
While I was the one who initially had the "trouble", I was thankful for having a "Switch It On by Default" option. I don't exactly know what the patch did to the IDE subsystem (personally I'm not really into IDE...), but I'd unhide a problem (either my dumb drive/controller setup or a bug in Linux' IDE code) and so - one more bug down (at least from my point of view). That's a good thing, IMHO.
This *is* why I'm using 2.5.x - there's actually a chance to easily find bugs with everybody's hardware:)
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
You missed a point.
Defaulting to off means stablity for the masses.
Enduser enable is for testing to get it correct.
Regardless, it was my $0.02 for the thread.
Cheers,
Andre Hedrick
LAD Storage Consulting Group
Quoted 24 lines · Jan-Benedict Glaw
On Sat, 2003-06-28 19:17:53 -0700, Andre Hedrick <[email protected]> wrote in message <[email protected]>:
Quoted 3 lines
The best rule is to default it off and let the end user enable regardless. Thus the default will NEVER encounter the issues seen now.
While I was the one who initially had the "trouble", I was thankful for having a "Switch It On by Default" option. I don't exactly know what the patch did to the IDE subsystem (personally I'm not really into IDE...), but I'd unhide a problem (either my dumb drive/controller setup or a bug in Linux' IDE code) and so - one more bug down (at least from my point of view). That's a good thing, IMHO.
This *is* why I'm using 2.5.x - there's actually a chance to easily find bugs with everybody's hardware:)
MfG, JBG
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
On Sun, 2003-06-29 02:30:29 -0700, Andre Hedrick <[email protected]> wrote in message <[email protected]>:
Quoted 6 lines
You missed a point.
Defaulting to off means stablity for the masses.
Enduser enable is for testing to get it correct.
Regardless, it was my $0.02 for the thread.
No, I didn't. We're in 2.5.x timeline and doing early testing (esp. with "exotic" or rarely used features) is IMHO best done at early times. THis is why I did it. For now, I don't exactly care for pure stability _if_ a user can easily choose really dangerous code, esp. if it's advised as experimental, but "you should say yes" in it's help text. This is, I like to compile with many features to see where it breaks.
Not doing this means to walk through a mines field later, at 2.6.x times. That is playing minesweeper with some poor end user. No good...
MfG, JBG
Btw., that patch got merged to Linus and I'm currently running 2.5.73-bk6 with TF and TCQ enabled (in config, but gets somewhat disabled because of missing hardware of too many drives per channel) on a laptop and my (quite a bit loaded) mirror box. No problems / corruption so far:)
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));