Skip to content

Commit d009e35

Browse files
francispravin5igaw
authored andcommitted
nvme-print: print new fields of nvme_id_independent_id_ns
Print new fields of I/O Command Set Independent Identify Namespace Data Structure based on NVM Express Base Specification 2.1. Signed-off-by: Francis Pravin <[email protected]>
1 parent 31aa468 commit d009e35

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

nvme-print-json.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3025,6 +3025,9 @@ static void json_nvme_cmd_set_independent_id_ns(struct nvme_id_independent_id_ns
30253025
obj_add_int(r, "nvmsetid", le16_to_cpu(ns->nvmsetid));
30263026
obj_add_int(r, "endgid", le16_to_cpu(ns->endgid));
30273027
obj_add_int(r, "nstat", ns->nstat);
3028+
obj_add_int(r, "kpios", ns->kpios);
3029+
obj_add_int(r, "maxkt", le16_to_cpu(ns->maxkt));
3030+
obj_add_int(r, "rgrpid", le32_to_cpu(ns->rgrpid));
30283031

30293032
json_print(r);
30303033
}

nvme-print-stdout.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2917,11 +2917,20 @@ static void stdout_cmd_set_independent_id_ns_nsfeat(__u8 nsfeat)
29172917

29182918
static void stdout_cmd_set_independent_id_ns_nstat(__u8 nstat)
29192919
{
2920-
__u8 rsvd1 = (nstat & 0xfe) >> 1;
2920+
__u8 rsvd3 = (nstat & 0xf8) >> 3;
2921+
__u8 ioi = (nstat & 0x6) >> 1;
29212922
__u8 nrdy = nstat & 0x1;
29222923

2923-
if (rsvd1)
2924-
printf(" [7:1] : %#x\tReserved\n", rsvd1);
2924+
static const char * const ioi_string[] = {
2925+
"I/O performance degradation is not reported",
2926+
"Reserved",
2927+
"I/O performance is not currently degraded",
2928+
"I/O performance is currently degraded"
2929+
};
2930+
2931+
if (rsvd3)
2932+
printf(" [7:3] : %#x\tReserved\n", rsvd3);
2933+
printf(" [2:1] : %#x\t%s\n", ioi, ioi_string[ioi]);
29252934
printf(" [0:0] : %#x\tName space is %sready\n",
29262935
nrdy, nrdy ? "" : "not ");
29272936
printf("\n");
@@ -2955,6 +2964,11 @@ static void stdout_cmd_set_independent_id_ns(struct nvme_id_independent_id_ns *n
29552964
printf("nstat : %#x\n", ns->nstat);
29562965
if (human)
29572966
stdout_cmd_set_independent_id_ns_nstat(ns->nstat);
2967+
printf("kpios : %#x\n", ns->kpios);
2968+
if (human)
2969+
stdout_id_ns_kpios(ns->kpios);
2970+
printf("maxkt : %#x\n", le16_to_cpu(ns->maxkt));
2971+
printf("rgrpid : %#x\n", le32_to_cpu(ns->rgrpid));
29582972
}
29592973

29602974
static void stdout_id_ns_descs(void *data, unsigned int nsid)

nvme.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3954,7 +3954,7 @@ static int cmd_set_independent_id_ns(int argc, char **argv, struct command *cmd,
39543954
flags |= VERBOSE;
39553955

39563956
if (!cfg.namespace_id) {
3957-
err = cfg.namespace_id = nvme_get_nsid(dev_fd(dev), &cfg.namespace_id);
3957+
err = nvme_get_nsid(dev_fd(dev), &cfg.namespace_id);
39583958
if (err < 0) {
39593959
nvme_show_perror("get-namespace-id");
39603960
return err;

0 commit comments

Comments
 (0)