On Wed, Mar 20, 2013 at 10:01:19PM +0000, Chayan Biswas wrote:
> Got it! It is fixed now!!
> 
> Just one line fix, like last time. The drive capacity is 1 more than the
> value returned by READ_CAPACITY. Since the value we were setting was not a
> multiple of 4K, all the I/O were coming  in the lowest accessible size of 512
> bytes.  
> 
> Sumant gave me the idea to explore this angle and see what capacity we are
> setting. Earlier, I created a dummy block driver (ramdrive - sbull) of 1024
> blocks and found it always gets 4K IO. Changing the size to 1023 made us get
> 512 byte I/O.  
> 
> I am going to push the changes to github.

Great!

Didn't I ask you before if the nvme drive and the sop drive were the same size? 
;-)

-- steve


> 
> Thanks,
> Chayan
> 
> > -----Original Message-----
> > From: scame...@beardog.cce.hp.com
> > [mailto:scame...@beardog.cce.hp.com]
> > Sent: Wednesday, March 20, 2013 2:59 PM
> > To: linux-kernel@vger.kernel.org
> > Cc: stephenmcame...@gmail.com; scame...@beardog.cce.hp.com; Chayan
> > Biswas; elli...@hp.com
> > Subject: Question about make_request_fn based block drivers
> >
> >
> > When running mke2fs against the make_request_fn based block driver
> > I'm working on, I'm seeing only single-block bios.  Other such drivers
> > (e.g. nvme) are getting, for example, 4k bios coming in from the same
> > mke2fs command.
> >
> > mke2fs /dev/sop0
> >
> > This is on a 3.9-rc1 kernel.
> >
> > I've tried setting:
> >
> >       blk_queue_max_hw_sectors(rq, 2048);
> >       blk_queue_max_segments(rq, 32);
> >       blk_queue_io_opt(rq, 4096);
> >       blk_queue_io_min(rq, 4096);
> >       blk_queue_physical_block_size(rq, 4096);
> >       blk_queue_logical_block_size(h->rq, 512);
> >       blk_queue_physical_block_size(h->rq, 4096);
> >
> > all to no avail.
> >
> > If I do this:
> >
> >       dd if=/dev/sop0 of=/dev/null bs=4k iflag=direct
> >
> > with that, I can get 4k bios coming in to the make_request_fn.
> >
> > Driver source is here: https://github.com/HPSmartStorage/scsi-over-pcie
> > (still a work in progress -- that source doesn't do all the blk_queue_*
> > settings mentioned above, those are just the things I've tried.)
> >
> > In /sys/block/sop0/queue...
> >
> > [scameron@localhost queue]$ for x in *
> > > do
> > > echo ===== $x ======
> > > cat $x
> > > done
> > ===== add_random ======
> > 1
> > ===== discard_granularity ======
> > 0
> > ===== discard_max_bytes ======
> > 0
> > ===== discard_zeroes_data ======
> > 0
> > ===== hw_sector_size ======
> > 512
> > ===== iostats ======
> > 1
> > ===== logical_block_size ======
> > 512
> > ===== max_hw_sectors_kb ======
> > 1024
> > ===== max_integrity_segments ======
> > 0
> > ===== max_sectors_kb ======
> > 512
> > ===== max_segments ======
> > 32
> > ===== max_segment_size ======
> > 65536
> > ===== minimum_io_size ======
> > 4096
> > ===== nomerges ======
> > 2
> > ===== nr_requests ======
> > 128
> > ===== optimal_io_size ======
> > 4096
> > ===== physical_block_size ======
> > 4096
> > ===== read_ahead_kb ======
> > 128
> > ===== rotational ======
> > 0
> > ===== rq_affinity ======
> > 1
> > ===== scheduler ======
> > none
> > ===== write_same_max_bytes ======
> > 0
> > [scameron@localhost queue]$
> >
> > Any ideas what I'm missing to get I/O's bigger than 1 block to come in?
> >
> > Thanks,
> >
> > -- steve
> 
> 
> ________________________________
> 
> PLEASE NOTE: The information contained in this electronic mail message is 
> intended only for the use of the designated recipient(s) named above. If the 
> reader of this message is not the intended recipient, you are hereby notified 
> that you have received this message in error and that any review, 
> dissemination, distribution, or copying of this message is strictly 
> prohibited. If you have received this communication in error, please notify 
> the sender by telephone or e-mail (as shown above) immediately and destroy 
> any and all copies of this message in your possession (whether hard copies or 
> electronically stored copies).
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to