alistair23-linux/drivers/target
Nicholas Bellinger 5f544cfac9 tcm_fc: Convert to per-cpu command map pre-allocation of ft_cmd
This patch converts tcm_fc to use transport_init_session_tags()
pre-allocation logic for struct ft_cmd descriptors using per-cpu
session tag pooling in order to effectively avoid memory allocation
+ release for each received I/O.

It adds percpu_ida_alloc() in ft_recv_cmd() to obtain an tag and
locate ft_cmd from se_sess->sess_cmd_map[], and percpu_ida_free()
in ft_free_cmd() to release the tag based upon se_cmd->map_tag id.

It also uses a TCM_FC_DEFAULT_TAGS value of 512, that puts the
per se_sess->sess_cmd_map allocation at ~360K on 64-bit.

v2 changes:

  - Handle possible tag < 0 failure with GFP_ATOMIC

Cc: Mark Rustad <mark.d.rustad@intel.com>
Cc: Robert Love <robert.w.love@intel.com>
Cc: Kent Overstreet <kmo@daterainc.com>
Signed-off-by: Nicholas Bellinger <nab@daterainc.com>
2013-10-01 21:40:55 -07:00
..
iscsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2013-09-12 16:11:45 -07:00
loopback target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
sbp target: make queue_tm_rsp() return void 2013-07-07 18:36:53 -07:00
tcm_fc tcm_fc: Convert to per-cpu command map pre-allocation of ft_cmd 2013-10-01 21:40:55 -07:00
Kconfig sbp-target: Initial merge of firewire/ieee-1394 target mode support 2012-05-09 15:25:17 -07:00
Makefile target: Add support for EXTENDED_COPY copy offload emulation 2013-09-10 16:48:43 -07:00
target_core_alua.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_alua.h target: pass sense_reason as a return value 2012-11-06 20:55:46 -08:00
target_core_configfs.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_device.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_fabric_configfs.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_fabric_lib.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_file.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_file.h target/file: Bump FD_MAX_SECTORS to 2048 to handle 1M sized I/Os 2013-03-19 17:24:28 -07:00
target_core_hba.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_iblock.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_iblock.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_internal.h target: Add Third Party Copy (3PC) bit in INQUIRY response 2013-09-10 16:48:46 -07:00
target_core_pr.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_pr.h target: Alter core_pr_dump_initiator_port for ease of use 2013-06-14 00:04:31 -07:00
target_core_pscsi.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_pscsi.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_rd.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_rd.h target/rd: Add ramdisk bit for NULLIO operation 2013-05-11 16:22:39 -07:00
target_core_sbc.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_spc.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2013-09-12 16:11:45 -07:00
target_core_stat.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_tmr.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_tpg.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_transport.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2013-09-12 16:11:45 -07:00
target_core_ua.c target: Update copyright ownership/year information to 2013 2013-09-10 20:23:36 -07:00
target_core_ua.h target: pass sense_reason as a return value 2012-11-06 20:55:46 -08:00
target_core_xcopy.c target: remove unused including <linux/version.h> 2013-09-10 16:48:53 -07:00
target_core_xcopy.h target: Add support for EXTENDED_COPY copy offload emulation 2013-09-10 16:48:43 -07:00