** Description changed:

  [Impact]
- nvme-cli in bionic lacks the toshiba-nvme plugin. This plugin provides 
functionality unique to Toshiba NVME devices:
  
- $ sudo ./nvme toshiba 
+ The version of nvme-cli in Bionic (1.5-ubuntu1) lacks support for
+ functionality unique to Toshiba NVMe devices, provided by the toshiba-
+ nvme plugin:
+ 
+ $ sudo nvme toshiba
  nvme-1.5
  
  usage: nvme toshiba <command> [<device>] [<args>]
  
  The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
  nvme block device (ex: /dev/nvme0n1).
  
  Toshiba NVME plugin
  
  The following are all implemented sub-commands:
    vs-smart-add-log Extended SMART information
    vs-internal-log Get Internal Log
    clear-pcie-correctable-errors Clear PCIe correctable error count
-   version         Shows the program version
-   help            Display this help
+   version Shows the program version
+   help Display this help
+   
+ Several customers have asked for this plugin to be included, so they can see 
the internal logs from their Toshiba NVMe devices.
  
  [Test Case]
- * Verify that the toshiba plugin exists:
- sudo nvme toshiba
- * Run each of the plugin commands to test them:
- for cmd in vs-smart-add-log vs-internal-log clear-pcie-correctable-errors; do
+ 
+ You can find a test package for Bionic here:
+ 
+ https://launchpad.net/~mruffell/+archive/ubuntu/sf258218-test
+ 
+ Once that is installed, verify that the toshiba plugin exists:
+ 
+ $ sudo nvme toshiba
+ 
+ This will print plugin help, and a list of subcommands which are
+ supported.
+ 
+ From there, you can run each of the plugin commands to test them:
+ 
+ $ for cmd in vs-smart-add-log vs-internal-log clear-pcie-correctable-errors; 
do
    sudo nvme toshiba $cmd /dev/nvme0n1
  done
  
- [Fix]
+ I have tested the package without access to hardware, and the help
+ commands work as expected:
+ 
+ https://paste.ubuntu.com/p/FhJwc6wscC/
+ 
  [Regression Risk]
+ 
+ I believe that this SRU falls under the "Other safe cases" category under
+ https://wiki.ubuntu.com/StableReleaseUpdates#Other_safe_cases
+ 
+ This SRU fulfills the first three cases for applicability while also
+ improving the user experience of those with Toshiba NVMe devices.
+ 
+ For case one:
+ (1) has an obviously safe patch: We are adding a standalone plugin separated 
completely from existing code, since it is implemented down the new "nvme 
toshiba" code path. The patch itself only reads hardware registers and prints 
the contents to the console, and does not do anything too serious.
+ (2) "affects an application" - changes are limited to nvme-cli only, as 
kernel support is already present.
+ 
+ For case two:
+ This SRU will enable the use of Toshiba NVMe devices, while not affecting any 
existing NVMe devices from other manufacturers, since the subcommand is 
implemented alongside other manufactures subcommands, and does not modify any 
existing code.
+ 
+ For case three:
+ The changes are unintrusive, again, to being limited to plugin which 
implements a new subcommand. The code itself is simplistic, and has not been 
dramatically modified since it first landed in upstream compared to the present 
day. The feature landed in nvme-cli version 1.6, which appears in cosmic 
onwards, meaning upgrading from bionic to a newer release will not cause 
upgrade regressions.
+ 
+ I did a diff of the proposed patch to the current upstream master
+ branch, and the new changes are more or less cosmetic:
+ 
+ https://paste.ubuntu.com/p/TBy3HbPGV6/
+ 
+ If you want to review each commit to current master branch, I have
+ provided them below:
+ 
+ e5786ad argconfig: Remove unused paramters
+ 1d37bc9 nvme-cli: Code cleanup
+ 507ded5 nvme-vendor: fix c99 declarations in vendor plugins
+ f392181 Refactor plugins in a file hierarchy
+ 
+ We have included one fixup commit already in this SRU, check [Other
+ Info] for details.
+ 
+ I will ask a customer to test the package on real hardware soon, and try
+ and get a printout of their session.
+ 
+ As such, I believe this will not introduce any regressions. If a
+ regression were to happen it would be limited to the "nvme toshiba"
+ subcommand, and not any other nvme-cli functionality.
+ 
+ [Other Info]
+ 
+ The commits which add support for Toshiba devices are:
+ 
+ commit 3d52c76a74a5fe894d9fbfcdfc9c713958f5717f
+ Author: Andrew Meir <[email protected]>
+ Date: Wed Mar 28 17:42:53 2018 +0200
+ Subject: Add toshiba plugin code and command documentation.
+ Link: 
https://github.com/linux-nvme/nvme-cli/commit/3d52c76a74a5fe894d9fbfcdfc9c713958f5717f
+ 
+ commit daf7b2d2cb53d8621444113503739b327091bec5
+ Author: Andrew Meir <[email protected]>
+ Date: Wed Mar 28 20:21:34 2018 +0200
+ Subject: Add toshiba plugin to makefile rules.
+ Link: 
https://github.com/linux-nvme/nvme-cli/commit/daf7b2d2cb53d8621444113503739b327091bec5
+ 
+ There is also a fixup commit which is required, and is a part of this
+ SRU:
+ 
+ commit 5e9239edb89dd753352a8e981502f42b9d7be87c
+ Author: Andrew Meir <[email protected]>
+ Date:   Fri Apr 13 14:51:17 2018 +0200
+ Subject: Fixes for log page access.
+ Link: 
https://github.com/linux-nvme/nvme-cli/commit/5e9239edb89dd753352a8e981502f42b9d7be87c
+ 
+ All three commits landed in version 1.6 of nvme-cli, and bionic only needs the
+ backport:
+ 
+ $ rmadison nvme-cli
+ nvme-cli | 1.5-1        | bionic/universe         | amd64
+ nvme-cli | 1.5-1ubuntu1 | bionic-updates/universe | amd64
+ nvme-cli | 1.7-1        | eoan/universe           | amd64
+ nvme-cli | 1.9-1        | focal/universe          | amd64
+ 
+ There was some minor backporting required. I merged the commit "Add
+ toshiba plugin to makefile rules." into the primary Toshiba plugin
+ patch, since it only changes the Makefile, which needed some context
+ adjustment.
+ 
+ There was also a parameter change needed for nvme_set_feature() in
+ clear_correctable_errors(), and you can find my analysis and
+ modification for that in Comment #3.

** Description changed:

  [Impact]
  
  The version of nvme-cli in Bionic (1.5-ubuntu1) lacks support for
  functionality unique to Toshiba NVMe devices, provided by the toshiba-
  nvme plugin:
  
  $ sudo nvme toshiba
  nvme-1.5
  
  usage: nvme toshiba <command> [<device>] [<args>]
  
  The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
  nvme block device (ex: /dev/nvme0n1).
  
  Toshiba NVME plugin
  
  The following are all implemented sub-commands:
-   vs-smart-add-log Extended SMART information
-   vs-internal-log Get Internal Log
-   clear-pcie-correctable-errors Clear PCIe correctable error count
-   version Shows the program version
-   help Display this help
-   
- Several customers have asked for this plugin to be included, so they can see 
the internal logs from their Toshiba NVMe devices.
+   vs-smart-add-log Extended SMART information
+   vs-internal-log Get Internal Log
+   clear-pcie-correctable-errors Clear PCIe correctable error count
+   version Shows the program version
+   help Display this help
+ 
+ Several customers have asked for this plugin to be included, so they can
+ see the internal logs from their Toshiba NVMe devices.
  
  [Test Case]
  
  You can find a test package for Bionic here:
  
  https://launchpad.net/~mruffell/+archive/ubuntu/sf258218-test
  
  Once that is installed, verify that the toshiba plugin exists:
  
  $ sudo nvme toshiba
  
  This will print plugin help, and a list of subcommands which are
  supported.
  
  From there, you can run each of the plugin commands to test them:
  
  $ for cmd in vs-smart-add-log vs-internal-log clear-pcie-correctable-errors; 
do
-   sudo nvme toshiba $cmd /dev/nvme0n1
+   sudo nvme toshiba $cmd /dev/nvme0n1
  done
  
  I have tested the package without access to hardware, and the help
  commands work as expected:
  
  https://paste.ubuntu.com/p/FhJwc6wscC/
  
  [Regression Risk]
  
  I believe that this SRU falls under the "Other safe cases" category under
  https://wiki.ubuntu.com/StableReleaseUpdates#Other_safe_cases
  
  This SRU fulfills the first three cases for applicability while also
  improving the user experience of those with Toshiba NVMe devices.
  
  For case one:
  (1) has an obviously safe patch: We are adding a standalone plugin separated 
completely from existing code, since it is implemented down the new "nvme 
toshiba" code path. The patch itself only reads hardware registers and prints 
the contents to the console, and does not do anything too serious.
  (2) "affects an application" - changes are limited to nvme-cli only, as 
kernel support is already present.
  
  For case two:
  This SRU will enable the use of Toshiba NVMe devices, while not affecting any 
existing NVMe devices from other manufacturers, since the subcommand is 
implemented alongside other manufactures subcommands, and does not modify any 
existing code.
  
  For case three:
  The changes are unintrusive, again, to being limited to plugin which 
implements a new subcommand. The code itself is simplistic, and has not been 
dramatically modified since it first landed in upstream compared to the present 
day. The feature landed in nvme-cli version 1.6, which appears in cosmic 
onwards, meaning upgrading from bionic to a newer release will not cause 
upgrade regressions.
  
  I did a diff of the proposed patch to the current upstream master
  branch, and the new changes are more or less cosmetic:
  
  https://paste.ubuntu.com/p/TBy3HbPGV6/
  
  If you want to review each commit to current master branch, I have
  provided them below:
  
  e5786ad argconfig: Remove unused paramters
  1d37bc9 nvme-cli: Code cleanup
  507ded5 nvme-vendor: fix c99 declarations in vendor plugins
  f392181 Refactor plugins in a file hierarchy
  
  We have included one fixup commit already in this SRU, check [Other
  Info] for details.
  
  I will ask a customer to test the package on real hardware soon, and try
  and get a printout of their session.
  
  As such, I believe this will not introduce any regressions. If a
  regression were to happen it would be limited to the "nvme toshiba"
  subcommand, and not any other nvme-cli functionality.
  
  [Other Info]
  
  The commits which add support for Toshiba devices are:
  
  commit 3d52c76a74a5fe894d9fbfcdfc9c713958f5717f
  Author: Andrew Meir <[email protected]>
  Date: Wed Mar 28 17:42:53 2018 +0200
  Subject: Add toshiba plugin code and command documentation.
  Link: 
https://github.com/linux-nvme/nvme-cli/commit/3d52c76a74a5fe894d9fbfcdfc9c713958f5717f
  
  commit daf7b2d2cb53d8621444113503739b327091bec5
  Author: Andrew Meir <[email protected]>
  Date: Wed Mar 28 20:21:34 2018 +0200
  Subject: Add toshiba plugin to makefile rules.
  Link: 
https://github.com/linux-nvme/nvme-cli/commit/daf7b2d2cb53d8621444113503739b327091bec5
  
  There is also a fixup commit which is required, and is a part of this
  SRU:
  
  commit 5e9239edb89dd753352a8e981502f42b9d7be87c
  Author: Andrew Meir <[email protected]>
  Date:   Fri Apr 13 14:51:17 2018 +0200
  Subject: Fixes for log page access.
  Link: 
https://github.com/linux-nvme/nvme-cli/commit/5e9239edb89dd753352a8e981502f42b9d7be87c
  
- All three commits landed in version 1.6 of nvme-cli, and bionic only needs the
- backport:
+ All three commits landed in version 1.6 of nvme-cli, and bionic only
+ needs the backport:
  
  $ rmadison nvme-cli
  nvme-cli | 1.5-1        | bionic/universe         | amd64
  nvme-cli | 1.5-1ubuntu1 | bionic-updates/universe | amd64
  nvme-cli | 1.7-1        | eoan/universe           | amd64
  nvme-cli | 1.9-1        | focal/universe          | amd64
  
  There was some minor backporting required. I merged the commit "Add
  toshiba plugin to makefile rules." into the primary Toshiba plugin
  patch, since it only changes the Makefile, which needed some context
  adjustment.
  
  There was also a parameter change needed for nvme_set_feature() in
  clear_correctable_errors(), and you can find my analysis and
  modification for that in Comment #3.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1866897

Title:
  Add toshiba plugin support

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nvme-cli/+bug/1866897/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to