On 05/02/2016 01:35 AM, Hannes Reinecke wrote:
On 05/01/2016 04:44 AM, Douglas Gilbert wrote:
Add submit_queue parameter (minimum and default: 1; maximum:
nr_cpu_ids) that controls how many queues are built, each with
their own lock and in_use bit vector. Add statistics parameter
which is default on.
Signed-off-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
---
drivers/scsi/scsi_debug.c | 680 +++++++++++++++++++++++++++++-----------------
1 file changed, 426 insertions(+), 254 deletions(-)
Two general questions for this:
- Why do you get rid of the embedded command payload?
Where's the benefit of allocating the commands yourself?
- Wouldn't it be better to move to a per-cpu structure per queue?
Each queue will be tacked to a CPU anyway, so you could be using
per-cpu structures. Otherwise you'll run into synchronization
issues, and any performance gain you might get from scsi-mq is
lost as you to synchronize on the lower level.
With submit_queues == nr_cpu_ids the block layer will ensure that the
each submit queue is always run on the same CPU core. This means that
there is a high chance that sdebug_queue.qc_lock will be present in the
L1 cache and hence that the locking overhead will be minimal.
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html