From: Mike Snitzer <snitzer@redhat.com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org,
James.Bottomley@hansenpartnership.com, jaxboe@fusionio.com,
dm-devel@redhat.com, michaelc@cs.wisc.edu
Subject: dm-io async WRITE_SAME results in iSCSI NULL pointer [was: Re: Write same support]
Date: Thu, 16 Feb 2012 16:03:01 -0500 [thread overview]
Message-ID: <20120216210301.GA27404@redhat.com> (raw)
In-Reply-To: <20120216200202.GA27311@redhat.com>
On Thu, Feb 16 2012 at 3:02pm -0500,
Mike Snitzer <snitzer@redhat.com> wrote:
> FYI, I'll bounce a message detailing the iSCSI scatter-gather NULL
> pointer I _always_ hit with dm-io issuing async WRITE_SAME.
I developed a patch for dm-io so that the new dm-thinp target can
leverage your new WRITE SAME functionality for, hopefully, more
efficient zeroing of the disk (see: dm-io-WRITE_SAME.patch at the end of
the following patchset).
Here is the patchset I'm using ontop of Linux 3.2:
http://people.redhat.com/msnitzer/patches/upstream/dm-io-WRITE_SAME/series.html
All works great on FC (tested against NetApp 3040 LUN)... I'm using the
thinp-test-suite to test dm-thinp's use of dm_kcopyd_zero().
But testing with iSCSI, I get a NULL pointer _every_ time in the iSCSI
scatter-gather code, see:
http://people.redhat.com/msnitzer/patches/upstream/dm-io-WRITE_SAME/async-WRITE_SAME-makes-iscsi-sg-die.txt
-- in the middle of that file you'll see my 'crash' analysis of the
issue -- but that is just the NULL pointer.. no idea what the smoking
gun is that caused the iscsi_segment to become NULL.
Anyway, taking a step back... WRITE SAME is all about transfering a
single logical block, backed by a single empty_zero_page in this test
case, so I'm wondering if for some reason iSCSI's sg code is getting
confused and thinking that more pages need to be transferred than were
in the original bio's payload (but iSCSI is way beneath the bio -> SCSI
command translation... grr)
It should be noted that using your synchronous blkdev_issue_write_same()
interface works fine on the same iSCSI LUN (again NetApp 3040 LUN):
http://people.redhat.com/msnitzer/patches/upstream/dm-io-WRITE_SAME/dm-thin-use-WRITE_SAME-for-zeroing.patch
(but an dm-thinp really wants an async interface for zeroing).
Mike
p.s.
dm-io-WRITE_SAME.patch's use of dp->get_page()+bio_add_page()
accomplishes the same bio init as you do in blkdev_issue_write_same():
bio->bi_vcnt = 1;
bio->bi_phys_segments = 1;
bio->bi_io_vec->bv_page = virt_to_page(empty_zero_page);
bio->bi_io_vec->bv_offset = offset_in_page(empty_zero_page);
bio->bi_io_vec->bv_len = logical_block_size;
next prev parent reply other threads:[~2012-02-16 21:03 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-31 0:31 Write same support Martin K. Petersen
2012-01-31 0:31 ` [PATCH 1/5] block: Implement support for WRITE SAME Martin K. Petersen
2012-02-07 21:40 ` Vivek Goyal
2012-02-13 22:19 ` Martin K. Petersen
2012-02-14 8:05 ` Rolf Eike Beer
2012-02-15 15:33 ` Vivek Goyal
2012-02-16 3:29 ` Martin K. Petersen
2012-02-16 17:16 ` Vivek Goyal
2012-02-16 19:12 ` Martin K. Petersen
2012-02-08 22:50 ` Mike Snitzer
2012-02-08 23:12 ` Martin K. Petersen
2012-02-09 3:33 ` Mike Snitzer
2012-02-09 3:40 ` Mike Snitzer
2012-01-31 0:31 ` [PATCH 2/5] block: Make blkdev_issue_zeroout use " Martin K. Petersen
2012-01-31 0:31 ` [PATCH 3/5] block: ioctl to zero block ranges Martin K. Petersen
2012-01-31 0:31 ` [PATCH 4/5] scsi: Add a report opcode helper Martin K. Petersen
2012-01-31 19:53 ` Jeff Garzik
2012-01-31 20:16 ` Martin K. Petersen
2012-01-31 0:31 ` [PATCH 5/5] sd: Implement support for WRITE SAME Martin K. Petersen
2012-02-20 16:16 ` Mike Snitzer
2012-02-20 17:36 ` Martin K. Petersen
2012-02-20 18:28 ` Mike Snitzer
2012-02-03 19:15 ` Write same support Mike Snitzer
2012-02-03 19:20 ` Roland Dreier
2012-02-16 20:02 ` Mike Snitzer
2012-02-16 20:46 ` Martin K. Petersen
2012-02-16 21:09 ` Mike Snitzer
2012-02-16 21:03 ` Mike Snitzer [this message]
2012-02-16 21:25 ` dm-io async WRITE_SAME results in iSCSI NULL pointer [was: Re: Write same support] Mike Christie
2012-02-16 21:35 ` Mike Snitzer
2012-02-20 17:44 ` Martin K. Petersen
2012-02-20 18:46 ` Mike Snitzer
2012-02-20 23:44 ` Mike Snitzer
2012-02-21 0:07 ` Martin K. Petersen
2012-02-21 3:18 ` Mike Snitzer
2012-02-21 3:57 ` Martin K. Petersen
2012-02-21 6:55 ` Mike Snitzer
2012-02-21 12:31 ` Martin K. Petersen
2012-02-21 14:42 ` Mike Snitzer
2012-02-21 19:33 ` Mike Snitzer
2012-02-21 21:31 ` Martin K. Petersen
2012-02-21 23:36 ` Mike Snitzer
2012-02-21 19:47 ` Vivek Goyal
2012-02-21 19:56 ` 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=20120216210301.GA27404@redhat.com \
--to=snitzer@redhat.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=dm-devel@redhat.com \
--cc=jaxboe@fusionio.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--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 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).