static int jt_show_routing(int argc, char **argv);
static int jt_show_stats(int argc, char **argv);
static int jt_show_peer(int argc, char **argv);
+static int jt_show_numa(int argc, char **argv);
static int jt_set_tiny(int argc, char **argv);
static int jt_set_small(int argc, char **argv);
static int jt_set_large(int argc, char **argv);
+static int jt_set_numa(int argc, char **argv);
static int jt_add_peer_nid(int argc, char **argv);
static int jt_del_peer_nid(int argc, char **argv);
/*static int jt_show_peer(int argc, char **argv);*/
{ 0, 0, 0, NULL }
};
+command_t numa_cmds[] = {
+ {"show", jt_show_numa, 0, "show NUMA range\n"},
+ { 0, 0, 0, NULL }
+};
+
command_t set_cmds[] = {
{"tiny_buffers", jt_set_tiny, 0, "set tiny routing buffers\n"
"\tVALUE must be greater than 0\n"},
{"routing", jt_set_routing, 0, "enable/disable routing\n"
"\t0 - disable routing\n"
"\t1 - enable routing\n"},
+ {"numa_range", jt_set_numa, 0, "set NUMA range for NI selection\n"
+ "\tVALUE must be at least 0\n"},
{ 0, 0, 0, NULL }
};
return rc;
}
+static int jt_set_numa(int argc, char **argv)
+{
+ long int value;
+ int rc;
+ struct cYAML *err_rc = NULL;
+
+ if (handle_help(set_cmds, "set", "numa_range", argc, argv) == 0)
+ return 0;
+
+ rc = parse_long(argv[1], &value);
+ if (rc != 0) {
+ cYAML_build_error(-1, -1, "parser", "set",
+ "cannot parse numa_range value", &err_rc);
+ cYAML_print_tree2file(stderr, err_rc);
+ cYAML_free_tree(err_rc);
+ return -1;
+ }
+
+ rc = lustre_lnet_config_buffers(value, -1, -1, -1, &err_rc);
+ if (rc != LUSTRE_CFG_RC_NO_ERR)
+ cYAML_print_tree2file(stderr, err_rc);
+
+ cYAML_free_tree(err_rc);
+
+ return rc;
+}
+
static int jt_set_tiny(int argc, char **argv)
{
long int value;
return rc;
}
+static int jt_show_numa(int argc, char **argv)
+{
+ int rc;
+ struct cYAML *show_rc = NULL, *err_rc = NULL;
+
+ if (handle_help(numa_cmds, "numa", "show", argc, argv) == 0)
+ return 0;
+
+ rc = lustre_lnet_show_numa_range(-1, &show_rc, &err_rc);
+
+ if (rc != LUSTRE_CFG_RC_NO_ERR)
+ cYAML_print_tree2file(stderr, err_rc);
+ else if (show_rc)
+ cYAML_print_tree(show_rc);
+
+ cYAML_free_tree(err_rc);
+ cYAML_free_tree(show_rc);
+
+ return rc;
+}
+
static inline int jt_lnet(int argc, char **argv)
{
if (argc < 2)
return Parser_execarg(argc - 1, &argv[1], stats_cmds);
}
+static inline int jt_numa(int argc, char **argv)
+{
+ if (argc < 2)
+ return CMD_HELP;
+
+ if (argc == 2 &&
+ handle_help(numa_cmds, "numa", NULL, argc, argv) == 0)
+ return 0;
+
+ return Parser_execarg(argc - 1, &argv[1], numa_cmds);
+}
+
static inline int jt_peers(int argc, char **argv)
{
if (argc < 2)
"--help} FILE.yaml"},
{"export", jt_export, 0, "export {--help} FILE.yaml"},
{"stats", jt_stats, 0, "stats {show | help}"},
+ {"numa", jt_numa, 0, "numa {show | help}"},
{"peer", jt_peers, 0, "peer {add | del | show | help}"},
{"help", Parser_help, 0, "help"},
{"exit", Parser_quit, 0, "quit"},