From 55241750a6ca05cdf88bb3979cb2c991ee2280db Mon Sep 17 00:00:00 2001 From: Dariusz Stojaczyk Date: Fri, 2 Mar 2018 16:18:38 +0100 Subject: [PATCH] setup.sh: print hugepage distribution status in `setup.sh status` Current output looks as follows: $ ./scripts/setup.sh status Hugepages node hugesize free / num node0 1048576kB 7 / 9 node0 2048kB 6144 / 6144 node1 1048576kB 0 / 0 node1 2048kB 0 / 15360 NVMe devices BDF Numa Node Driver name Device name 0000:0a:00.0 0 nvme nvme0 [...] Change-Id: I8cf019f2b4eaa966633427dd8c3759c979ba456c Signed-off-by: Pawel Wodkowski Signed-off-by: Dariusz Stojaczyk Reviewed-on: https://review.gerrithub.io/402281 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Jim Harris --- scripts/setup.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/scripts/setup.sh b/scripts/setup.sh index 8bbb42dbb..44e68f2d4 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -349,6 +349,35 @@ function reset_linux { } function status_linux { + echo "Hugepages" + printf "%-6s %10s %8s / %6s\n" "node" "hugesize" "free" "total" + + numa_nodes=0 + shopt -s nullglob + for path in /sys/devices/system/node/node?/hugepages/hugepages-*/; do + numa_nodes=$((numa_nodes + 1)) + free_pages=`cat $path/free_hugepages` + all_pages=`cat $path/nr_hugepages` + + [[ $path =~ (node[0-9]+)/hugepages/hugepages-([0-9]+kB) ]] + + node=${BASH_REMATCH[1]} + huge_size=${BASH_REMATCH[2]} + + printf "%-6s %10s %8s / %6s\n" $node $huge_size $free_pages $all_pages + done + shopt -u nullglob + + # fall back to system-wide hugepages + if [ "$numa_nodes" = "0" ]; then + free_pages=`grep HugePages_Free /proc/meminfo | awk '{ print $2 }'` + all_pages=`grep HugePages_Total /proc/meminfo | awk '{ print $2 }'` + node="-" + huge_size="$HUGEPGSZ" + + printf "%-6s %10s %8s / %6s\n" $node $huge_size $free_pages $all_pages + fi + echo "NVMe devices" echo -e "BDF\t\tNuma Node\tDriver name\t\tDevice name"