Lines Matching defs:md

1124 static int scan_pio_for_cfg_handle(struct mdesc_handle *md, u64 pio,
1129 mdesc_for_each_arc(arc, md, pio, MDESC_ARC_TYPE_FWD) {
1130 u64 target = mdesc_arc_target(md, arc);
1133 val = mdesc_get_property(md, target,
1141 static int scan_arcs_for_cfg_handle(struct mdesc_handle *md, u64 grp,
1147 mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_FWD) {
1148 u64 target = mdesc_arc_target(md, arc);
1149 const char *name = mdesc_node_name(md, target);
1155 val = mdesc_get_property(md, target, "latency", NULL);
1168 return scan_pio_for_cfg_handle(md, candidate, cfg_handle);
1174 struct mdesc_handle *md;
1192 md = mdesc_grab();
1196 mdesc_for_each_node_by_name(md, grp, "group") {
1197 if (!scan_arcs_for_cfg_handle(md, grp, cfg_handle)) {
1204 mdesc_release(md);
1238 static int __init grab_mlgroups(struct mdesc_handle *md)
1244 mdesc_for_each_node_by_name(md, node, "memory-latency-group")
1258 mdesc_for_each_node_by_name(md, node, "memory-latency-group") {
1264 val = mdesc_get_property(md, node, "latency", NULL);
1266 val = mdesc_get_property(md, node, "address-match", NULL);
1268 val = mdesc_get_property(md, node, "address-mask", NULL);
1279 static int __init grab_mblocks(struct mdesc_handle *md)
1285 mdesc_for_each_node_by_name(md, node, "mblock")
1299 mdesc_for_each_node_by_name(md, node, "mblock") {
1303 val = mdesc_get_property(md, node, "base", NULL);
1305 val = mdesc_get_property(md, node, "size", NULL);
1307 val = mdesc_get_property(md, node,
1325 static void __init numa_parse_mdesc_group_cpus(struct mdesc_handle *md,
1332 mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_BACK) {
1333 u64 target = mdesc_arc_target(md, arc);
1334 const char *name = mdesc_node_name(md, target);
1339 id = mdesc_get_property(md, target, "id", NULL);
1381 static void __init find_numa_latencies_for_group(struct mdesc_handle *md,
1386 mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_FWD) {
1388 u64 target = mdesc_arc_target(md, arc);
1400 static int __init numa_attach_mlgroup(struct mdesc_handle *md, u64 grp,
1407 mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_FWD) {
1408 u64 target = mdesc_arc_target(md, arc);
1438 static int __init numa_parse_mdesc_group(struct mdesc_handle *md, u64 grp,
1444 numa_parse_mdesc_group_cpus(md, grp, &mask);
1457 return numa_attach_mlgroup(md, grp, index);
1462 struct mdesc_handle *md = mdesc_grab();
1466 node = mdesc_node_by_name(md, MDESC_NODE_NULL, "latency-groups");
1468 mdesc_release(md);
1472 err = grab_mblocks(md);
1476 err = grab_mlgroups(md);
1481 mdesc_for_each_node_by_name(md, node, "group") {
1482 err = numa_parse_mdesc_group(md, node, count);
1489 mdesc_for_each_node_by_name(md, node, "group") {
1490 find_numa_latencies_for_group(md, node, count);
1514 mdesc_release(md);