From: Douglas Gilbert <dougg@torque.net>
To: Mike Christie <michaelc@cs.wisc.edu>
Cc: jens.axboe@oracle.com, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 0/2] convert sg to use block layer helpers
Date: Fri, 09 Feb 2007 11:52:34 -0500 [thread overview]
Message-ID: <45CCA6D2.10008@torque.net> (raw)
In-Reply-To: <1171010063.3713.26.camel@max>
Mike Christie wrote:
> sg duplicates a lot of block layer dio and copying code. The block layer
> is missing some things like mmap helpers and a way to support sg and
> st's reserve buffer. The next two patches move move functionality from
> sg to the block layer so later st and osst can use it, and then coverts
> sg to use the block layer helper.
>
> The goal is to kill scsi_execute_async and friends and covert the ULDs
> to use the block layer functions directly. This is nice because
> scsi_execute_async sucks and it actually duplicates block layer code,
> and in the end the scsi layer does not have to do any bio processing
> (which irks Jens :)), and we have common code for all ULDs.
>
> The patches were made over Jens's bsg branch in his block layer git tree
> on kernel.org. Sorry for the large patches. The sg conversion patch rips
> out alot of code duplicated in the block layer and the patch to add some
> missing functionality to the block layer has conversions to bsg, tgt,
> etc so git bisect works on it.
Mike,
Might I suggest ripping all the scatter gather list
handling out of the block layer and putting it in
a library (a bit like libata). That way when the
block layer paradigm doesn't apply, we don't lose
all the useful things that have been put in there.
OSD and char devices (e.g. SSC, SES, wlun, security)
are not block devices in any reasonable sense. It
would be good to get away from "devices" that need
a "/dev/" or even a sysfs representation. A REPORT
LUNS well known LU is only needed during a LU
discovery process on a target. So if that is done
from the user space why do we need a "/dev" or
sysfs entry hanging around clogging up the device
space?
Pushing SCSI pass-through functionality further and
further up the stack diminishes its utility and may
lead to a re-introduction of useful pass-throughs
at a lower level (actually there are some already there).
Think about a SCSI INQUIRY command, it is implicit
"head of queue" which means it should bypass all
the block layer queuing and other impediments. It can
be sent to logical units that don't even exist!
Task management functions should not be queued.
SMP functions should not be queued. And so it goes
on.
Doug Gilbert
next prev parent reply other threads:[~2007-02-09 16:52 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-09 8:34 [PATCH 0/2] convert sg to use block layer helpers Mike Christie
2007-02-09 16:52 ` Douglas Gilbert [this message]
2007-02-09 17:29 ` Jens Axboe
2007-02-09 18:37 ` Mike Christie
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=45CCA6D2.10008@torque.net \
--to=dougg@torque.net \
--cc=jens.axboe@oracle.com \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
/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.