On 8/17/20 8:39 PM, Don.Brace@xxxxxxxxxxxxx wrote: > Subject: Re: [PATCH RFC v7 12/12] hpsa: enable host_tagset and switch to MQ > >> We are also reconsidering changing smartpqi over to use host tags but in some preliminary performance tests, >> I found a performance regression. >> Note: I only used your V7 patches for smartpqi. >> I have not had time to determine what is causing this, but wanted to make note of this. > >> Thanks. Please note that we have been looking at many >>performances improvements since v7, and these will >> be included in v8, so maybe I can still include smartpqi in >>the v8 series and you can retest if you want. > > Sure, > Thanks for your patches > Don > Well, I had been looking at smartpqi and its tag handling, and found it no easy match with the blk-mq implementation we have in linux. (Which is actually quite curious, as both had been developed around the same time, so I would've thought that they would be similar ...) Anyhow: for smartpqi each sgl element use up one slot in the submission queue, so the total number of SQEs for one command is 1 (for the command itself) + number of sgl elements. With that the queue size is actually dynamic, and depends on the size of the commands being sent. This doesn't map easily onto blk-mq concepts, where we assume that each command consumes one SQE. So currently the smartpqi driver has its own heuristics for determining the queue depth, but I fear that this also will eat up quite some improvements we might be getting from using host_tagset. (Especially as the smartpqi driver doesn't actually _has_ a host_tagset, but rather the mapping withing the driver exposes something which looks like a host tagset ...) What I really would like to see is to update blk-mq to handle smartpqi properly; this might even be beneficial to other drivers like mpt3sas which have a similar concept (called 'chain_tracker' there). One idea would be to allocate additional tags (one for each sgl) such that the tag bitmap reflects the status of the submission queue. Maybe we can update my reserved tags patchset for that ... hmmm. Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@xxxxxxx +49 911 74053 688 SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), GF: Felix Imendörffer