Re: [PATCH] qla2xxx/tcm_qla2xxx: Add qla_hw_data specific I/O workqueue offload

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 08, 2011 at 09:16:56AM +0000, Nicholas A. Bellinger wrote:
> From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> 
> This patch adds an initial conversion to cmwq using qla_tgt->qla_tgt_wq
> for I/O dispatch into qla_hw_data->qla_tgt specific context.  This includes
> removal of transport_generic_handle_cdb_map() usage, and moves
> transport_lookup_cmd_lun() into tcm_qla2xxx_do_work() process context for
> incoming descriptor dispatch.

I really do not like the model.  We already have code to offload the
command submission in qla_tgt_handle_cmd_for_atio when we can't find
an existing session.  So with this code we might do two workqueue
offloads.  In addition the existing code is there, and already well
tested given that hit it for the that case all the time.  I'd recommend
you apply my patch 3 from this weekends series instead to use that path
unconditionally, and then we can look into the next steps:

 - make it use a qla2xxx-local workqueue
 - stop holding the hardware lock around qla_tgt_send_cmd_to_target

Note that having the workqueue in qla_target is pretty much nessecary
for doing the remaining moves of target calls into user context,
including TMRs, transport_generic_handle_data and so on.

> It passes WQ_UNBOUND during alloc_workqueue() setup, and also keeps all
> target_core_mod referenced symbols within tcm_qla2xxx code in order to
> avoid an qla2xxx LLD target_core_mod dependency.

Care to explain why you use WQ_UNBOUND?  This loses a big scalability
advantage of per-cpu workqueues, and none of the reasons in the
documentation for it seem to apply here.
--
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


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux