daos icon indicating copy to clipboard operation
daos copied to clipboard

DAOS-11604 control,mgmt,bio: Add dmg functionality for VMD LED management

Open tanabarr opened this issue 3 years ago • 40 comments

New dmg functionality for VMD LED management:

$ dmg storage led identify [--reset] <DEVICES> $ dmg storage led check <DEVICES>

--reset: Reset the status LED on a VMD SSD back to the previous state (OFF/normal or ON/faulty) after issuing an identify command. DEVICES: Comma-separated list of device-UUIDs or VMD backing PCI address

led-identify will set LED state to QUICK_BLINK or reset to the previous state. led-check will display the current state of the status LED on a VMD backing SSD.

LED state is now displayed in dmg storage query list-devices output. Configurable timeout parameter to be added in a subsequent patch.

Signed-off-by: Tom Nabarro [email protected] Co-authored-by: Sydney Vanda [email protected]

tanabarr avatar Sep 20 '22 12:09 tanabarr

Bug-tracker data: Ticket title is 'Add dmg functionality for VMD LED management' Status is 'In Review' Labels: 'SPDK,VMD' Job should run at elevated priority (3) Errors are Unknown component https://daosio.atlassian.net/browse/DAOS-11604

github-actions[bot] avatar Sep 20 '22 12:09 github-actions[bot]

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/1/execution/node/369/log

daosbuild1 avatar Sep 20 '22 12:09 daosbuild1

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/1/execution/node/335/log

daosbuild1 avatar Sep 20 '22 12:09 daosbuild1

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/1/execution/node/338/log

daosbuild1 avatar Sep 20 '22 12:09 daosbuild1

Test stage Build RPM on Leap 15 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/1/execution/node/341/log

daosbuild1 avatar Sep 20 '22 12:09 daosbuild1

Test stage Build on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/1/execution/node/368/log

daosbuild1 avatar Sep 20 '22 12:09 daosbuild1

@tanabarr: This is a massive PR (+6k,-2k LOC !!). Is there any way to break it into smaller chunks for more targeted reviews? I think it's going to be difficult to get a quality set of reviews as-is.

mjmac avatar Sep 20 '22 18:09 mjmac

@tanabarr: This is a massive PR (+6k,-2k LOC !!). Is there any way to break it into smaller chunks for more targeted reviews? I think it's going to be difficult to get a quality set of reviews as-is.

I will try to break down, thanks.

tanabarr avatar Sep 21 '22 13:09 tanabarr

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/3/execution/node/366/log

daosbuild1 avatar Sep 23 '22 09:09 daosbuild1

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/3/execution/node/328/log

daosbuild1 avatar Sep 23 '22 09:09 daosbuild1

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/3/execution/node/341/log

daosbuild1 avatar Sep 23 '22 09:09 daosbuild1

Test stage Build RPM on Leap 15 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/3/execution/node/315/log

daosbuild1 avatar Sep 23 '22 09:09 daosbuild1

I have broken down the PR into commits grouping changes by language (C/Go) and type (protobuf/source/test).

commit 17d7b102d68989cd9f61fb4e598a11ebb586ffaf (HEAD -> tanabarr/daos-8002_dmg)
    DAOS-8002 control: Add dmg commands for VMD LED management - C changes
 15 files changed, 506 insertions(+), 686 deletions(-)

commit 49e9685bb5e33688f8d802ed29b11647d3a50815
    DAOS-8002 control: Add dmg commands for VMD LED management - Go test file changes
 11 files changed, 729 insertions(+), 488 deletions(-)

commit 1e76a50f94fd8ee2586a72b1207845bdb8967e37
    DAOS-8002 control: Add dmg commands for VMD LED management - Go source changes
 14 files changed, 576 insertions(+), 409 deletions(-)

commit 034be16d392661b6536cd3fbe26f9231486062a5
    DAOS-8002 control: Add dmg commands for VMD LED management - Auto-generated protobuf-c
 4 files changed, 3866 insertions(+), 625 deletions(-)

