On 6/4/19 4:45 AM, Ming Lei wrote: > On Mon, Jun 03, 2019 at 01:38:53PM +0200, Hannes Reinecke wrote: >> On 6/3/19 11:31 AM, Ming Lei wrote:[ .. ] >>> Your RFC patch changes to allow requests with same tag submitted to driver >>> & hardware at the same time, so we should double-check if hisi_v3 hardware >>> is happy with this change. >>> >>> John, is hisi_sas v3 fine with this way? >>> >> As mentioned above, I don't think this can happen. > > Then prove where I am wrong. > > Just attach a little bcc script, which should have been done by > bpftrace easily, just not found how to pass multiple variable as key. > > 1) run the attached bcc script in another terminal > > 2) load null_blk via: > > rmmod null_blk;modprobe null_blk queue_mode=2 irqmode=2 completion_nsec=1000000 submit_queues=2 hw_queue_depth=4 > > 3) run the following fio: > fio --bs=4k --size=128G --rw=randread --direct=1 --ioengine=libaio --iodepth=16 --runtime=10 --name=fiotest --filename=/dev/nullb0 --numjobs=8 > > Then ctrl+C on the bcc script, and you will see how many requests with > same tag from different queues are handled concurrently. > > BTW, this test is run on dual core VM/Fedora 30, and bcc package is > required. > Tsk. I do get old. After revisiting the relevant patches it does look as if you are right after all. So apologies :-) Which indeed means we have to implement shared host tags first, and resurrect your original patchset. On the good side this should also reduce the memory footprint, as with that patchset we will only allocate queue_depth requests, not queue_depth * nr_hw_queues as we do now. So I guess it should be a worthwhile goal. Will be updating the patches and do some performance measurements. Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 21284 (AG Nürnberg)