[ndctl PATCH 1/2] test/dax.sh: Make dax.sh more robust vs small namespaces
If the namespace returned by test/dax-dev is too small ext4 may default to a 1K block-size. A 1K block-size precludes dax operation, so force a 4K block-size in all cases. Signed-off-by: Dan Williams --- test/dax.sh |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/dax.sh b/test/dax.sh index 45c2027494e8..44bc6436a4a9 100755 --- a/test/dax.sh +++ b/test/dax.sh @@ -68,7 +68,7 @@ json=$($NDCTL list -N -n $dev) eval $(json2var <<< "$json") rc=1 -mkfs.ext4 /dev/$blockdev +mkfs.ext4 -b 4096 /dev/$blockdev mount /dev/$blockdev $MNT -o dax fallocate -l 1GiB $MNT/$FILE run_test $LINENO @@ -80,7 +80,7 @@ eval $(json2var <<< "$json") [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 #note the blockdev returned from ndctl create-namespace lacks the /dev prefix -mkfs.ext4 /dev/$blockdev +mkfs.ext4 -b 4096 /dev/$blockdev mount /dev/$blockdev $MNT -o dax fallocate -l 1GiB $MNT/$FILE run_test $LINENO ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
[ndctl PATCH 2/2] test/dax.sh: Split into ext4 and xfs tests
Given the test can fail based on the fs make it a passed in parameter and split the tests. Signed-off-by: Dan Williams --- test/Makefile.am |3 +- test/dax-ext4.sh |1 + test/dax-xfs.sh |1 + test/dax.sh | 101 +++--- 4 files changed, 62 insertions(+), 44 deletions(-) create mode 12 test/dax-ext4.sh create mode 12 test/dax-xfs.sh diff --git a/test/Makefile.am b/test/Makefile.am index 84474d080252..829146d5da74 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -46,7 +46,8 @@ TESTS +=\ blk-ns \ pmem-ns \ dax-dev \ - dax.sh \ + dax-ext4.sh \ + dax-xfs.sh \ device-dax \ device-dax-fio.sh \ mmap.sh \ diff --git a/test/dax-ext4.sh b/test/dax-ext4.sh new file mode 12 index ..da4ec437a92a --- /dev/null +++ b/test/dax-ext4.sh @@ -0,0 +1 @@ +dax.sh \ No newline at end of file diff --git a/test/dax-xfs.sh b/test/dax-xfs.sh new file mode 12 index ..da4ec437a92a --- /dev/null +++ b/test/dax-xfs.sh @@ -0,0 +1 @@ +dax.sh \ No newline at end of file diff --git a/test/dax.sh b/test/dax.sh index 44bc6436a4a9..3933107920a9 100755 --- a/test/dax.sh +++ b/test/dax.sh @@ -59,6 +59,56 @@ run_test() { fi } +run_ext4() { + mkfs.ext4 -b 4096 /dev/$blockdev + mount /dev/$blockdev $MNT -o dax + fallocate -l 1GiB $MNT/$FILE + run_test $LINENO + umount $MNT + + # convert pmem to put the memmap on the device + json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev) + eval $(json2var <<< "$json") + [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 + #note the blockdev returned from ndctl create-namespace lacks the /dev prefix + + mkfs.ext4 -b 4096 /dev/$blockdev + mount /dev/$blockdev $MNT -o dax + fallocate -l 1GiB $MNT/$FILE + run_test $LINENO + umount $MNT + json=$($NDCTL create-namespace -m raw -f -e $dev) + + eval $(json2var <<< "$json") + [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 + true +} + +run_xfs() { + mkfs.xfs -f -d su=2m,sw=1,agcount=2 -m reflink=0 /dev/$blockdev + mount /dev/$blockdev $MNT -o dax + fallocate -l 1GiB $MNT/$FILE + run_test $LINENO + umount $MNT + + # convert pmem to put the memmap on the device + json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev) + eval $(json2var <<< "$json") + [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 + mkfs.xfs -f -d su=2m,sw=1,agcount=2 -m reflink=0 /dev/$blockdev + + mount /dev/$blockdev $MNT -o dax + fallocate -l 1GiB $MNT/$FILE + run_test $LINENO + umount $MNT + # revert namespace to raw mode + + json=$($NDCTL create-namespace -m raw -f -e $dev) + eval $(json2var <<< "$json") + [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 + true +} + set -e mkdir -p $MNT trap 'err $LINENO cleanup' ERR @@ -68,48 +118,13 @@ json=$($NDCTL list -N -n $dev) eval $(json2var <<< "$json") rc=1 -mkfs.ext4 -b 4096 /dev/$blockdev -mount /dev/$blockdev $MNT -o dax -fallocate -l 1GiB $MNT/$FILE -run_test $LINENO -umount $MNT - -# convert pmem to put the memmap on the device -json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev) -eval $(json2var <<< "$json") -[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 - -#note the blockdev returned from ndctl create-namespace lacks the /dev prefix -mkfs.ext4 -b 4096 /dev/$blockdev -mount /dev/$blockdev $MNT -o dax -fallocate -l 1GiB $MNT/$FILE -run_test $LINENO -umount $MNT - -json=$($NDCTL create-namespace -m raw -f -e $dev) -eval $(json2var <<< "$json") -[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 - -mkfs.xfs -f -d su=2m,sw=1,agcount=2 -m reflink=0 /dev/$blockdev -mount /dev/$blockdev $MNT -o dax -fallocate -l 1GiB $MNT/$FILE -run_test $LINENO -umount $MNT - -# convert pmem to put the memmap on the device -json=$($NDCTL create-namespace -m fsdax -M dev -f -e $dev) -eval $(json2var <<< "$json") -[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 - -mkfs.xfs -f -d su=2m,sw=1,agcount=2 -m reflink=0 /dev/$blockdev -mount /dev/$blockdev $MNT -o dax -fallocate -l 1GiB $MNT/$FILE -run_test $LINENO -umount $MNT - -# revert namespace to raw mode -json=$($NDCTL create-namespace -m raw -f -e $dev) -eval $(json2var <<< "$json") -[ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 +if [ $(basename $0) = "dax-ext4.sh" ]; then + run_ext4 +elif [ $(basename $0) = "dax-xfs.sh" ]; then + run_xfs +else + run_ext4 + run_xfs +fi exit 0 ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
[GIT PULL] dax fix for v5.4-rc5
Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/dax-fix-5.4-rc5 ...to receive a regression fix for v5.4-rc5. It has appeared in a -next release with no reported issues, and picked up reviews from the regular dax contributors. --- The following changes since commit 4f5cafb5cb8471e54afdc9054d973535614f7675: Linux 5.4-rc3 (2019-10-13 16:37:36 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/dax-fix-5.4-rc5 for you to fetch changes up to 6370740e5f8ef12de7f9a9bf48a0393d202cd827: fs/dax: Fix pmd vs pte conflict detection (2019-10-22 22:53:02 -0700) dax fix 5.4-rc5 - Fix a performance regression that followed from a fix to the conversion of the fsdax implementation to the xarray. v5.3 users report that they stop seeing huge page mappings on an application + filesystem layout that was seeing huge pages previously on v5.2. Dan Williams (1): fs/dax: Fix pmd vs pte conflict detection fs/dax.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl patch 3/4] query_fw_finish_status: get rid of redundant variable
On Fri, 2019-10-25 at 15:21 -0700, Ira Weiny wrote: > How about this patch instead? Untested. > > Ira Not a big deal, but just a quick note - if you include a scissors line here, I can easily apply it via git am --scissors --8<-- Otherwise this looks good in principle. I've already got Jeff's original (less intrusive) patch queued for v67 - maybe we can rebase this to be its own refactoring patch, and get some testing etc. for 68? > > From 24511b6a9f1b5e5c9e36c70ef6a03da5100cf4c7 Mon Sep 17 00:00:00 2001 > From: Ira Weiny > Date: Fri, 25 Oct 2019 15:16:13 -0700 > Subject: [PATCH] ndctl: Clean up loop logic in query_fw_finish_status > > This gets rid of a redundant variable as originally pointed out by Jeff > Moyer[1] > > Also, while we are here change the printf's to fprintf(stderr, ...) > > [1] https://patchwork.kernel.org/patch/11199557/ > > Suggested-by: Jeff Moyer > Signed-off-by: Ira Weiny > --- > ndctl/dimm.c | 142 +-- > 1 file changed, 70 insertions(+), 72 deletions(-) > > diff --git a/ndctl/dimm.c b/ndctl/dimm.c > index 5e6fa19bab15..84de014e93d6 100644 > --- a/ndctl/dimm.c > +++ b/ndctl/dimm.c > @@ -682,7 +682,6 @@ static int query_fw_finish_status(struct ndctl_dimm *dimm, > struct ndctl_cmd *cmd; > int rc; > enum ND_FW_STATUS status; > - bool done = false; > struct timespec now, before, after; > uint64_t ver; > > @@ -692,88 +691,87 @@ static int query_fw_finish_status(struct ndctl_dimm > *dimm, > > rc = clock_gettime(CLOCK_MONOTONIC, ); > if (rc < 0) > - goto out; > + goto unref; > > now.tv_nsec = fw->query_interval / 1000; > now.tv_sec = 0; > > - do { > - rc = ndctl_cmd_submit(cmd); > - if (rc < 0) > - break; > +again: > + rc = ndctl_cmd_submit(cmd); > + if (rc < 0) > + goto unref; > > - status = ndctl_cmd_fw_xlat_firmware_status(cmd); > - switch (status) { > - case FW_SUCCESS: > - ver = ndctl_cmd_fw_fquery_get_fw_rev(cmd); > - if (ver == 0) { > - fprintf(stderr, "No firmware updated.\n"); > - rc = -ENXIO; > - goto out; > - } > + status = ndctl_cmd_fw_xlat_firmware_status(cmd); > + if (status == FW_EBUSY) { > + /* Still on going, continue */ > + rc = clock_gettime(CLOCK_MONOTONIC, ); > + if (rc < 0) { > + rc = -errno; > + goto unref; > + } > > - printf("Image updated successfully to DIMM %s.\n", > - ndctl_dimm_get_devname(dimm)); > - printf("Firmware version %#lx.\n", ver); > - printf("Cold reboot to activate.\n"); > - done = true; > - rc = 0; > - break; > - case FW_EBUSY: > - /* Still on going, continue */ > - rc = clock_gettime(CLOCK_MONOTONIC, ); > - if (rc < 0) { > - rc = -errno; > - goto out; > - } > + /* > + * If we expire max query time, > + * we timed out > + */ > + if (after.tv_sec - before.tv_sec > > + fw->max_query / 100) { > + rc = -ETIMEDOUT; > + goto unref; > + } > > - /* > - * If we expire max query time, > - * we timed out > - */ > - if (after.tv_sec - before.tv_sec > > - fw->max_query / 100) { > - rc = -ETIMEDOUT; > - goto out; > - } > + /* > + * Sleep the interval dictated by firmware > + * before query again. > + */ > + rc = nanosleep(, NULL); > + if (rc < 0) { > + rc = -errno; > + goto unref; > + } > + goto again; > + } > > - /* > - * Sleep the interval dictated by firmware > - * before query again. > - */ > - rc = nanosleep(, NULL); > - if (rc < 0) { > - rc = -errno; > - goto out; > - } > - break; > - case FW_EBADFW: > - fprintf(stderr, > - "Firmware failed to verify by DIMM %s.\n", > -
Re: [ndctl PATCH 3/4] test/dax.sh: Validate huge page mappings
On Fri, Oct 25, 2019 at 3:44 PM Verma, Vishal L wrote: > > > On Wed, 2019-10-23 at 19:33 +, Verma, Vishal L wrote: > > > > @@ -91,4 +111,4 @@ json=$($NDCTL create-namespace -m raw -f -e $dev) > > > > eval $(json2var <<< "$json") > > > > [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 > > > > > > same comment about quoting "$mode". If 'mode' happens to be empty for > > > soem reason, we want to fail with the error message - instead the above > > > will fail with a syntax error. > > > > Sorry ignore this - that was a context line.. > > > > Hey Dan, > > I've applied patches 1-3, with the following fixup to patch 3. > Patch 4 didn't apply cleanly, if you can resend that I'll queue it up too. Will do, thanks for the fixups! ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH] uapi: Add the BSD-2-Clause license to ndctl.h
On Fri, 2019-10-25 at 15:45 -0700, Dan Williams wrote: > On Fri, Oct 25, 2019 at 10:55 AM D Scott Phillips > wrote: > > Allow ndctl.h to be licensed with BSD-2-Clause so that other > > operating systems can provide the same user level interface. > > --- > > > > I've been working on nvdimm support in FreeBSD and would like to > > offer the same ndctl API there to ease porting of application > > code. Here I'm proposing to add the BSD-2-Clause license to this > > header file, so that it can later be copied into FreeBSD. > > > > I believe that all the authors of changes to this file (in the To: > > list) would need to agree to this change before it could be > > accepted, so any signed-off-by is intentionally ommited for now. > > Thanks, > > I have no problem with this change, but let's take the opportunity to > let SPDX do its job and drop the full license text. This is fine by me too, barring the full license text vs. SPDX caveat Dan mentions. ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH] uapi: Add the BSD-2-Clause license to ndctl.h
On Fri, Oct 25, 2019 at 10:55 AM D Scott Phillips wrote: > > Allow ndctl.h to be licensed with BSD-2-Clause so that other > operating systems can provide the same user level interface. > --- > > I've been working on nvdimm support in FreeBSD and would like to > offer the same ndctl API there to ease porting of application > code. Here I'm proposing to add the BSD-2-Clause license to this > header file, so that it can later be copied into FreeBSD. > > I believe that all the authors of changes to this file (in the To: > list) would need to agree to this change before it could be > accepted, so any signed-off-by is intentionally ommited for now. > Thanks, I have no problem with this change, but let's take the opportunity to let SPDX do its job and drop the full license text. ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH 3/4] test/dax.sh: Validate huge page mappings
> On Wed, 2019-10-23 at 19:33 +, Verma, Vishal L wrote: > > > @@ -91,4 +111,4 @@ json=$($NDCTL create-namespace -m raw -f -e $dev) > > > eval $(json2var <<< "$json") > > > [ $mode != "fsdax" ] && echo "fail: $LINENO" && exit 1 > > > > same comment about quoting "$mode". If 'mode' happens to be empty for > > soem reason, we want to fail with the error message - instead the above > > will fail with a syntax error. > > Sorry ignore this - that was a context line.. > Hey Dan, I've applied patches 1-3, with the following fixup to patch 3. Patch 4 didn't apply cleanly, if you can resend that I'll queue it up too. --8<-- >From 9d6c43d5240ddb18b5540b3064f2f90c25dcf574 Mon Sep 17 00:00:00 2001 From: Vishal Verma Date: Fri, 25 Oct 2019 16:41:22 -0600 Subject: [ndctl PATCH] fixup! test/dax.sh: Validate huge page mappings --- test/dax.sh | 19 ++- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/test/dax.sh b/test/dax.sh index 157b398..45c2027 100755 --- a/test/dax.sh +++ b/test/dax.sh @@ -32,8 +32,8 @@ run_test() { rc=0 if ! trace-cmd record -e fs_dax:dax_pmd_fault_done ./dax-pmd $MNT/$FILE; then rc=$? - if [ $rc -ne 77 -a $rc -ne 0 ]; then - cleanup $1 + if [ "$rc" -ne 77 ] && [ "$rc" -ne 0 ]; then + cleanup "$1" fi fi @@ -44,17 +44,18 @@ run_test() { # result of success (NOPAGE). count=0 rc=1 - for p in $(trace-cmd report | awk '{ print $21 }') - do - if [ $count -lt 10 ]; then - if [ $p != "0x100" -a $p != "NOPAGE" ]; then - cleanup $1 + while read -r p; do + [[ $p ]] || continue + if [ "$count" -lt 10 ]; then + if [ "$p" != "0x100" ] && [ "$p" != "NOPAGE" ]; then + cleanup "$1" fi fi count=$((count + 1)) - done + done < <(trace-cmd report | awk '{ print $21 }') + if [ $count -lt 10 ]; then - cleanup $1 + cleanup "$1" fi } -- 2.20.1 ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl patch 3/4] query_fw_finish_status: get rid of redundant variable
On Wed, Oct 23, 2019 at 03:51:21PM -0700, 'Vishal Verma' wrote: > On Wed, 2019-10-23 at 22:28 +, Verma, Vishal L wrote: > > On Fri, 2019-10-18 at 17:06 -0400, Jeff Moyer wrote: > > > Ira Weiny writes: > > > > On Fri, Oct 18, 2019 at 04:23:01PM -0400, Jeff Moyer wrote: > > > > > The 'done' variable only adds confusion. > > > > > > > > > > Signed-off-by: Jeff Moyer > > > > > --- > > > > > ndctl/dimm.c | 7 +-- > > > > > 1 file changed, 1 insertion(+), 6 deletions(-) > > > > > > > > > > diff --git a/ndctl/dimm.c b/ndctl/dimm.c > > > > > index c8821d6..f28b9c1 100644 > > > > > --- a/ndctl/dimm.c > > > > > +++ b/ndctl/dimm.c > > > > > @@ -682,7 +682,6 @@ static int query_fw_finish_status(struct > > > > > ndctl_dimm *dimm, > > > > > struct ndctl_cmd *cmd; > > > > > int rc; > > > > > enum ND_FW_STATUS status; > > > > > - bool done = false; > > > > > struct timespec now, before, after; > > > > > uint64_t ver; > > > > > > > > > > @@ -716,7 +715,6 @@ static int query_fw_finish_status(struct > > > > > ndctl_dimm *dimm, > > > > > ndctl_dimm_get_devname(dimm)); > > > > > printf("Firmware version %#lx.\n", ver); > > > > > printf("Cold reboot to activate.\n"); > > > > > - done = true; > > > > > rc = 0; > > > > > > > > Do we need "goto out" here? > > > > > > Yes, I missed that one. Thanks. > > > > This actually looks fine, since there is a 'break' down below. > > > > > > > break; > > > > > case FW_EBUSY: > > (Watching the unit test run fall into an infinite loop..) Nope, the > break is in the switch scope, the while loop needs the 'goto out'. > > Yes this bit definitely needs to be refactored :) How about this patch instead? Untested. Ira >From 24511b6a9f1b5e5c9e36c70ef6a03da5100cf4c7 Mon Sep 17 00:00:00 2001 From: Ira Weiny Date: Fri, 25 Oct 2019 15:16:13 -0700 Subject: [PATCH] ndctl: Clean up loop logic in query_fw_finish_status This gets rid of a redundant variable as originally pointed out by Jeff Moyer[1] Also, while we are here change the printf's to fprintf(stderr, ...) [1] https://patchwork.kernel.org/patch/11199557/ Suggested-by: Jeff Moyer Signed-off-by: Ira Weiny --- ndctl/dimm.c | 142 +-- 1 file changed, 70 insertions(+), 72 deletions(-) diff --git a/ndctl/dimm.c b/ndctl/dimm.c index 5e6fa19bab15..84de014e93d6 100644 --- a/ndctl/dimm.c +++ b/ndctl/dimm.c @@ -682,7 +682,6 @@ static int query_fw_finish_status(struct ndctl_dimm *dimm, struct ndctl_cmd *cmd; int rc; enum ND_FW_STATUS status; - bool done = false; struct timespec now, before, after; uint64_t ver; @@ -692,88 +691,87 @@ static int query_fw_finish_status(struct ndctl_dimm *dimm, rc = clock_gettime(CLOCK_MONOTONIC, ); if (rc < 0) - goto out; + goto unref; now.tv_nsec = fw->query_interval / 1000; now.tv_sec = 0; - do { - rc = ndctl_cmd_submit(cmd); - if (rc < 0) - break; +again: + rc = ndctl_cmd_submit(cmd); + if (rc < 0) + goto unref; - status = ndctl_cmd_fw_xlat_firmware_status(cmd); - switch (status) { - case FW_SUCCESS: - ver = ndctl_cmd_fw_fquery_get_fw_rev(cmd); - if (ver == 0) { - fprintf(stderr, "No firmware updated.\n"); - rc = -ENXIO; - goto out; - } + status = ndctl_cmd_fw_xlat_firmware_status(cmd); + if (status == FW_EBUSY) { + /* Still on going, continue */ + rc = clock_gettime(CLOCK_MONOTONIC, ); + if (rc < 0) { + rc = -errno; + goto unref; + } - printf("Image updated successfully to DIMM %s.\n", - ndctl_dimm_get_devname(dimm)); - printf("Firmware version %#lx.\n", ver); - printf("Cold reboot to activate.\n"); - done = true; - rc = 0; - break; - case FW_EBUSY: - /* Still on going, continue */ - rc = clock_gettime(CLOCK_MONOTONIC, ); - if (rc < 0) { - rc = -errno; - goto out; - } + /* +* If we expire max query time, +* we timed out +*/ + if (after.tv_sec - before.tv_sec > + fw->max_query / 100) { + rc =
RE: [PATCH] uapi: Add the BSD-2-Clause license to ndctl.h
> From: D Scott Phillips > Sent: Friday, October 25, 2019 10:56 AM > To: Dan Williams ; David Howells > ; Dexuan Cui ; Jerry > Hoemann ; stuart hayes > ; Toshi Kani ; Vishal Verma > ; linux-nvdimm@lists.01.org > Cc: linux-ker...@vger.kernel.org > Subject: [PATCH] uapi: Add the BSD-2-Clause license to ndctl.h > > Allow ndctl.h to be licensed with BSD-2-Clause so that other > operating systems can provide the same user level interface. > --- > > I've been working on nvdimm support in FreeBSD and would like to > offer the same ndctl API there to ease porting of application > code. Here I'm proposing to add the BSD-2-Clause license to this > header file, so that it can later be copied into FreeBSD. > > I believe that all the authors of changes to this file (in the To: > list) would need to agree to this change before it could be > accepted, so any signed-off-by is intentionally ommited for now. > Thanks, > > Scott Hi Scott, I agree to make the change if Dan and Vishal also agree. :-) Thanks, -- Dexuan ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
[PATCH] uapi: Add the BSD-2-Clause license to ndctl.h
Allow ndctl.h to be licensed with BSD-2-Clause so that other operating systems can provide the same user level interface. --- I've been working on nvdimm support in FreeBSD and would like to offer the same ndctl API there to ease porting of application code. Here I'm proposing to add the BSD-2-Clause license to this header file, so that it can later be copied into FreeBSD. I believe that all the authors of changes to this file (in the To: list) would need to agree to this change before it could be accepted, so any signed-off-by is intentionally ommited for now. Thanks, Scott include/uapi/linux/ndctl.h | 27 +++ 1 file changed, 27 insertions(+) diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index de5d90212409..dd9718bc9401 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: ((LGPL-2.1 WITH Linux-syscall-note) OR BSD-2-Clause) */ /* * Copyright (c) 2014-2016, Intel Corporation. * @@ -9,6 +10,32 @@ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for * more details. + * + * This -- and only this -- header file may also be distributed under + * the terms of the BSD Licence as follows: + * + * Copyright (C) 2014-2016, Intel Corporation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #ifndef __NDCTL_H__ #define __NDCTL_H__ -- 2.23.0 ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
DHL PACKAGE DELIVERY
=D H L= Dear Linux-nvdimm,Your business partner sent you a package sent to you via our courier service。Before we start the final delivery to your address, we need to confirm that you are the actual recipient.。Please click below to confirm your shipping address with us to ensure smooth and fast delivery。 Tracking Your DHL Package if you can't verify your address can result in delayed delivery or loss of important file。 heartfelt, DHL Worldwide Delivery___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [PATCH 00/10] Add support for OpenCAPI SCM devices
Hi Alastair, On Fri, Oct 25, 2019 at 6:48 AM Alastair D'Silva wrote: > From: Alastair D'Silva > > This series adds support for OpenCAPI SCM devices, exposing > them as nvdimms so that we can make use of the existing > infrastructure. Thanks for your series! The long CC list is a sign of get_maintainter.pl-considered-harmful. Please trim it (by removing me, a.o. ;-) for next submission. Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org