linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@pobox.com>
To: Tejun Heo <htejun@gmail.com>
Cc: Brice Goglin <Brice.Goglin@ens-lyon.org>,
	Jens Axboe <jens.axboe@oracle.com>,
	Gregor Jasny <gjasny@googlemail.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	linux-ide@vger.kernel.org, Douglas Gilbert <dougg@torque.net>,
	monty@xiph.org
Subject: Re: 2.6.19-rc3 system freezes when ripping with cdparanoia at ioctl(SG_IO)
Date: Thu, 09 Nov 2006 09:14:16 -0500	[thread overview]
Message-ID: <455337B8.5000902@pobox.com> (raw)
In-Reply-To: <45533468.1060400@gmail.com>

Tejun Heo wrote:
> This works for most PATA ATAPI devices.  Most devices detect reversed 
> transfer and terminate the command promptly.  But this doesn't seem to 
> be true for SATA device.  Many just hang and time out commands with the 
> wrong transfer direction.  If you consider that most early SATA ATAPI 
> devices are actually PATA + bridge, this is sorta inevitable.  The 
> PATA-SATA bridge cannot issue D2H FIS to abort the command by itself. 
> It's just mirroring the status of PATA side and PATA side doesn't know 
> SATA protocol mismatch has occurred.
> 
> So, IDENTIFY w/ write-DMA protocol times out after quite some seconds. 
> This is where things go worse from bad.  SATA controllers which have 
> shadow TF registers don't handle timeout conditions very well, 
> especially when they're waiting for data transfer.  They basically hold 
> the PCI bus and hang till the transfer completes (which never happens). 
>  That's where the hard lock up comes from.
> 
> Jens, I think we need to match block sg's behavior to SCSI's.  Monty, 
> the timeout and hard lock up are due to hardware restrictions.  Kernel 
> and libata can't do much about it.  So, please find other way to detect 
> interface.


Mapping 'bidirectional' is a bit difficult.  It might be reasonable to 
interpret that as "userspace doesn't know" at lower layers, and then 
fill in a data transfer direction based on ATA command opcode.

Given that there are stupid apps/libs out there in the field with this 
behavior, even if the apps are fixed I think we are stuck with the 
stupidities.  At the very least, we could abort commands that transfer 
data in the opposite direction from indicated, based on a command opcode 
table.

	Jeff



  reply	other threads:[~2006-11-09 14:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-29 19:20 2.6.19-rc3 system freezes when ripping with cdparanoia at ioctl(SG_IO) Gregor Jasny
2006-10-29 21:31 ` Ken Moffat
2006-10-29 22:05   ` Brice Goglin
2006-10-30 11:45 ` Jens Axboe
2006-10-30 13:14   ` Gregor Jasny
2006-10-30 13:17   ` Gregor Jasny
2006-10-30 13:27     ` Jens Axboe
2006-11-09  9:46       ` Brice Goglin
2006-11-09 14:00         ` Tejun Heo
2006-11-09 14:14           ` Jeff Garzik [this message]
2006-11-09 20:13             ` Monty Montgomery
2006-11-09 15:50           ` Douglas Gilbert
2006-11-10 10:36             ` Luben Tuikov
2006-11-10 12:58               ` Douglas Gilbert
2006-11-10 20:08                 ` Luben Tuikov
2006-11-11 10:46                   ` Christoph Hellwig
2006-11-11 16:39                     ` Douglas Gilbert
2006-11-11 19:09                     ` Luben Tuikov
2006-11-14 22:52                       ` Monty Montgomery
2006-11-09 20:09           ` Monty Montgomery
2006-11-09 22:47             ` Tejun Heo
2006-11-10 16:15             ` Jens Axboe
2006-11-10 16:19               ` Brice Goglin
2006-11-10 16:23                 ` Jens Axboe
2006-11-14 12:24                   ` Brice Goglin
2006-11-14 12:29                     ` Jens Axboe
2006-11-14 12:40                       ` Brice Goglin
2006-11-14 12:50                         ` Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=455337B8.5000902@pobox.com \
    --to=jgarzik@pobox.com \
    --cc=Brice.Goglin@ens-lyon.org \
    --cc=dougg@torque.net \
    --cc=gjasny@googlemail.com \
    --cc=htejun@gmail.com \
    --cc=jens.axboe@oracle.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=monty@xiph.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).