Bug 5290

Summary: ide-scsi: burning broken in all kernels >2.6.9
Product: IO/Storage Reporter: Sebastian Kemper (sebastian_ml)
Component: SCSIAssignee: Mike Anderson (andmike)
Status: REJECTED WILL_NOT_FIX    
Severity: high CC: akpm, axboe, bunk, bzolnier, jejb
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.13.2 Subsystem:
Regression: --- Bisected commit-id:

Description Sebastian Kemper 2005-09-21 08:20:09 UTC
Most recent kernel where this bug did not occur: 2.6.9
Distribution: Gentoo
Hardware Environment: Sempron 2400+, Shuttle AN35N  (NForce2), TSSTcorpCD/DVDW
TS-H552U, ATAPI CD/DVD-ROM drive (dvd writer)
Software Environment: dvd+rw-tools-5.21.4.10.8
Problem Description: Whenever trying to burn a disc the burning app stalls.
After a while the whole system comes to a grinding halt.
I can burn fine without ide-scsi. But I still need ide-scsi emulation anyway and
burning should work.
To test with verion of the kernel introduced the bug I installed all kernels
from 2.6.7 up to 2.6.13.2. Burning with ide-scsi worked in 2.6.7, 2.6.8 (as
root) and 2.6.9. All later kernels are affected.

Here are the changes related to ide-scsi in 2.6.10 mentioned in its Changelog:

<hch@lst.de>
	[PATCH] avoid obsolete APIs in ide-scsi
	
	Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

<bzolnier@trik.(none)>
	[ide] ide-scsi: simplify+speedup DMA support
	
	* add hwif->sg_mapped flag
	* add idescsi_map_sg() converting scsi_cmd->sg into
	  hwif->sg_table (this removes need for rq->bio)
	* remove code (de)allocating rq->bio
	
	Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

<axboe@suse.de>
	[PATCH] ide-scsi bad queuecommand return
	
	ide-scsi completes a command but returns ownership to the mid layer.
	
	Signed-off-by: Jens Axboe <axboe@suse.de>
	Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>



Steps to reproduce: Get a kernel 2.6.10 or later and try burning a disc. E.g.
"growisofs -dvd-compat -Z /dev/sr0 -J -r /some/dir".

#############################################################################
WARNING: /dev/dvdrw already carries isofs!
About to execute 'mkisofs -J -r /data/sk/rip/Doors | builtin_dd of=/dev/dvdrw
obs=32k seek=0'
Unknown file type (unallocated) /data/sk/rip/Doors/.. - ignoring and
continuing./dev/dvdrw: restarting DVD+RW format...
:-( LUN is impossible to bear with...
#############################################################################
Ok, that one didn't even try :)
Next try:

##############################################################################
WARNING: /dev/dvdrw already carries isofs!
About to execute 'mkisofs -J -r /data/sk/rip/Doors | builtin_dd of=/dev/dvdrw
obs=32k seek=0'
Unknown file type (unallocated) /data/sk/rip/Doors/.. - ignoring and continuing.

###############################################################################

I'll better push "Commit" before my system freezes ;-)

Thanks

Sebastian
Comment 1 Andrew Morton 2005-09-21 10:21:13 UTC
Guys, lots of people seem to still use ide-scsi and it's quite busted.

Is there some way in which we can make it simply unavailable for things
like CDROMS?   Bind it to the ide-tape driver and to nothing else,
stop misleading people?   Or fix it?
Comment 2 Sebastian Kemper 2005-09-21 10:38:15 UTC
Hello,

please don't remove it yet. Some of us want to use it for CDDA extraction. IDE
simply can't beat ide-scsi there yet (sometimes using ide just makes cdparanoia
stall whereas ide-scsi works fine; also some of use need it for Wine).

Sebastian
Comment 3 Jens Axboe 2005-09-22 02:27:50 UTC
Fixing ide-cd for the remaining cases would be the best option. ide-scsi already
prints a warning if attached to a CD device:

ide-scsi is deprecated for cd burning! Use ide-cd and give dev=/dev/hdX as device

I have no motivation to work on ide-scsi anymore.
Comment 4 Bartlomiej Zolnierkiewicz 2005-09-22 03:08:59 UTC
Sebastian, could you narrow down the bug to the specific -rc version and then to
a snapshot version?

http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.10-rc*.bz2
http://kernel.org/pub/linux/kernel/v2.6/snapshots/old/patch-2.6.10-*.bz2

Thanks!

[ Or is there a better method to track pre-git-era regressions, Andrew? ]
Comment 5 Sebastian Kemper 2005-09-22 03:52:36 UTC
Hi Bartlomiej!

