From: Vladislav Bolkhovitin <vst@vlnb.net>
To: James Bottomley <James.Bottomley@suse.de>
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>,
Dirk Meister <dmeister@uni-paderborn.de>,
linux-scsi@vger.kernel.org, Chetan Loke <chetanloke@gmail.com>,
Chetan Loke <generationgnu@yahoo.com>,
scst-devel <scst-devel@lists.sourceforge.net>,
linux-kernel@vger.kernel.org,
Mike Christie <michaelc@cs.wisc.edu>,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: Re: [Scst-devel] Fwd: Re: linuxcon 2010...
Date: Tue, 24 Aug 2010 23:48:11 +0400 [thread overview]
Message-ID: <4C7421FB.2060007@vlnb.net> (raw)
In-Reply-To: <1282661876.2993.20.camel@mulgrave.site>
James Bottomley, on 08/24/2010 06:57 PM wrote:
> On Tue, 2010-08-24 at 18:41 +0400, Vladislav Bolkhovitin wrote:
>> James Bottomley, on 08/22/2010 12:43 AM wrote:
>>> Interface re-use (or at least ABI compatibility) is the whole point,
>>> it's what makes the solution a drop in replacement.
>>
>> I see now. You want ABI compatibility to keep the "contract" that no
>> kernel changes can break applications binary compatibility for unlimited
>> time.
>>
>> OK, we will write the compatibility module. It shouldn't take much time.
>>
>> But before we start, I'd like to clear 2 related questions:
>>
>> 1. How far the ABI compatibility "contract" goes? Are there cases, where
>> it isn't so strong? I'm asking, because I can recall that open-iscsi at
>> least once has broken ABI compatibility with user space tools. Was it an
>> accidental (but not corrected) mistake or was it deliberate? If the
>> latter, then, I guess, there must be some exceptions defining when ABI
>> compatibility can be not followed.
>
> I don't think it has to be complete. As long as the STGT people think
> it's good enough, that's fine by me.
Tomonori, Mike, could you comment on that, please?
>> 2. Currently STGT in the kernel is just 2 files, scsi_tgt_if.c and
>> scsi_tgt_lib.c (with headers), + ibmvstgt driver. The C files define the
>> STGT interface in question. So, if we keep ABI compatibility with the
>> new target engine, we would have to keep those 2 files included in the
>> kernel,
>
> This isn't really correct. The ABI is defined by the headers not the
> implementation.
Yes, but we on the target side would not be able to implement the ABI compatible interface without using library functions provided by those C files. Or, at least, it would be much harder.
So, would it be OK for you to keep those files?
>> which would effectively mean that STGT would stay in the kernel.
>> This would lead to the situation you are trying to avoid: 2 SCSI target
>> infrastructures in the kernel. Would it be OK?
>
> If you mean is the marketing solution of wedging two products into the
> kernel and calling it a single one going to fly, the answer is no.
I mean that if we keep those 2 files to ease our ABI compatibility effort, it would effectively mean that we would leave STGT merged. It isn't something we would create, it just would be so itself as a matter of fact. Ultimately, STGT is an user space engine. What it has in the kernel is the interface helper functions to interact with the in-kernel drivers. The simplest way to achieve the ABI compatibility is to make a backend module acting as an STGT in-target driver.
(Actually, I may not ask it, because this is the way how LIO seems[1] implemented that, which was approved on the LSF summit. I only want to make all pros and cons clear from the very beginning.)
Thanks,
Vlad
1. I wrote "seems", because currently LIO has the following code for STGT commands execution:
int stgt_do_task(se_task_t *task)
{
stgt_plugin_task_t *st = (stgt_plugin_task_t *) task->transport_req;
struct Scsi_Host *sh = task->se_dev->se_hba->hba_ptr;
struct scsi_cmnd *sc;
int tag = MSG_SIMPLE_TAG;
sc = scsi_host_get_command(sh, st->stgt_direction, GFP_KERNEL);
if (!sc) {
printk(KERN_ERR "Unable to allocate memory for struct"
" scsi_cmnd\n");
return PYX_TRANSPORT_LU_COMM_FAILURE;
}
memcpy(sc->cmnd, st->stgt_cdb, MAX_COMMAND_SIZE);
sc->sdb.length = task->task_size;
sc->sdb.table.sgl = task->task_sg;
sc->tag = tag;
BUG();
#warning FIXME: Get struct scsi_lun for scsi_tgt_queue_command()
#if 0
err = scsi_tgt_queue_command(sc, itn_id, (struct scsi_lun *)&cmd->lun,
cmd->tag);
if (err) {
printk(KERN_INFO "scsi_tgt_queue_command() failed for sc:"
" %p\n", sc);
scsi_host_put_command(sh, sc);
}
#endif
return PYX_TRANSPORT_SENT_TO_TRANSPORT;
}
which means that this pluging completely not functioning.
next prev parent reply other threads:[~2010-08-24 19:48 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-18 14:58 [Scst-devel] Fwd: Re: linuxcon 2010 Chetan Loke
2010-08-18 14:58 ` Chetan Loke
2010-08-18 15:11 ` James Bottomley
[not found] ` <AANLkTimJGxn=5kEMH68XVWqFcYG3vpfLjLjZpFGqhG_4@mail.gmail.com>
2010-08-18 15:30 ` Bart Van Assche
2010-08-18 15:30 ` Bart Van Assche
2010-08-18 16:04 ` Chetan Loke
2010-08-18 16:18 ` James Bottomley
2010-08-18 17:50 ` Vladislav Bolkhovitin
2010-08-19 1:18 ` jack wang
2010-08-19 1:18 ` jack wang
2010-08-19 21:20 ` Dirk Meister
2010-08-19 22:29 ` Nicholas A. Bellinger
2010-08-21 18:42 ` Vladislav Bolkhovitin
2010-08-21 20:25 ` Nicholas A. Bellinger
2010-08-24 18:08 ` Vladislav Bolkhovitin
2010-08-21 20:43 ` James Bottomley
2010-08-22 7:39 ` Bart Van Assche
2010-08-22 20:29 ` James Bottomley
2010-08-23 13:47 ` Joe Landman
2010-08-23 15:12 ` Bart Van Assche
2010-08-23 15:12 ` Bart Van Assche
[not found] ` <AANLkTim-M6dfLvJQnbieFqZCGG33E+-i+u_soCq2p9f1@mail.gmail.com>
2010-08-23 16:07 ` Chetan Loke
2010-08-23 18:03 ` Chetan Loke
2010-08-23 18:03 ` Chetan Loke
2010-08-24 7:25 ` Pasi Kärkkäinen
2010-08-24 7:25 ` Pasi Kärkkäinen
2010-08-24 14:43 ` Linux I/O subsystem performance (was: linuxcon 2010...) Vladislav Bolkhovitin
2010-08-24 14:43 ` Vladislav Bolkhovitin
2010-08-24 14:55 ` Matthew Wilcox
2010-08-24 17:51 ` Linux I/O subsystem performance Vladislav Bolkhovitin
2010-08-24 20:40 ` Matthew Wilcox
2010-08-24 14:55 ` [Scst-devel] Fwd: Re: linuxcon 2010 Chetan Loke
[not found] ` <4C7404C4.4040704@vlnb.net>
2010-08-24 20:31 ` Linux I/O subsystem performance (was: linuxcon 2010...) Chris Worley
2010-08-24 20:31 ` Chris Worley
2010-08-25 19:12 ` Linux I/O subsystem performance Vladislav Bolkhovitin
2010-09-16 15:05 ` Linux I/O subsystem performance (was: linuxcon 2010...) Chris Worley
2010-09-16 15:05 ` Chris Worley
2010-08-23 19:41 ` [Scst-devel] Fwd: Re: linuxcon 2010 Vladislav Bolkhovitin
2010-08-24 14:41 ` Vladislav Bolkhovitin
2010-08-24 14:51 ` Chris Weiss
2010-08-24 14:56 ` Matthew Wilcox
2010-08-25 22:20 ` Konrad Rzeszutek Wilk
2010-08-25 22:45 ` Ted Ts'o
2010-08-24 14:57 ` James Bottomley
2010-08-24 19:48 ` Vladislav Bolkhovitin [this message]
2010-08-24 21:23 ` Nicholas A. Bellinger
2010-08-26 20:11 ` Vladislav Bolkhovitin
2010-08-26 21:23 ` Nicholas A. Bellinger
2010-08-28 17:32 ` Vladislav Bolkhovitin
2010-08-28 20:47 ` Nicholas A. Bellinger
2010-08-30 20:47 ` Vladislav Bolkhovitin
2010-08-30 21:46 ` Nicholas A. Bellinger
2010-09-02 19:38 ` Vladislav Bolkhovitin
2010-09-02 19:38 ` Vladislav Bolkhovitin
2010-09-02 20:25 ` Nicholas A. Bellinger
2010-09-05 20:18 ` Dmitry Torokhov
2010-09-05 21:50 ` Nicholas A. Bellinger
2010-09-05 23:13 ` Mark Deneen
2010-09-06 0:12 ` Nicholas A. Bellinger
2010-09-06 0:58 ` Mark Deneen
2010-09-06 1:34 ` Nicholas A. Bellinger
2010-09-06 5:04 ` Dmitry Torokhov
2010-09-05 23:41 ` Dmitry Torokhov
2010-09-05 23:59 ` Nicholas A. Bellinger
2010-09-06 4:56 ` Dmitry Torokhov
2010-09-06 10:39 ` James Bottomley
2010-09-06 11:02 ` Bart Van Assche
2010-09-06 11:02 ` Bart Van Assche
2010-09-06 11:27 ` James Bottomley
2010-09-06 15:26 ` Vladislav Bolkhovitin
2010-09-06 21:47 ` Vladislav Bolkhovitin
2010-09-06 21:55 ` Nicholas A. Bellinger
2010-09-06 22:14 ` david
2010-09-07 0:44 ` Dmitry Torokhov
2010-09-07 3:45 ` Chetan Loke
2010-09-07 6:15 ` Bart Van Assche
2010-09-07 6:08 ` Bart Van Assche
2010-09-07 6:26 ` Dmitry Torokhov
2010-09-07 6:29 ` Hannes Reinecke
2010-09-07 6:45 ` Bart Van Assche
2010-09-07 13:20 ` Vladislav Bolkhovitin
2010-09-07 20:14 ` Vladislav Bolkhovitin
2010-09-07 20:14 ` Vladislav Bolkhovitin
2010-09-06 21:16 ` Greg KH
2010-09-06 17:28 ` Chetan Loke
2010-09-06 17:28 ` Chetan Loke
2010-09-06 21:52 ` Vladislav Bolkhovitin
2010-09-06 21:52 ` Vladislav Bolkhovitin
2010-08-20 13:46 ` Ruben Laban
2010-08-18 17:51 ` Chetan Loke
2010-08-18 16:19 ` Bart Van Assche
2010-08-18 16:19 ` Bart Van Assche
2010-08-18 16:28 ` Joe Landman
2010-08-18 17:52 ` Vladislav Bolkhovitin
2010-08-18 15:12 ` Chetan Loke
2010-08-18 17:52 ` Vladislav Bolkhovitin
-- strict thread matches above, loose matches on Subject: below --
2010-08-20 17:40 Ari Lemmke
2010-08-16 16:20 Fwd: Re: [Scst-devel] " Vladislav Bolkhovitin
2010-08-17 20:30 ` James Bottomley
2010-08-18 17:52 ` Vladislav Bolkhovitin
2010-08-18 20:43 ` James Bottomley
2010-08-21 18:51 ` Vladislav Bolkhovitin
2010-08-21 20:38 ` James Bottomley
2010-08-22 22:10 ` [Scst-devel] Fwd: " Gennadiy Nerubayev
2010-08-22 22:10 ` Gennadiy Nerubayev
2010-08-23 16:59 ` James Bottomley
2010-08-23 17:44 ` Bart Van Assche
2010-08-23 17:44 ` Bart Van Assche
2010-08-23 17:58 ` James Bottomley
2010-08-23 20:11 ` Bart Van Assche
2010-08-23 20:11 ` Bart Van Assche
2010-08-23 20:21 ` James Bottomley
2010-08-23 19:40 ` Vladislav Bolkhovitin
2010-08-23 20:38 ` James Bottomley
2010-08-24 10:32 ` Bart Van Assche
2010-08-24 10:32 ` Bart Van Assche
2010-08-24 13:01 ` Chris Weiss
2010-08-24 13:01 ` Chris Weiss
2010-08-24 19:53 ` Vladislav Bolkhovitin
2010-08-23 19:40 ` Vladislav Bolkhovitin
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=4C7421FB.2060007@vlnb.net \
--to=vst@vlnb.net \
--cc=James.Bottomley@suse.de \
--cc=chetanloke@gmail.com \
--cc=dmeister@uni-paderborn.de \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=generationgnu@yahoo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=nab@linux-iscsi.org \
--cc=scst-devel@lists.sourceforge.net \
/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.