All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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.