Will do.

S.
Comment 6 Sebastian Kemper 2005-09-22 05:21:30 UTC
Hi!

I installed 2.6.9 and it worked. Then I patched it to -rc1 and it didn't work.
So then I went from 2.6.9 incrementally to 2.6.9-bk4. That's where it doesn't
work anymore.

2.6.9-bk3 works
(http://kernel.org/pub/linux/kernel/v2.6/snapshots/old/patch-2.6.9-bk3.bz2)
2.6.9-bk4 doesn't work
(http://kernel.org/pub/linux/kernel/v2.6/snapshots/old/patch-2.6.9-bk4.bz2)

I hope this helps a little. If there's more to try just tell me.

Cheers

S.
Comment 7 Sebastian Kemper 2005-09-22 05:23:09 UTC
Oh, I catched some syslog messages, maybe they're a pointer in the right direction:

Sep 22 14:05:29 mean_machine cdrom: sr0: mmc-3 profile capable, current profile: 1Ah
Sep 22 14:06:36 mean_machine hdc: DMA timeout retry Sep 22 14:06:36 mean_machine
hdc: timeout waiting for DMA
Sep 22 14:06:36 mean_machine hdc: status timeout: status=0xd0 { Busy }
Sep 22 14:06:36 mean_machine hdc: status timeout: error=0x40LastFailedSense
0x04Sep 22 14:06:36 mean_machine hdc: drive not ready for command
Sep 22 14:06:36 mean_machine hdc: status timeout: status=0xd0 { Busy }
Sep 22 14:06:36 mean_machine hdc: status timeout: error=0x40LastFailedSense 0x04
Sep 22 14:06:36 mean_machine hdc: drive not ready for command
Sep 22 14:06:36 mean_machine hdc: status timeout: status=0xd0 { Busy }
Sep 22 14:06:36 mean_machine hdc: status timeout: error=0x40LastFailedSense
0x04Sep 22 14:06:36 mean_machine hdc: drive not ready for command
Sep 22 14:06:36 mean_machine hdc: status timeout: status=0xd0 { Busy }
Sep 22 14:06:36 mean_machine hdc: status timeout: error=0x40LastFailedSense
0x04Sep 22 14:06:36 mean_machine hdc: drive not ready for command
Sep 22 14:06:36 mean_machine ide-scsi: No active request in idescsi_eh_reset
Sep 22 14:06:36 mean_machine scsi: Device offlined - not ready after error
recovery: host 0 channel 0 id 8 lun 0
Sep 22 14:06:36 mean_machine SCSI error : <0 0 8 0> return code = 0x2
Sep 22 14:06:36 mean_machine scsi0 (8:0): rejecting I/O to offline device
Sep 22 14:06:36 mean_machine scsi0 (8:0): rejecting I/O to offline device
Sep 22 14:06:36 mean_machine SCSI error: host 0 id 8 lun 0 return code =
4000000Sep 22 14:06:36 mean_machine    Sense class 0, sense error 0, extended
sense 0

Cheers

S.
Comment 8 Bartlomiej Zolnierkiewicz 2005-09-22 05:30:55 UTC
Answering my own question:

there is bkcvs git repo:
http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=summary
Comment 9 Bartlomiej Zolnierkiewicz 2005-09-22 05:44:47 UTC
If you are going to use git bkcvs tree you can use git-bisect

http://linux.yyz.us/git-howto.html
http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html
http://www.livejournal.com/users/kernelslacker/22371.html
Comment 10 Andrew Morton 2005-09-22 11:58:16 UTC
bugme-daemon@kernel-bugs.osdl.org wrote:
>
>  [ Or is there a better method to track pre-git-era regressions, Andrew? ]

Not really.  bisecton searching with BK is really hard and the client is
payware now anwyay.

Sometimes you can go back to the relevant -mm and bsearch through the
broken-out patches, but that probably won't work very well if it was an IDE
patch, as IDE patches tend not to be present in -mm kenrels in broken out
form.


Comment 11 Sebastian Kemper 2005-10-14 21:44:10 UTC
Hi all!   
   
I'd like to just close this bug now.  
 
I appreciate the effort that has been put into the possibility to use all 
cd-roms with IDE instead of having to use an emulation layer (ide-scsi) for 
burning. So getting rid off ide-scsi seems perfectly natural and I don't really 
want to object that. So no hard feelings.  Can you guys please close this 
report in case you're okay with it? 
  
Thanks for your input!  
  
Cheers  
  
Sebastian