[ndctl PATCH 1/2] test/dax.sh: Make dax.sh more robust vs small namespaces

2019-10-25 Thread Dan Williams
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

2019-10-25 Thread Dan Williams
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

2019-10-25 Thread Dan Williams
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

2019-10-25 Thread Verma, Vishal L
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

2019-10-25 Thread Dan Williams
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

2019-10-25 Thread Verma, Vishal L


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

2019-10-25 Thread Dan Williams
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

2019-10-25 Thread Verma, Vishal L
> 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

2019-10-25 Thread Ira Weiny
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

2019-10-25 Thread Dexuan Cui
> 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

2019-10-25 Thread D Scott Phillips
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

2019-10-25 Thread DHL DELIVERY SERVICE
=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

2019-10-25 Thread Geert Uytterhoeven
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