Skip to content

Commit ed3ec5d

Browse files
MaisenbacherDigaw
authored andcommitted
nvme: nvme_get_log use nvme_passthru_cmd directly
Move nvme_get_log_args to this repository as it was dropped in libnvme. Signed-off-by: Dennis Maisenbacher <[email protected]>
1 parent 0fa051c commit ed3ec5d

32 files changed

Lines changed: 525 additions & 496 deletions

nvme-print.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#define NVME_PRINT_H
44

55
#include "nvme.h"
6+
#include "types.h"
67
#include <inttypes.h>
78

89
#include <ccan/list/list.h>

nvme.c

Lines changed: 59 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -594,8 +594,7 @@ static int get_ana_log(int argc, char **argv, struct command *cmd,
594594
if (!ana_log)
595595
return -ENOMEM;
596596

597-
err = nvme_get_ana_log_atomic(l, cfg.groups, true, 10,
598-
ana_log, &ana_log_len);
597+
err = nvme_get_ana_log_atomic(l, true, cfg.groups, ana_log, &ana_log_len, 10);
599598
if (!err)
600599
nvme_show_ana_log(ana_log, nvme_link_get_name(l), ana_log_len, flags);
601600
else if (err > 0)
@@ -679,7 +678,7 @@ static int get_log_telemetry_ctrl(nvme_link_t l, bool rae, size_t size,
679678
if (!log)
680679
return -ENOMEM;
681680

682-
err = nvme_get_log_telemetry_ctrl(l, rae, 0, size, log);
681+
err = nvme_get_log_telemetry_ctrl(l, rae, 0, log, size);
683682
if (err) {
684683
free(log);
685684
return err;
@@ -699,7 +698,7 @@ static int get_log_telemetry_host(nvme_link_t l, size_t size,
699698
if (!log)
700699
return -ENOMEM;
701700

702-
err = nvme_get_log_telemetry_host(l, 0, size, log);
701+
err = nvme_get_log_telemetry_host(l, 0, log, size);
703702
if (err) {
704703
free(log);
705704
return err;
@@ -749,17 +748,15 @@ static int __get_telemetry_log_ctrl(nvme_link_t l,
749748
* set rae = true so it won't clear the current telemetry log in
750749
* controller
751750
*/
752-
err = nvme_get_log_telemetry_ctrl(l, true, 0,
753-
NVME_LOG_TELEM_BLOCK_SIZE,
754-
log);
751+
err = nvme_get_log_telemetry_ctrl(l, true, 0, log,
752+
NVME_LOG_TELEM_BLOCK_SIZE);
755753
if (err)
756754
goto free;
757755

758756
if (!log->ctrlavail) {
759757
if (!rae) {
760-
err = nvme_get_log_telemetry_ctrl(l, rae, 0,
761-
NVME_LOG_TELEM_BLOCK_SIZE,
762-
log);
758+
err = nvme_get_log_telemetry_ctrl(l, rae, 0, log,
759+
NVME_LOG_TELEM_BLOCK_SIZE);
763760
goto free;
764761
}
765762

@@ -793,9 +790,8 @@ static int __get_telemetry_log_host(nvme_link_t l,
793790
if (!log)
794791
return -ENOMEM;
795792

796-
err = nvme_get_log_telemetry_host(l, 0,
797-
NVME_LOG_TELEM_BLOCK_SIZE,
798-
log);
793+
err = nvme_get_log_telemetry_host(l, 0, log,
794+
NVME_LOG_TELEM_BLOCK_SIZE);
799795
if (err)
800796
return err;
801797

@@ -1316,8 +1312,8 @@ static int get_changed_ns_list_log(int argc, char **argv, bool alloc)
13161312

13171313
if (alloc)
13181314
err = nvme_get_log_changed_alloc_ns_list(l, true,
1319-
sizeof(*changed_ns_list_log),
1320-
changed_ns_list_log);
1315+
changed_ns_list_log,
1316+
sizeof(*changed_ns_list_log));
13211317
else
13221318
err = nvme_get_log_changed_ns_list(l, true,
13231319
changed_ns_list_log);
@@ -1476,7 +1472,7 @@ static int get_pred_lat_event_agg_log(int argc, char **argv,
14761472
return -ENOMEM;
14771473

14781474
err = nvme_get_log_predictable_lat_event(l, cfg.rae, 0,
1479-
log_size, pea_log);
1475+
pea_log, log_size);
14801476
if (!err)
14811477
nvme_show_predictable_latency_event_agg_log(pea_log, cfg.log_entries, log_size,
14821478
nvme_link_get_name(l), flags);
@@ -1542,7 +1538,7 @@ static int get_persistent_event_log(int argc, char **argv,
15421538
return -ENOMEM;
15431539

15441540
err = nvme_get_log_persistent_event(l, cfg.action,
1545-
sizeof(*pevent), pevent);
1541+
pevent, sizeof(*pevent));
15461542
if (err < 0) {
15471543
nvme_show_error("persistent event log: %s", nvme_strerror(-err));
15481544
return err;
@@ -1580,11 +1576,11 @@ static int get_persistent_event_log(int argc, char **argv,
15801576
}
15811577

15821578
err = nvme_get_log_persistent_event(l, cfg.action,
1583-
cfg.log_len, pevent_log_info);
1579+
pevent_log_info, cfg.log_len);
15841580
if (!err) {
15851581
err = nvme_get_log_persistent_event(l, cfg.action,
1586-
sizeof(*pevent),
1587-
pevent);
1582+
pevent,
1583+
sizeof(*pevent));
15881584
if (err < 0) {
15891585
nvme_show_error("persistent event log: %s", nvme_strerror(-err));
15901586
return err;
@@ -1681,8 +1677,7 @@ static int get_endurance_event_agg_log(int argc, char **argv,
16811677
if (!endurance_log)
16821678
return -ENOMEM;
16831679

1684-
err = nvme_get_log_endurance_grp_evt(l, cfg.rae, 0, log_size,
1685-
endurance_log);
1680+
err = nvme_get_log_endurance_grp_evt(l, cfg.rae, 0, endurance_log, log_size);
16861681
if (!err)
16871682
nvme_show_endurance_group_event_agg_log(endurance_log, cfg.log_entries, log_size,
16881683
nvme_link_get_name(l), flags);
@@ -1729,8 +1724,7 @@ static int get_lba_status_log(int argc, char **argv,
17291724
return err;
17301725
}
17311726

1732-
err = nvme_get_log_lba_status(l, true, 0, sizeof(__u32),
1733-
&lslplen);
1727+
err = nvme_get_log_lba_status(l, true, 0, &lslplen, sizeof(__u32));
17341728
if (err < 0) {
17351729
nvme_show_error("lba status log page: %s", nvme_strerror(-err));
17361730
return err;
@@ -1743,7 +1737,7 @@ static int get_lba_status_log(int argc, char **argv,
17431737
if (!lba_status)
17441738
return -ENOMEM;
17451739

1746-
err = nvme_get_log_lba_status(l, cfg.rae, 0, lslplen, lba_status);
1740+
err = nvme_get_log_lba_status(l, cfg.rae, 0, lba_status, lslplen);
17471741
if (!err)
17481742
nvme_show_lba_status_log(lba_status, lslplen, nvme_link_get_name(l), flags);
17491743
else if (err > 0)
@@ -1857,8 +1851,7 @@ static int get_boot_part_log(int argc, char **argv, struct command *cmd, struct
18571851
if (!boot)
18581852
return -ENOMEM;
18591853

1860-
err = nvme_get_log_boot_partition(l, false, cfg.lsp,
1861-
sizeof(*boot), boot);
1854+
err = nvme_get_log_boot_partition(l, false, cfg.lsp, boot, sizeof(*boot));
18621855
if (err < 0) {
18631856
nvme_show_error("boot partition log: %s", nvme_strerror(-err));
18641857
return err;
@@ -1873,8 +1866,8 @@ static int get_boot_part_log(int argc, char **argv, struct command *cmd, struct
18731866
return -ENOMEM;
18741867

18751868
err = nvme_get_log_boot_partition(l, false, cfg.lsp,
1876-
sizeof(*boot) + bpsz,
1877-
(struct nvme_boot_partition *)bp_log);
1869+
(struct nvme_boot_partition *)bp_log,
1870+
sizeof(*boot) + bpsz);
18781871
if (!err)
18791872
nvme_show_boot_part_log(&bp_log, nvme_link_get_name(l),
18801873
sizeof(*boot) + bpsz, flags);
@@ -1952,8 +1945,8 @@ static int get_phy_rx_eom_log(int argc, char **argv, struct command *cmd,
19521945
/* Just read measurement, take given action when fetching full log */
19531946
lsp_tmp = cfg.lsp & 0xf3;
19541947

1955-
err = nvme_get_log_phy_rx_eom(l, lsp_tmp, cfg.controller, phy_rx_eom_log_len,
1956-
phy_rx_eom_log);
1948+
err = nvme_get_log_phy_rx_eom(l, lsp_tmp, cfg.controller, phy_rx_eom_log,
1949+
phy_rx_eom_log_len);
19571950
if (err) {
19581951
if (err > 0)
19591952
nvme_show_status(err);
@@ -1974,8 +1967,8 @@ static int get_phy_rx_eom_log(int argc, char **argv, struct command *cmd,
19741967
if (!phy_rx_eom_log)
19751968
return -ENOMEM;
19761969

1977-
err = nvme_get_log_phy_rx_eom(l, cfg.lsp, cfg.controller, phy_rx_eom_log_len,
1978-
phy_rx_eom_log);
1970+
err = nvme_get_log_phy_rx_eom(l, cfg.lsp, cfg.controller, phy_rx_eom_log,
1971+
phy_rx_eom_log_len);
19791972
if (!err)
19801973
nvme_show_phy_rx_eom_log(phy_rx_eom_log, cfg.controller, flags);
19811974
else if (err > 0)
@@ -2417,21 +2410,23 @@ static int get_log(int argc, char **argv, struct command *cmd, struct plugin *pl
24172410
return -ENOMEM;
24182411

24192412
struct nvme_get_log_args args = {
2420-
.args_size = sizeof(args),
2421-
.lid = cfg.log_id,
24222413
.nsid = cfg.namespace_id,
2423-
.lpo = cfg.lpo,
2414+
.rae = cfg.rae,
24242415
.lsp = cfg.lsp,
2416+
.lid = cfg.log_id,
24252417
.lsi = cfg.lsi,
2426-
.rae = cfg.rae,
2427-
.uuidx = cfg.uuid_index,
24282418
.csi = cfg.csi,
24292419
.ot = cfg.ot,
2430-
.len = cfg.log_len,
2420+
.uidx = cfg.uuid_index,
2421+
.lpo = cfg.lpo,
24312422
.log = log,
2423+
.len = cfg.log_len,
24322424
.result = NULL,
24332425
};
2434-
err = nvme_get_log_page(l, cfg.xfer_len, &args);
2426+
2427+
err = nvme_get_log(l, args.nsid, args.rae, args.lsp, args.lid, args.lsi, args.csi,
2428+
args.ot, args.uidx, args.lpo, args.log, args.len, cfg.xfer_len,
2429+
args.result);
24352430
if (!err) {
24362431
if (!cfg.raw_binary) {
24372432
printf("Device:%s log-id:%d namespace-id:%#x\n", nvme_link_get_name(l),
@@ -10371,7 +10366,7 @@ static int get_mgmt_addr_list_log(int argc, char **argv, struct command *cmd, st
1037110366
if (!ma_log)
1037210367
return -ENOMEM;
1037310368

10374-
err = nvme_get_log_mgmt_addr_list(l, sizeof(*ma_log), ma_log);
10369+
err = nvme_get_log_mgmt_addr_list(l, ma_log, sizeof(*ma_log));
1037510370
if (!err)
1037610371
nvme_show_mgmt_addr_list_log(ma_log, flags);
1037710372
else if (err > 0)
@@ -10418,7 +10413,7 @@ static int get_rotational_media_info_log(int argc, char **argv, struct command *
1041810413
if (!info)
1041910414
return -ENOMEM;
1042010415

10421-
err = nvme_get_log_rotational_media_info(l, cfg.endgid, sizeof(*info), info);
10416+
err = nvme_get_log_rotational_media_info(l, cfg.endgid, info, sizeof(*info));
1042210417
if (!err)
1042310418
nvme_show_rotational_media_info_log(info, flags);
1042410419
else if (err > 0)
@@ -10436,18 +10431,17 @@ static int get_dispersed_ns_psub(nvme_link_t l, __u32 nsid,
1043610431
__u64 header_len = sizeof(**logp);
1043710432
__u64 psub_list_len;
1043810433
struct nvme_get_log_args args = {
10439-
.args_size = sizeof(args),
10440-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
10441-
.lid = NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS,
1044210434
.nsid = nsid,
10435+
.lid = NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS,
1044310436
.lpo = header_len,
10437+
.result = NULL,
1044410438
};
1044510439
struct nvme_dispersed_ns_participating_nss_log *log = nvme_alloc(header_len);
1044610440

1044710441
if (!log)
1044810442
return -ENOMEM;
1044910443

10450-
err = nvme_get_log_dispersed_ns_participating_nss(l, nsid, header_len, log);
10444+
err = nvme_get_log_dispersed_ns_participating_nss(l, nsid, log, header_len);
1045110445
if (err)
1045210446
goto err_free;
1045310447

@@ -10462,7 +10456,9 @@ static int get_dispersed_ns_psub(nvme_link_t l, __u32 nsid,
1046210456
args.log = log->participating_nss,
1046310457
args.len = psub_list_len;
1046410458

10465-
err = nvme_get_log_page(l, NVME_LOG_PAGE_PDU_SIZE, &args);
10459+
err = nvme_get_log(l, args.nsid, args.rae, args.lsp, args.lid, args.lsi, args.csi, args.ot,
10460+
args.uidx, args.lpo, args.log, args.len, NVME_LOG_PAGE_PDU_SIZE,
10461+
args.result);
1046610462
if (err)
1046710463
goto err_free;
1046810464

@@ -10526,7 +10522,9 @@ static int get_log_offset(nvme_link_t l, struct nvme_get_log_args *args, __u64 *
1052610522
*log = nvme_realloc(*log, *offset);
1052710523
if (!*log)
1052810524
return -ENOMEM;
10529-
return nvme_get_log_page(l, NVME_LOG_PAGE_PDU_SIZE, args);
10525+
return nvme_get_log(l, args->nsid, args->rae, args->lsp, args->lid, args->lsi, args->csi,
10526+
args->ot, args->uidx, args->lpo, args->log, args->len,
10527+
NVME_LOG_PAGE_PDU_SIZE, args->result);
1053010528
}
1053110529

1053210530
static int get_reachability_group_desc(nvme_link_t l, struct nvme_get_log_args *args,
@@ -10565,19 +10563,17 @@ static int get_reachability_groups(nvme_link_t l, bool rgo, bool rae,
1056510563
struct nvme_reachability_groups_log *log;
1056610564
__u64 log_len = sizeof(*log);
1056710565
struct nvme_get_log_args args = {
10568-
.args_size = sizeof(args),
10569-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
10570-
.lid = NVME_LOG_LID_REACHABILITY_GROUPS,
1057110566
.nsid = NVME_NSID_ALL,
10572-
.lsp = rgo,
1057310567
.rae = rae,
10568+
.lsp = rgo,
10569+
.lid = NVME_LOG_LID_REACHABILITY_GROUPS,
1057410570
};
1057510571

1057610572
log = nvme_alloc(log_len);
1057710573
if (!log)
1057810574
return -ENOMEM;
1057910575

10580-
err = nvme_get_log_reachability_groups(l, rgo, rae, log_len, log);
10576+
err = nvme_get_log_reachability_groups(l, rae, rgo, log, log_len);
1058110577
if (err)
1058210578
goto err_free;
1058310579

@@ -10678,19 +10674,17 @@ static int get_reachability_associations(nvme_link_t l, bool rao, bool rae,
1067810674
struct nvme_reachability_associations_log *log;
1067910675
__u64 log_len = sizeof(*log);
1068010676
struct nvme_get_log_args args = {
10681-
.args_size = sizeof(args),
10682-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
10683-
.lid = NVME_LOG_LID_REACHABILITY_ASSOCIATIONS,
1068410677
.nsid = NVME_NSID_ALL,
10685-
.lsp = rao,
1068610678
.rae = rae,
10679+
.lsp = rao,
10680+
.lid = NVME_LOG_LID_REACHABILITY_ASSOCIATIONS,
1068710681
};
1068810682

1068910683
log = nvme_alloc(log_len);
1069010684
if (!log)
1069110685
return -ENOMEM;
1069210686

10693-
err = nvme_get_log_reachability_associations(l, rao, rae, log_len, log);
10687+
err = nvme_get_log_reachability_associations(l, rae, rao, log, log_len);
1069410688
if (err)
1069510689
goto err_free;
1069610690

@@ -10761,19 +10755,17 @@ static int get_host_discovery(nvme_link_t l, bool allhoste, bool rae,
1076110755
struct nvme_host_discover_log *log;
1076210756
__u64 log_len = sizeof(*log);
1076310757
struct nvme_get_log_args args = {
10764-
.args_size = sizeof(args),
10765-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
10766-
.lid = NVME_LOG_LID_HOST_DISCOVER,
1076710758
.nsid = NVME_NSID_ALL,
10768-
.lsp = allhoste,
1076910759
.rae = rae,
10760+
.lsp = allhoste,
10761+
.lid = NVME_LOG_LID_HOST_DISCOVER,
1077010762
};
1077110763

1077210764
log = nvme_alloc(log_len);
1077310765
if (!log)
1077410766
return -ENOMEM;
1077510767

10776-
err = nvme_get_log_host_discover(l, allhoste, rae, log_len, log);
10768+
err = nvme_get_log_host_discover(l, rae, allhoste, log, log_len);
1077710769
if (err)
1077810770
goto err_free;
1077910771

@@ -10843,18 +10835,16 @@ static int get_ave_discovery(nvme_link_t l, bool rae, struct nvme_ave_discover_l
1084310835
struct nvme_ave_discover_log *log;
1084410836
__u64 log_len = sizeof(*log);
1084510837
struct nvme_get_log_args args = {
10846-
.args_size = sizeof(args),
10847-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
10848-
.lid = NVME_LOG_LID_AVE_DISCOVER,
1084910838
.nsid = NVME_NSID_ALL,
1085010839
.rae = rae,
10840+
.lid = NVME_LOG_LID_AVE_DISCOVER,
1085110841
};
1085210842

1085310843
log = nvme_alloc(log_len);
1085410844
if (!log)
1085510845
return -ENOMEM;
1085610846

10857-
err = nvme_get_log_ave_discover(l, rae, log_len, log);
10847+
err = nvme_get_log_ave_discover(l, rae, log, log_len);
1085810848
if (err)
1085910849
goto err_free;
1086010850

@@ -10920,18 +10910,16 @@ static int get_pull_model_ddc_req(nvme_link_t l,
1092010910
struct nvme_pull_model_ddc_req_log *log;
1092110911
__u64 log_len = sizeof(*log);
1092210912
struct nvme_get_log_args args = {
10923-
.args_size = sizeof(args),
10924-
.timeout = NVME_DEFAULT_IOCTL_TIMEOUT,
10925-
.lid = NVME_LOG_LID_PULL_MODEL_DDC_REQ,
1092610913
.nsid = NVME_NSID_ALL,
1092710914
.rae = rae,
10915+
.lid = NVME_LOG_LID_PULL_MODEL_DDC_REQ,
1092810916
};
1092910917

1093010918
log = nvme_alloc(log_len);
1093110919
if (!log)
1093210920
return -ENOMEM;
1093310921

10934-
err = nvme_get_log_pull_model_ddc_req(l, rae, log_len, log);
10922+
err = nvme_get_log_pull_model_ddc_req(l, rae, log, log_len);
1093510923
if (err)
1093610924
goto err_free;
1093710925

0 commit comments

Comments
 (0)