All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: brking@linux.vnet.ibm.com, linux-scsi@vger.kernel.org,
	thlin@linux.vnet.ibm.com, linux-ide@vger.kernel.org,
	miltonm@bga.com, Tejun Heo <htejun@gmail.com>
Subject: Re: [PATCH 1/1] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices
Date: Mon, 02 Jun 2008 14:11:15 -0400	[thread overview]
Message-ID: <484437C3.8020306@garzik.org> (raw)
In-Reply-To: <1212429428.3369.45.camel@localhost.localdomain>

James Bottomley wrote:
> The quickest way seems to be to break the scsi_host <-> ata_port link by
> mapping scsi_host <-> ata_host instead.

Correct for newer controllers... not desirable for older master/slave


> Legacy controllers with only a
> single port can keep the apparent 1:1 mapping (we can even keep the
> hostdata stuff).

Not sure what you mean by this


> Unfortunately, the standard way of doing this is via
> the transport classes, but as long as you have a pointer from the port
> to the host and from the device to the port (which you do) it should be
> possible.

I've always been open to an ATA transport class and thought that was the 
best way to go long term.  But I confess to not knowing the best way to 
implement that goal in concrete terms.


> The downside I can see is that qc_defer handling changes non trivially
> because of this, but there don't seem to be many other issues.

There are a lot of little details that are easily fixable.

The main detail is not breaking queueing for master/slave. 
Master/slave, if you recall, _requires_ one-shost-per-port because it 
relies on scsi queueing to handle the balancing between master/slave. 
We set can_queue to 1, and for the 2-device case -- master and slave 
present -- SCSI does the heavy lifting to ensure proper arbitration.

Adding support for NCQ and qc_defer made it a bit easier to change the 
master/slave setup, though.

The other reason why we use one-short-per-port on master/slave is that, 
in many respects, each legacy IDE port really can behave like a 
completely separate controller, each port with its own interrupts and 
independent reset logic.

Thus ATA really has two models:  1-port-1-host and N-ports-1-host.

[meta:  I'm not disagreeing with you here, just explaining how all this 
came about...]


> The ideal (for us at least) would be to completely separate port
> operations from host operations, because libsas really wants to control
> the host and attach the port only to SATA devices.

Agreed, I've wanted to move in that direction for a while.

	Jeff




  reply	other threads:[~2008-06-02 18:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <12124164141515-patch-mail.ibm.com>
2008-06-02 16:08 ` [PATCH 1/1] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices Jeff Garzik
2008-06-02 16:27   ` Brian King
2008-06-02 16:45     ` James Bottomley
2008-06-02 17:43       ` Jeff Garzik
2008-06-02 17:57         ` James Bottomley
2008-06-02 18:11           ` Jeff Garzik [this message]
2008-06-02 18:51             ` Brian King
2008-06-02 18:54               ` Jeff Garzik
2008-06-02 19:39                 ` James Bottomley
2008-06-02 20:27                   ` Brian King
2008-06-02 19:35             ` James Bottomley
2008-06-02 19:53               ` Alan Cox
2008-07-11 18:37 Brian King
  -- strict thread matches above, loose matches on Subject: below --
2008-06-02 14:20 Brian King
2008-06-02 14:20 Brian King

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=484437C3.8020306@garzik.org \
    --to=jeff@garzik.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=brking@linux.vnet.ibm.com \
    --cc=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=miltonm@bga.com \
    --cc=thlin@linux.vnet.ibm.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.