From: Jens Axboe <jens.axboe@oracle.com>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: linux-scsi@vger.kernel.org, dougg@torque.net,
michaelc@cs.wisc.edu, James.Bottomley@HansenPartnership.com
Subject: Re: [PATCH 0/5] convert sg to use the block layer
Date: Tue, 26 Aug 2008 09:56:28 +0200 [thread overview]
Message-ID: <20080826075627.GU20055@kernel.dk> (raw)
In-Reply-To: <1219716654-27827-1-git-send-email-fujita.tomonori@lab.ntt.co.jp>
On Tue, Aug 26 2008, FUJITA Tomonori wrote:
> This patchset converts sg to use the block layer functions. That is,
> sg doesn't use scsi_execute_async() any more. This is a part of the
> overdue task to remove scsi_req_map_sg.
>
> I tested this patchset with sg v3 and the old interface (struct
> sg_header) via SG_IO (v3) and the vfs API.
>
>
> Doug,
>
> 1. I don't demote the sg driver's GFP_ATOMIC to GFP_KERNEL. sg always
> uses GFP_ATOMIC as before.
>
> 2. I don't remove GFP_DMA allocation. As before, sg allocates reserved
> pages with GFP_DMA (sfp->low_dma case).
>
> 3. I keep the reserved buffer per struct sg_fd as before.
>
> 4. I use high-order page allocation for reserved buffer as before. sg
> works well with HBAs that have the limitation of the number of sg
> entries.
>
> 5. I think that you were concern about the overhead of the block layer
> functions. But if you look at scsi_execute_async() that sg uses now,
> you can find that scsi_execute_async() uses the block layer functions
> internally. So the current sg incurs the overhead (if such overhead
> exists).
>
>
> Jens,
>
> I keep the block API changes to a minimum (I might need more changes
> for st/osst but I'd like to progress step by step). I did only two
> things.
>
> 1. I add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov.
>
> 2. I introduces struct rq_map_data holding pages. sg puts
> pre-allocated pages to it and passes it to bio_copy_user_iov(). The
> current users of bio_copy_user_iov simply passes NULL. blk_rq_map_user
> and blk_rq_map_user_iov take a pointer to struct rq_map_data and in
> the end bio_copy_user_iov gets it.
>
>
> This patchset against the for-linus branch in Jens' tree + the two
> patches for 2.6.27:
>
> http://marc.info/?l=linux-kernel&m=121964251911717&w=2
> http://marc.info/?l=linux-kernel&m=121964241911611&w=2
>
> After Jens rebases the for-2.6.28 brach, I'll update this patchset
> too.
Thanks a lot for doing this work, it's been pending for a long time.
I've rebased for-2.6.28 on top of for-linus to ease this integration, so
if you could resend the patchset then I can add it.
--
Jens Axboe
next prev parent reply other threads:[~2008-08-26 7:56 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-26 2:10 [PATCH 0/5] convert sg to use the block layer FUJITA Tomonori
2008-08-26 2:10 ` [PATCH 1/5] block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov FUJITA Tomonori
2008-08-26 2:10 ` [PATCH 2/5] block: introduce struct rq_map_data to use reserved pages FUJITA Tomonori
2008-08-26 2:10 ` [PATCH 3/5] sg: convert the non-data path to use the block layer FUJITA Tomonori
2008-08-26 2:10 ` [PATCH 4/5] sg: convert the direct IO " FUJITA Tomonori
2008-08-26 2:10 ` [PATCH 5/5] sg: convert the indirect " FUJITA Tomonori
2008-08-26 16:35 ` [PATCH 1/5] block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov Christoph Hellwig
2008-08-27 1:30 ` FUJITA Tomonori
2008-08-26 7:56 ` Jens Axboe [this message]
2008-08-27 2:14 ` [PATCH 0/5] convert sg to use the block layer FUJITA Tomonori
2008-08-27 7:10 ` Jens Axboe
2008-08-27 23:26 ` FUJITA Tomonori
2008-08-28 6:51 ` Jens Axboe
2008-08-28 7:07 ` Jens Axboe
2008-08-28 7:17 ` [PATCH 1/5] block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov FUJITA Tomonori
2008-08-28 7:17 ` [PATCH 2/5] block: introduce struct rq_map_data to use reserved pages FUJITA Tomonori
2008-08-28 7:17 ` [PATCH 3/5] sg: convert the non-data path to use the block layer FUJITA Tomonori
2008-08-28 7:17 ` [PATCH 4/5] sg: convert the direct IO " FUJITA Tomonori
2008-08-28 7:17 ` [PATCH 5/5] sg: convert the indirect " FUJITA Tomonori
2008-08-28 7:34 ` [PATCH 1/5] block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov Jens Axboe
2008-08-28 7:32 ` [PATCH 0/5] convert sg to use the block layer FUJITA Tomonori
2008-08-27 20:14 ` Douglas Gilbert
2008-08-27 23:26 ` FUJITA Tomonori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080826075627.GU20055@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=dougg@torque.net \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.