From: Mike Snitzer <snitzer@redhat.com>
To: "Kani, Toshimitsu" <toshi.kani@hpe.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-nvdimm@ml01.01.org" <linux-nvdimm@ml01.01.org>,
"agk@redhat.com" <agk@redhat.com>,
"linux-raid@vger.kernel.org" <linux-raid@vger.kernel.org>,
"viro@zeniv.linux.org.uk" <viro@zeniv.linux.org.uk>,
"dan.j.williams@intel.com" <dan.j.williams@intel.com>,
"axboe@kernel.dk" <axboe@kernel.dk>,
"ross.zwisler@linux.intel.com" <ross.zwisler@linux.intel.com>,
"dm-devel@redhat.com" <dm-devel@redhat.com>,
sandeen@redhat.com
Subject: Re: [PATCH 0/6] Support DAX for device-mapper dm-linear devices
Date: Mon, 20 Jun 2016 15:40:26 -0400 [thread overview]
Message-ID: <20160620194026.GA21657@redhat.com> (raw)
In-Reply-To: <1466446861.3504.243.camel@hpe.com>
On Mon, Jun 20 2016 at 2:31pm -0400,
Kani, Toshimitsu <toshi.kani@hpe.com> wrote:
> On Mon, 2016-06-20 at 14:00 -0400, Mike Snitzer wrote:
> >
> > I rebased your patches on linux-dm.git's 'for-next' (which includes what
> > I've already staged for the 4.8 merge window). And I folded/changed
> > some of the DM patches so that there are only 2 now (1 for DM core and 1
> > for dm-linear). Please see the 4 topmost commits in my 'wip' here:
> >
> > http://git.kernel.org/cgit/linux/kernel/git/snitzer/linux.git/log/?h=wip
> >
> > Feel free to pick these patches up to use as the basis for continued
> > work or re-posting of this set.. either that or I could post them as v2
> > on your behalf.
> >
> > As for testing, I've verified that basic IO works to a pmem-based DM
> > linear device and that mixed table types are rejected as expected.
>
> Great! I will send additional patch, add DAX support to dm-stripe, on top of
> these once I finish my testing.
I did some further testing and am seeing some XFS corruption when
testing a DM linear device that spans multiple pmem devices. I created
2 partitions ontop of /dev/pmem0 (which I created using the howto from
https://nvdimm.wiki.kernel.org). Then I did:
# pvcreate /dev/pmem0p1
# pvcreate /dev/pmem0p2
# vgcreate pmem /dev/pmem0p1 /dev/pmem0p2
# lvcreate -L 2.9G -n lv pmem
# lsblk /dev/pmem0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
pmem0 259:0 0 6G 0 disk
├─pmem0p1 259:1 0 1G 0 part
│ └─pmem-lv 253:4 0 2.9G 0 lvm
└─pmem0p2 259:2 0 2G 0 part
└─pmem-lv 253:4 0 2.9G 0 lvm
# dmsetup table pmem-lv
0 4186112 linear 259:2 2048
4186112 1900544 linear 259:1 2048
# mkfs.xfs /dev/pmem/lv
# mount -o dax -t xfs /dev/pmem/lv /mnt/dax
[11452.212034] XFS (dm-4): DAX enabled. Warning: EXPERIMENTAL, use at your own risk
[11452.220323] XFS (dm-4): Mounting V4 Filesystem
[11452.226526] XFS (dm-4): Ending clean mount
# dd if=/dev/zero of=/mnt/dax/meh bs=1024K oflag=direct
[11729.754671] XFS (dm-4): Metadata corruption detected at xfs_agf_read_verify+0x70/0x120 [xfs], xfs_agf block 0x45a808
[11729.766423] XFS (dm-4): Unmount and run xfs_repair
[11729.771774] XFS (dm-4): First 64 bytes of corrupted metadata buffer:
[11729.778869] ffff8800b8038000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[11729.788582] ffff8800b8038010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[11729.798293] ffff8800b8038020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[11729.808002] ffff8800b8038030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
[11729.817715] XFS (dm-4): metadata I/O error: block 0x45a808 ("xfs_trans_read_buf_map") error 117 numblks 8
When this XFS corruption occurs corruption then also manifests in lvm2's
metadata:
# vgremove pmem
Do you really want to remove volume group "pmem" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume lv? [y/n]: y
Incorrect metadata area header checksum on /dev/pmem0p1 at offset 4096
WARNING: Failed to write an MDA of VG pmem.
Incorrect metadata area header checksum on /dev/pmem0p2 at offset 4096
WARNING: Failed to write an MDA of VG pmem.
Failed to write VG pmem.
Incorrect metadata area header checksum on /dev/pmem0p2 at offset 4096
Incorrect metadata area header checksum on /dev/pmem0p1 at offset 4096
If I don't use XFS, and only issue IO directly to the /dev/pmem/lv, I
don't see this corruption.
next prev parent reply other threads:[~2016-06-20 19:40 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-13 22:21 [PATCH 0/6] Support DAX for device-mapper dm-linear devices Toshi Kani
2016-06-13 22:21 ` [PATCH 1/6] genhd: Add GENHD_FL_DAX to gendisk flags Toshi Kani
2016-06-13 22:21 ` [PATCH 2/6] block: Check GENHD_FL_DAX for DAX capability Toshi Kani
2016-06-13 22:21 ` [PATCH 3/6] dm: Add dm_blk_direct_access() for mapped device Toshi Kani
2016-06-13 22:21 ` [PATCH 4/6] dm-linear: Add linear_direct_access() Toshi Kani
2016-06-13 22:21 ` [PATCH 5/6] dm, dm-linear: Add dax_supported to dm_target Toshi Kani
2016-06-13 22:21 ` [PATCH 6/6] dm: Enable DAX support for mapper device Toshi Kani
2016-06-13 22:57 ` [PATCH 0/6] Support DAX for device-mapper dm-linear devices Mike Snitzer
2016-06-20 18:00 ` Mike Snitzer
2016-06-20 18:31 ` Kani, Toshimitsu
2016-06-20 19:40 ` Mike Snitzer [this message]
2016-06-20 19:52 ` Mike Snitzer
2016-06-20 20:11 ` Kani, Toshimitsu
2016-06-20 21:28 ` Kani, Toshimitsu
2016-06-20 22:22 ` Mike Snitzer
2016-06-21 13:41 ` Mike Snitzer
2016-06-21 15:44 ` Kani, Toshimitsu
2016-06-21 15:50 ` Kani, Toshimitsu
2016-06-21 16:25 ` Dan Williams
2016-06-21 16:35 ` Kani, Toshimitsu
2016-06-21 16:45 ` Dan Williams
2016-06-21 16:56 ` Kani, Toshimitsu
2016-06-21 18:17 ` Mike Snitzer
2016-06-22 17:44 ` Kani, Toshimitsu
2016-06-22 19:15 ` Dan Williams
2016-06-22 20:16 ` Kani, Toshimitsu
2016-06-22 22:38 ` Mike Snitzer
2016-06-22 22:59 ` Kani, Toshimitsu
2016-06-13 23:18 ` Dan Williams
2016-06-13 23:59 ` Kani, Toshimitsu
2016-06-14 0:02 ` Dan Williams
2016-06-14 7:30 ` Dan Williams
2016-06-14 13:50 ` Jeff Moyer
2016-06-14 15:41 ` Mike Snitzer
2016-06-14 18:00 ` Kani, Toshimitsu
2016-06-14 20:19 ` Jeff Moyer
2016-06-15 1:46 ` Mike Snitzer
2016-06-15 2:07 ` Dan Williams
2016-06-15 2:35 ` Mike Snitzer
2016-06-14 15:53 ` Kani, Toshimitsu
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=20160620194026.GA21657@redhat.com \
--to=snitzer@redhat.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=dan.j.williams@intel.com \
--cc=dm-devel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvdimm@ml01.01.org \
--cc=linux-raid@vger.kernel.org \
--cc=ross.zwisler@linux.intel.com \
--cc=sandeen@redhat.com \
--cc=toshi.kani@hpe.com \
--cc=viro@zeniv.linux.org.uk \
/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).