From: Ming Lei <ming.lei@redhat.com>
To: linux-scsi@vger.kernel.org,
"Martin K . Petersen" <martin.petersen@oracle.com>
Cc: Michael Schmitz <schmitzmic@gmail.com>,
devel@driverdev.osuosl.org, Hannes Reinecke <hare@suse.com>,
Benjamin Block <bblock@linux.ibm.com>,
Bart Van Assche <bvanassche@acm.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, James Smart <james.smart@broadcom.com>,
"Ewan D . Milne" <emilne@redhat.com>, Jim Gill <jgill@vmware.com>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
Brian King <brking@us.ibm.com>,
Finn Thain <fthain@telegraphics.com.au>,
"Juergen E . Fischer" <fischer@norbit.de>,
Ming Lei <ming.lei@redhat.com>, Christoph Hellwig <hch@lst.de>,
Dan Carpenter <dan.carpenter@oracle.com>
Subject: [PATCH V3 00/15] use sg helper to operate scatterlist
Date: Fri, 14 Jun 2019 10:53:01 +0800 [thread overview]
Message-ID: <20190614025316.7360-1-ming.lei@redhat.com> (raw)
Hi,
Scsi MQ makes a large static allocation for the first scatter gather
list chunk for the driver to use. This is a performance headache we'd
like to fix by reducing the size of the allocation to a 2 element
array. Doing this will break the current guarantee that any driver
using SG_ALL doesn't need to use the scatterlist iterators and can get
away with directly dereferencing the array. Thus we need to update all
drivers to use the scatterlist iterators and remove direct indexing of
the scatterlist array before reducing the initial scatterlist
allocation size in SCSI.
So convert drivers to use scatterlist helper.
There are two types of scsi SGL uses:
1) operate on scsi_sglist(scmd) directly, then one local variable of
'struct scatterlist *' is involved, so the following coccinelle semantic
patch is developed for finding this type of direct sgl uses:
https://marc.info/?l=linux-scsi&m=156031374809852&w=2
2) scsi_sglist(scmd) is stored to cmd->SCp.buffer and the SGL is used
via cmd->SCp.buffer. Simple 'grep SCp.buffer' is used for finding SGL
direct uses, fortunately only the following drivers uses SCp.buffer to
store SGL:
NCR5380, aha152x, arm/, imm, pcmcia, ppa and wd33c93
And arm/ is already ready to handle chained SGL.
The 1st 9 patches are for handling type #1, and the other 6 patches
for handling type #2.
V3:
- update commit log and cover letter, most of words are from
James Bottomley
V2:
- use coccinelle semantic patch for finding direct sgl uses from
scsi command(9 drivers found)
- run 'git grep -E "SCp.buffer"' to find direct sgl uses
from SCp.buffer(6 drivers are found)
Finn Thain (1):
NCR5380: Support chained sg lists
Ming Lei (14):
scsi: vmw_pscsi: use sg helper to operate scatterlist
scsi: advansys: use sg helper to operate scatterlist
scsi: lpfc: use sg helper to operate scatterlist
scsi: mvumi: use sg helper to operate scatterlist
scsi: ipr: use sg helper to operate scatterlist
scsi: pmcraid: use sg helper to operate scatterlist
usb: image: microtek: use sg helper to operate scatterlist
staging: unisys: visorhba: use sg helper to operate scatterlist
s390: zfcp_fc: use sg helper to operate scatterlist
scsi: aha152x: use sg helper to operate scatterlist
scsi: imm: use sg helper to operate scatterlist
scsi: pcmcia: nsp_cs: use sg helper to operate scatterlist
scsi: ppa: use sg helper to operate scatterlist
scsi: wd33c93: use sg helper to operate scatterlist
drivers/s390/scsi/zfcp_fc.c | 4 +-
drivers/scsi/NCR5380.c | 41 ++++++++-----------
drivers/scsi/advansys.c | 2 +-
drivers/scsi/aha152x.c | 29 ++++++++-----
drivers/scsi/imm.c | 2 +-
drivers/scsi/ipr.c | 28 +++++++------
drivers/scsi/lpfc/lpfc_nvmet.c | 3 +-
drivers/scsi/mvumi.c | 9 ++--
drivers/scsi/pcmcia/nsp_cs.c | 4 +-
drivers/scsi/pmcraid.c | 12 +++---
drivers/scsi/ppa.c | 2 +-
drivers/scsi/vmw_pvscsi.c | 2 +-
drivers/scsi/wd33c93.c | 2 +-
.../staging/unisys/visorhba/visorhba_main.c | 9 ++--
drivers/usb/image/microtek.c | 20 ++++-----
drivers/usb/image/microtek.h | 2 +-
16 files changed, 85 insertions(+), 86 deletions(-)
--
2.20.1
next reply other threads:[~2019-06-14 2:53 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-14 2:53 Ming Lei [this message]
2019-06-14 2:53 ` [PATCH V3 01/15] scsi: vmw_pscsi: use sg helper to operate scatterlist Ming Lei
2019-06-14 2:53 ` [PATCH V3 02/15] scsi: advansys: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 03/15] scsi: lpfc: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 04/15] scsi: mvumi: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 05/15] scsi: ipr: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 06/15] scsi: pmcraid: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 07/15] usb: image: microtek: " Ming Lei
2019-06-14 5:39 ` Finn Thain
2019-06-14 6:57 ` Ming Lei
2019-06-14 2:53 ` [PATCH V3 08/15] staging: unisys: visorhba: " Ming Lei
2019-06-14 5:48 ` Greg Kroah-Hartman
2019-06-14 2:53 ` [PATCH V3 09/15] s390: zfcp_fc: " Ming Lei
2019-06-16 16:25 ` Benjamin Block
2019-06-14 2:53 ` [PATCH V3 10/15] scsi: aha152x: " Ming Lei
2019-06-14 5:27 ` Finn Thain
2019-06-14 8:17 ` Ming Lei
2019-06-14 10:36 ` Finn Thain
2019-06-17 1:14 ` Ming Lei
2019-06-14 2:53 ` [PATCH V3 11/15] scsi: imm: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 12/15] scsi: pcmcia: nsp_cs: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 13/15] scsi: ppa: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 14/15] scsi: wd33c93: " Ming Lei
2019-06-14 2:53 ` [PATCH V3 15/15] NCR5380: Support chained sg lists Ming Lei
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=20190614025316.7360-1-ming.lei@redhat.com \
--to=ming.lei@redhat.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=bblock@linux.ibm.com \
--cc=brking@us.ibm.com \
--cc=bvanassche@acm.org \
--cc=dan.carpenter@oracle.com \
--cc=devel@driverdev.osuosl.org \
--cc=emilne@redhat.com \
--cc=fischer@norbit.de \
--cc=fthain@telegraphics.com.au \
--cc=gregkh@linuxfoundation.org \
--cc=hare@suse.com \
--cc=hch@lst.de \
--cc=james.smart@broadcom.com \
--cc=jgill@vmware.com \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=schmitzmic@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox