Re: [PATCH] [Target_Core_Mod/pSCSI]: Add block/blk-map.c:blk_rq_map_kern_sg()usage

From: Tejun Heo
Date: Wed Apr 29 2009 - 21:43:10 EST


Hello, Nicholas.

Nicholas A. Bellinger wrote:
...
> Once Tejun's patches for block/blk-map.c:blk_rq_map_kern_sg() have
> been included upstream, the legacy pscsi_map_task_SG() will be
> removed and blk-map will become the preferred method for accessing
> struct scatterlist -> struct scsi_device for SCSI target operations.
> For now, I have created a blk-map branch in lio-core-2.6.git with
> LINUX_USE_NEW_BLK_MAP=1 and left LINUX_USE_NEW_BLK_MAP=0 in branch
> master.

Hmm... I don't think the patch will go in as-is although there seem to
be some places which can make use of sg mapping interface (including
OSD). Currently there are following problems.

* Single kmalloc()ing the whole bio has higher chance of failing if
the bvec becomes very large.

* Boaz is worried about performance implications with going back and
forth between sgl and bvec.

In longer term, I think where we should be headed is...

* Expand sgl( or t) such that 1. it uses separate list for cpu and dma
addresses so that it doesn't take up twice as much space
unnecessarily, 2. sgl's can be easily chained (alerady somewhat
there) and thus we don't have to worry about chaining in higher
layer.

* Replace bvec with sgl in bio.

Dunno what we should do in the meantime tho.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/