On Tue, 2012-04-24 at 00:25 -0400, Christoph Hellwig wrote: > This is the basic removal of struct se_task. It does take BIDI support > into a ccount a bit, but doesn't really provide working support for it due > to lack of actually testing it. It also doesn't attempt many cleanups > that are now possible in the I/O submission, command completon and EH > code, but even without that it archives a pretty impressive ~650 LOC > removal. Hey Christoph, Apologies for the delayed followup on nice progress you've been making on this series.. So wrt to a BIDI test case, Tomo-san's sgv4_xdwriteread tool is now back online here: https://github.com/fujita/sgv4-tools Because of the nature of the current sgv4_xdwriteread zero compare op with tcm_Loop w/ transport_generic_map_mem_to_cmd() handling, it looks like we are still doing the correct SGL assignments for struct scsi_cmnd to handle incoming write payload (but not actually dispatch said payload to backend) and queue outgoing read payload back up LLD -> back out to bsg.. root@tifa:/usr/src/sgv4-tools.git# ./sgv4_xdwriteread /dev/bsg/13\:0\:1\:0 XDWRITEREAD_10 driver:0, transport:0, device:0, din_resid: 0, dout_resid: 0 root@tifa:/usr/src/sgv4-tools.git# ./sgv4_xdwriteread -e /dev/bsg/13\:0\:1\:0 XDWRITEREAD_32 driver:0, transport:0, device:0, din_resid: 0, dout_resid: 0 [140936.156656] tcm_loop_queuecommand() 13:1:0:0 got CDB: 0x53 scsi_buf_len: 8192 [140936.156669] Returning block_size: 512, sectors: 16 == 8192 for iblock object [140936.156672] Allocated se_ordered_id: 5269 for Task Attr: 0x20 on iblock [140936.156896] Incremented dev->dev_cur_ordered_id: 5269 for SIMPLE: 5269 [140936.156929] tcm_loop_queue_data_in() called for scsi_cmnd: ffff88019af50400 cdb: 0x53 [140941.332140] tcm_loop_queuecommand() 13:1:0:0 got CDB: 0x7f scsi_buf_len: 8192 [140941.332148] Returning block_size: 512, sectors: 16 == 8192 for iblock object [140941.332150] Allocated se_ordered_id: 5270 for Task Attr: 0x20 on iblock [140941.332394] Incremented dev->dev_cur_ordered_id: 5270 for SIMPLE: 5270 [140941.332426] tcm_loop_queue_data_in() called for scsi_cmnd: ffff88019af51300 cdb: 0x7f FYI, the BIDI logic this series does remove was originally a hack to support sending XDWRITEREAD_* passthrough into scsi_debug LLD using se_task, and logically separate from how transport_xor_callback() emulation is currently implemented for the virtual backend case.. So that said, I'm fine with both series of patches to go ahead and fully remove legacy usage of se_task from within target core + device backends, and only support BIDI to virtual backend export. This will certainly more testing to shake out other potential regressions, but looks reasonable enough to go for-next if there are no other objections. Nice work Christoph! --nab -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html