From: Christoph Hellwig <hch@lst.de>
To: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Cc: Christoph Hellwig <hch@lst.de>,
linux-iscsi-target-dev@googlegroups.com,
target-devel <target-devel@vger.kernel.org>,
linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH 39/42] target: Call transport_new_cmd instead of adding to cmd queue
Date: Wed, 1 Jun 2011 06:09:45 +0200 [thread overview]
Message-ID: <20110601040945.GB15488@lst.de> (raw)
In-Reply-To: <1306840694.8193.206.camel@haakon2.linux-iscsi.org>
On Tue, May 31, 2011 at 04:18:14AM -0700, Nicholas A. Bellinger wrote:
> I very much agree with these points, and moving to workqueues for TCM
> v4.1 (mainline v3.1) for these reasons makes alot of sense to me. I
> need to get a better idea of how this will actually look, but am eager
> to move ahead..
I think the first step would be to move split the se_task execution
from the current thread into a workqueue. That would also help with
making the file backend scale much better. If it wasn't for head of queue
semantics this would be almost trivial - just embedd a work_struct in
every task and queue it up to the work queue, which handles concurrency.
I'm not entirely sure how to handle head of queue semantics correctly,
maybe just adding a pointer to pending head of queue tasks to the
se_dev and executing those first might work.
Btw, I can't fully make sense of the current task execution, so
here's a few questions:
- why do we have separate __transport_execute_tasks and
transport_execute_tasks, or rather why is it safe to use
__transport_execute_tasks transport_processing_thread
without the checks for shutting down?
- what is the point of the transport_generic_process_write wrapper?
- why does transport_generic_new_cmd call transport_execute_tasks
for reads, but for writes we leave it to the ->write_pending
method which only calls transport_execute_tasks for some of
the fabrics? Note that with the current code transport_generic_new_cmd
might not get called from the fabric thread and thus stall the
caller - it might make sense switch to calling transport_generic_handle_data
for that case.
next prev parent reply other threads:[~2011-06-01 4:09 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1306523240-15543-1-git-send-email-agrover@redhat.com>
2011-05-27 22:15 ` [PATCH 0/42 RESEND+NEW] Target updates for May 27 Nicholas A. Bellinger
2011-05-27 22:35 ` Christoph Hellwig
2011-05-27 23:39 ` Nicholas A. Bellinger
2011-05-28 7:43 ` Christoph Hellwig
2011-05-28 19:09 ` Nicholas A. Bellinger
2011-05-29 2:23 ` Andy Grover
2011-05-30 12:56 ` Christoph Hellwig
[not found] ` <1306523240-15543-11-git-send-email-agrover@redhat.com>
2011-05-31 7:08 ` [PATCH 10/42] target: Rewrite transport_init_task_sg() Nicholas A. Bellinger
2011-05-31 21:04 ` Andy Grover
2011-05-31 21:08 ` Christoph Hellwig
2011-06-01 0:33 ` Nicholas A. Bellinger
[not found] ` <1306523240-15543-38-git-send-email-agrover@redhat.com>
2011-05-31 9:00 ` [PATCH 37/42] target/iscsi: Do not use t_mem_list anymore Nicholas A. Bellinger
[not found] ` <1306523240-15543-40-git-send-email-agrover@redhat.com>
2011-05-31 9:32 ` [PATCH 39/42] target: Call transport_new_cmd instead of adding to cmd queue Nicholas A. Bellinger
2011-05-31 9:48 ` Christoph Hellwig
2011-05-31 10:10 ` Nicholas A. Bellinger
2011-05-31 10:22 ` Christoph Hellwig
2011-05-31 11:22 ` Nicholas A. Bellinger
2011-05-31 10:17 ` Christoph Hellwig
2011-05-31 11:18 ` Nicholas A. Bellinger
2011-06-01 4:09 ` Christoph Hellwig [this message]
2011-06-04 2:33 ` Nicholas A. Bellinger
2011-06-04 14:18 ` Christoph Hellwig
[not found] ` <1306523240-15543-42-git-send-email-agrover@redhat.com>
2011-05-31 9:58 ` [PATCH 41/42] target/iscsi: remove unsolicited_data_comp completion Nicholas A. Bellinger
[not found] ` <1306523240-15543-43-git-send-email-agrover@redhat.com>
2011-05-31 10:59 ` [PATCH 42/42] target/file: Alloc iov[] off the stack Nicholas A. Bellinger
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=20110601040945.GB15488@lst.de \
--to=hch@lst.de \
--cc=linux-iscsi-target-dev@googlegroups.com \
--cc=linux-scsi@vger.kernel.org \
--cc=nab@linux-iscsi.org \
--cc=target-devel@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.