commit 26197c7f63f97e00f778786281a6fdfce812b67c
    DAOS-8002 control: Add dmg commands for VMD LED management - Auto-generated protobuf-go
 3 files changed, 666 insertions(+), 1164 deletions(-)

commit 9f27773de5e1ef1d240bf5bd6e35e948bb3e3d8d
    DAOS-8002 control: Add dmg commands for VMD LED management - Protobuf definition changes
4 files changed, 130 insertions(+), 112 deletions(-)

As we can see from the summary the majority of changes listed in the stats are in the auto generated protobuf codes. Two main contributing factors are:

  • The addition of smd.pb-c header and source files to the src/bio directory (approved by @NiuYawei ) needed in order to centralize LED and NVMe state constant definitions in protobuf enums (as requested by @mjmac ).
  • The consolidation of SMD and NVMe-health protobuf message structures used in Go code results in a large number of deletions (and simplification of code).

The actual number of (non-test file) Go lines changed is 14 files changed, 576 insertions(+), 409 deletions(-). As reference, @mjmac 's recently landed commit contained the following number of changes (not meant to be an apples-to-apples comparison, just a reference point):

commit d7a909e6abae052424ef6333efa92f7ad5e5c082
Author: Michael MacDonald <[email protected]>
Date:   Thu Sep 22 07:57:58 2022 -0400
    DAOS-11479 control: Add dmg system exclude (#10235)
 30 files changed, 1132 insertions(+), 508 deletions(-)

Hopefully now the PR is an acceptable form to review, I propose that to reduce the burden @mjmac and @kjacque can review the Go code and proto changes (commits 1e76a50f94fd8ee2586a72b1207845bdb8967e37, 49e9685bb5e33688f8d802ed29b11647d3a50815, 9f27773de5e1ef1d240bf5bd6e35e948bb3e3d8d) whilst @NiuYawei and @knard-intel can review the C changes (commit 17d7b102d68989cd9f61fb4e598a11ebb586ffaf). Does this sound reasonable?

tanabarr avatar Sep 23 '22 10:09 tanabarr

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/4/execution/node/369/log

daosbuild1 avatar Sep 23 '22 10:09 daosbuild1

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/4/execution/node/341/log

daosbuild1 avatar Sep 23 '22 10:09 daosbuild1

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/4/execution/node/338/log

daosbuild1 avatar Sep 23 '22 10:09 daosbuild1

Test stage Build RPM on Leap 15 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/4/execution/node/334/log

daosbuild1 avatar Sep 23 '22 10:09 daosbuild1

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/7/execution/node/366/log

daosbuild1 avatar Sep 23 '22 12:09 daosbuild1

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/8/execution/node/369/log

daosbuild1 avatar Sep 24 '22 12:09 daosbuild1

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/12/execution/node/342/log

daosbuild1 avatar Sep 25 '22 12:09 daosbuild1

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/12/execution/node/319/log

daosbuild1 avatar Sep 25 '22 13:09 daosbuild1

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/12/execution/node/369/log

daosbuild1 avatar Sep 25 '22 13:09 daosbuild1

Test stage Build RPM on Leap 15 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/12/execution/node/314/log

daosbuild1 avatar Sep 25 '22 13:09 daosbuild1

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/13/execution/node/367/log

daosbuild1 avatar Sep 25 '22 20:09 daosbuild1

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/13/execution/node/335/log

daosbuild1 avatar Sep 25 '22 20:09 daosbuild1

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/13/execution/node/341/log

daosbuild1 avatar Sep 25 '22 20:09 daosbuild1

Test stage Build RPM on Leap 15 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/13/execution/node/338/log

daosbuild1 avatar Sep 25 '22 20:09 daosbuild1

Test stage Build on Leap 15 with Intel-C and TARGET_PREFIX completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/14/execution/node/368/log

daosbuild1 avatar Sep 25 '22 22:09 daosbuild1

Test stage Build DEB on Ubuntu 20.04 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/14/execution/node/335/log

daosbuild1 avatar Sep 25 '22 22:09 daosbuild1

Test stage Build RPM on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10339/14/execution/node/341/log

daosbuild1 avatar Sep 25 '22 22:09 daosbuild1