From: Tejun Heo <tj@kernel.org>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Jeff Garzik <jeff@garzik.org>,
IDE/ATA development list <linux-ide@vger.kernel.org>,
linux-scsi <linux-scsi@vger.kernel.org>,
brking@linux.vnet.ibm.com, Mark Lord <liml@rtr.ca>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Jens Axboe <jens.axboe@oracle.com>
Subject: Re: [RFC] Separating out libata out of SCSI (finally)
Date: Sat, 21 Jun 2008 08:47:56 +0900 [thread overview]
Message-ID: <485C41AC.5010303@kernel.org> (raw)
In-Reply-To: <1213993737.3443.35.camel@localhost.localdomain>
Hello, James.
James Bottomley wrote:
> On Fri, 2008-06-20 at 13:06 +0900, Tejun Heo wrote:
>> Hello, all.
>>
>> This item was on TODO list for years now. People all agree that it's
>> necessary but it always had relatively low priority probably because
>> it's a bit difficult and isn't really necessary to make disks and
>> optical drives work.
>>
>> Anyways, I think it's about time to take some action as SAS-ATA
>> integration (Brian, sorry about staying so silent about this for long
>> time, I was following the threads but couldn't really think of a quick
>> solution) and other ATA specific things including link power
>> management and bunch of other deferred ones due to lack of proper
>> sysfs interface or high level driver (parallel probing, parallel
>> resume).
>>
>> Currently, my plan is...
>>
>> * Move high level driver handling to request_queue.
>
> Actually, I already did quite a lot of that here:
>
> commit 7f9a6bc4e9d59e7fcf03ed23f60cd81ca5d80b65
> Author: James Bottomley <James.Bottomley@steeleye.com>
> Date: Sat Aug 4 10:06:25 2007 -0500
>
> [SCSI] move ULD attachment into the prep function
>
> But there's still more to be done. The way I was thinking of it was
> some type of protocol label (as in a ULD spits out protocols, like SCSI
> or ATA) and then passes them to a LLD which uses libraries (what libata
> and the scsi mid layer become) to process them.
That was what I was thinking too in a similar way PC commands are
carried. There are things to think about tho like splitting single
request to multiple translated commands.
>> * Implement queue quiescing and other state management on request_queue.
>> * Implement block_queue_group which...
>> - Handles command scheduling.
>> - Handles grouped queue quiescing and EH handling
>
> There's the beginnings of this in Jens' unmerged block timers work
Great, thanks for the pointer.
>> In the process, I'm planning to remove ata_host requirement and break
>> down libata EH into actions and sequencers so that SAS can use them
>> easily.
>>
>> The biggest problem is how to keep userland happy. hdX -> sdX
>> transition was painful enough and I have a strong feeling that
>> everyone will come after and hunt down us if we try something like sdX
>> -> bdX now. :-)
>
> In theory mounting by label or ID should have fixed a lot of this.
Now that all the distros and users went through it once, maybe it's
easier second time around but I think it's best to minimize the chance
of breakage. One transition was painful enough.
> However, if we need to head off a revolt, the sdX allocation algorithm
> can be placed into it's own module so both sd and a ULD ata driver could
> use it ...
Yeap, that was what I was thinking. Separating out sdX allocation
algorithm and making it the disk device node allocation logic such that
/dev/sdX are the universal disk nodes, which is 90% true these days anyway.
> Could you, perhaps, make the port multipler visible in this as a new
> device, a bit like we do today for SAS expanders?
I was thinking about doing...
ata_link/P:0/P:0 : 1st fan-out
/P:1/P:1 : 2nd fan-out
/P:2/P:2 : 3rd fan-out
...
/P:15/P:15 : port multiplier
which is pretty much the internal representation. Do you think there's
need for a separate PMP level inbetween?
>> The SCSI side of interface will remain as functional as now as it will
>> go through the same libata SAT layer.
>
> Actually, surely we can mostly dump the SAT layer? libsas should be
> made capable of taking ATA protocol packets straight from your ULD ATA
> driver and sending them out.
Maybe in a long long time but the SAT layer will need to stay there for
compatibility for now. ie. programs which use lsscsi to locate ATA
devices and using matching /dev/sgX to issue SAT commands should keep
working.
> I could see us still needing it as an optional component so we can send
> SCSI SG_IO to ATA devices.
And for compatibility. We can definitely make it optional.
>> So, what do you guys think?
>
> I think the devil will be in the details, but that it certainly won't be
> obvious until the conversion is actually tried.
Alright, thanks for your comments.
--
tejun
prev parent reply other threads:[~2008-06-20 23:47 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <485B2CC6.6070201@kernel.org>
2008-06-20 19:41 ` [RFC] Separating out libata out of SCSI (finally) Brian King
2008-06-20 20:28 ` James Bottomley
2008-06-20 22:41 ` Jeff Garzik
2008-06-20 23:50 ` Tejun Heo
2008-06-23 21:04 ` Greg Freemyer
2008-06-23 21:11 ` James Bottomley
2008-06-23 21:56 ` Felix Miata
2008-06-24 8:30 ` Boaz Harrosh
2008-06-24 14:42 ` James Bottomley
2008-06-24 14:58 ` Greg Freemyer
2008-06-24 15:13 ` Felix Miata
2008-06-24 14:59 ` Tejun Heo
2008-06-24 15:42 ` Felix Miata
2008-06-24 15:49 ` Tejun Heo
2008-06-24 16:27 ` Felix Miata
2008-06-24 16:35 ` Tejun Heo
2008-06-24 16:54 ` Alan Cox
2008-06-20 23:47 ` Tejun Heo [this message]
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=485C41AC.5010303@kernel.org \
--to=tj@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=brking@linux.vnet.ibm.com \
--cc=jeff@garzik.org \
--cc=jens.axboe@oracle.com \
--cc=liml@rtr.ca \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.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 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.