All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH-v4 0/6] target/vhost/iscsi: Add per-cpu ida tag pre-allocation for v3.12
@ 2013-08-27 20:11 Nicholas A. Bellinger
  2013-08-27 20:11 ` [PATCH-v4 1/6] idr: Percpu ida Nicholas A. Bellinger
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Nicholas A. Bellinger @ 2013-08-27 20:11 UTC (permalink / raw)
  To: target-devel
  Cc: lkml, Michael S. Tsirkin, Asias He, Kent Overstreet,
	Andrew Morton, Jens Axboe, Tejun Heo, Ingo Molnar, Andi Kleen,
	Christoph Lameter, Nicholas Bellinger

From: Nicholas Bellinger <nab@linux-iscsi.org>

Hi folks,

This is an updated -v4 series for adding tag pre-allocation support of
target fabric descriptor memory, utilizing Kent's latest per-cpu ida
bits.

The first patch is a standalone version of per-cpu-ida, seperate from
the full idr rewrite from Kent that is still being discussed.  Jens has
also expressed interest in a blk-mq conversion to use these per-cpu-ida
primatives, so getting this piece merged for v3.12 would make life easier
for both of us.  ;)

The second patch includes target-core setup of se_sess->sess_cmd_map +
se_sess->sess_tag_pool resources at session creation time, using
fabric independent code in transport_init_session_tags().

The third patch is the initial conversion of vhost-scsi fabric code
to use per-cpu ida logic for obtaining a new tcm_vhost_cmd descriptor
via vhost_scsi_get_tag() during vhost_work_fn_t->handle_kick() ->
vhost_scsi_handle_vq() callback execution.

The forth patch is a vhost-scsi change that adds pre-allocation of
per tcm_vhost_cmd descriptor scatterlist + user-space page pointer
memory, that allows the last two fast-path allocations to be dropped
from tcm_vhost_submission_work() -> vhost_scsi_map_to_sgl() fast-path
execution.

The fifth patch converts iscsi/iser-target to use allocations based on
iscsit_transport->priv_size within iscsit_allocate_cmd(), instead of
using an embedded isert_cmd->iscsi_cmd.  This makes the conversion to
percpu-ida pre-allocation easier.

And the sixth patch enables iscsi-target to use pre-allocation logic for
per-cpu session tag pooling with internal ida_alloc() + ida_free() calls
based upon the saved iscsi_cmd->se_cmd.map_tag id.

v4 changes:

  - Fix tags.c reference in percpu_ida_init (akpm)
  - Add transport_alloc_session_tags() for fabrics that need early
    transport_init_session()
  - Fix bug with SessionType=Discovery in iscsi_target_locate_portal()

Please review as v3.12 material.

Thank you,

--nab

Kent Overstreet (1):
  idr: Percpu ida

Nicholas Bellinger (5):
  target: Add transport_init_session_tags using per-cpu ida
  vhost/scsi: Convert to per-cpu ida_alloc + ida_free command map
  vhost/scsi: Add pre-allocation for tv_cmd SGL + upages memory
  iscsi/iser-target: Convert to command priv_size usage
  iscsi-target: Convert to per-cpu ida_alloc + ida_free command map

 drivers/infiniband/ulp/isert/ib_isert.c      |  114 ++++------
 drivers/infiniband/ulp/isert/ib_isert.h      |    2 +-
 drivers/target/iscsi/iscsi_target.c          |   16 +--
 drivers/target/iscsi/iscsi_target.h          |    1 -
 drivers/target/iscsi/iscsi_target_configfs.c |    2 +-
 drivers/target/iscsi/iscsi_target_core.h     |    3 +-
 drivers/target/iscsi/iscsi_target_nego.c     |   28 ++-
 drivers/target/iscsi/iscsi_target_util.c     |   41 ++--
 drivers/target/target_core_transport.c       |   48 ++++
 drivers/vhost/scsi.c                         |  132 ++++++++---
 include/linux/idr.h                          |   53 +++++
 include/target/iscsi/iscsi_transport.h       |    8 +-
 include/target/target_core_base.h            |    5 +
 include/target/target_core_fabric.h          |    3 +
 lib/idr.c                                    |  316 +++++++++++++++++++++++++-
 15 files changed, 616 insertions(+), 156 deletions(-)

-- 
1.7.2.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-08-28 19:17 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-27 20:11 [PATCH-v4 0/6] target/vhost/iscsi: Add per-cpu ida tag pre-allocation for v3.12 Nicholas A. Bellinger
2013-08-27 20:11 ` [PATCH-v4 1/6] idr: Percpu ida Nicholas A. Bellinger
2013-08-27 20:43   ` Andrew Morton
2013-08-27 20:58     ` Nicholas A. Bellinger
2013-08-28 19:17     ` Kent Overstreet
2013-08-27 20:11 ` [PATCH-v4 2/6] target: Add transport_init_session_tags using per-cpu ida Nicholas A. Bellinger
2013-08-27 20:11 ` [PATCH-v4 3/6] vhost/scsi: Convert to per-cpu ida_alloc + ida_free command map Nicholas A. Bellinger
2013-08-27 20:11 ` [PATCH-v4 4/6] vhost/scsi: Add pre-allocation for tv_cmd SGL + upages memory Nicholas A. Bellinger
2013-08-27 20:11 ` [PATCH-v4 5/6] iscsi/iser-target: Convert to command priv_size usage Nicholas A. Bellinger
2013-08-27 20:11 ` [PATCH-v4 6/6] iscsi-target: Convert to per-cpu ida_alloc + ida_free command map Nicholas A. Bellinger

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.