From: Douglas Gilbert <dgilbert@interlog.com>
To: linux-scsi@vger.kernel.org
Cc: martin.petersen@oracle.com, jejb@linux.vnet.ibm.com,
hare@suse.de, bvanassche@acm.org
Subject: [PATCH v2 0/9] scsi_debug: collection of additions
Date: Sat, 8 Jan 2022 20:28:44 -0500 [thread overview]
Message-ID: <20220109012853.301953-1-dgilbert@interlog.com> (raw)
The first patch is to address possible modprobe rmmod races.
The second patch adds READ_ONCE and WRITE_ONCE on several
high frequency variables.
See the headers of patches 3 and 4.
In patch 5 use different asc/ascq codes to distiguish between
a newly added LU and a reset of an existing LU.
In patch 6 add a no_rwlock module option to bypass the
read-write locks around user data reads and writes.
Patch 7 adds sdeb_sgl_copy_sgl, sdeb_sgl_compare_sgl_idx,
sdeb_sgl_compare_sgl and sdeb_sgl_memset functions for
performing sgl to sgl copy and compare operations currently
unsupported by scatterlist.h . This patch was originally
put forward as an enhancement of scatterlist.h but failed
to gain traction. So that patch is redirected to this driver
with the "sdeb_" prefix on each function. Compiling the
driver after this patch will result in warnings that those
newly introduced static functions are not used. Since LLDs
receive and send data "up" the stack via sgl_s, using
sgl_s as the storage medium for this driver bypasses one
level of conversions (i.e. bypasses using a 'flat' array).
Patch 8 uses the new functions introduced in patch 7 to
change the internal store(s) used by this driver from big
vmalloc() allocations to sgl_s. The biggest improvement
is with the VERIFY(BYTCHK=1) performance that went from
about 20% slower than a copy operation to 50% faster (up
to a compare rate of 15 GB/s on my equipment). Before
this patch VERIFY(BYTCHK=1) needed a temporary,
potentially large, buffer for the incoming data-out
transfer. The COMPARE AND WRITE (CAW) command also benefits
from stores made of sgl_s. In addition CAW needs to know
the index of the first mismatched byte (if any).
Finally some issues have arisen in smartmontools with
SCSI log subpages. To aid in fixing this, the last patch
adds this driver's first log subpage (Environmental
Reporting).
This patchset is based on lk 5.16.0-rc8 rather than MKP's
repository (based on rc1). Fixes have been added to this
driver between rc1 and rc8 that would break a patchset
trying to target both. So the most recent rc was chosen.
Changes since v1 [sent to linux-scsi list on 20211230]
- in the first patch replace READ_ONCE() and WRITE_ONCE()
with smp_load_acquire() and smp_store_release() as
suggested by Bart
- add Tested-by: Shin'ichiro Kawasaki on patch 8
- rework prot_verify_read() to remove heap allocation;
if it failed previously the code return '-1' which
Dan Carpenter termed as "sloppy"
- rebase on rc8 (was rc7)
Douglas Gilbert (9):
scsi_debug: address races following module load
scsi_debug: strengthen defer_t accesses
scsi_debug: use task set full more
scsi_debug: refine sdebug_blk_mq_poll
scsi_debug: divide power on reset unit attention
scsi_debug: add no_rwlock parameter
scsi_debug: add sdeb_sgl_copy_sgl and friends
scsi_debug: change store from vmalloc to sgl
scsi_debug: add environmental reporting log subpage
drivers/scsi/Kconfig | 3 +-
drivers/scsi/scsi_debug.c | 1104 +++++++++++++++++++++++++++----------
2 files changed, 823 insertions(+), 284 deletions(-)
--
2.25.1
next reply other threads:[~2022-01-09 1:28 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-09 1:28 Douglas Gilbert [this message]
2022-01-09 1:28 ` [PATCH v2 1/9] scsi_debug: address races following module load Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 2/9] scsi_debug: strengthen defer_t accesses Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 3/9] scsi_debug: use task set full more Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 4/9] scsi_debug: refine sdebug_blk_mq_poll Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 5/9] scsi_debug: divide power on reset unit attention Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 6/9] scsi_debug: add no_rwlock parameter Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 7/9] scsi_debug: add sdeb_sgl_copy_sgl and friends Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 8/9] scsi_debug: change store from vmalloc to sgl Douglas Gilbert
2022-01-09 1:28 ` [PATCH v2 9/9] scsi_debug: add environmental reporting log subpage Douglas Gilbert
2022-01-25 5:38 ` [PATCH v2 0/9] scsi_debug: collection of additions Martin K. Petersen
2022-02-01 2:04 ` Martin K. Petersen
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=20220109012853.301953-1-dgilbert@interlog.com \
--to=dgilbert@interlog.com \
--cc=bvanassche@acm.org \
--cc=hare@suse.de \
--cc=jejb@linux.vnet.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.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;
as well as URLs for NNTP newsgroup(s).