scripts/setup: allow specifying numa node to allocate hugepages on

The setup.sh can now be invoked as following:

```
HUGENODE=0 NRHUGE=5 ./scripts/setup.sh
HUGENODE=1 NRHUGE=3 ./scripts/setup.sh
```

This will allocate 5 hugepages on node0,
and 3 hugepages on node1. If HUGENODE
param is not specified, the setup.sh will
operate just like it used to.

Change-Id: Ib198f5f32203abcc646af3c8d823f2b3e9bce362
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/384086
Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Dariusz Stojaczyk 2017-10-27 19:26:58 +02:00 committed by Ben Walker
parent e098347a17
commit 7ef370dc8f

View File

@ -138,7 +138,14 @@ function configure_linux {
mkdir -p "$hugetlbfs_mount"
mount -t hugetlbfs nodev "$hugetlbfs_mount"
fi
echo "$NRHUGE" > /proc/sys/vm/nr_hugepages
if [ -z "$HUGENODE" ]; then
hugepages_target="/proc/sys/vm/nr_hugepages"
else
hugepages_target="/sys/devices/system/node/node${HUGENODE}/hugepages/hugepages-${HUGEPGSZ}kB/nr_hugepages"
fi
echo "$NRHUGE" > "$hugepages_target"
if [ "$driver_name" = "vfio-pci" ]; then
if [ "$username" != "" ]; then
@ -328,8 +335,9 @@ fi
: ${HUGEMEM:=2048}
if [ `uname` = Linux ]; then
HUGEPGSZ=$(( `grep Hugepagesize /proc/meminfo | cut -d : -f 2 | tr -dc '0-9'` / 1024 ))
: ${NRHUGE=$(( (HUGEMEM + HUGEPGSZ - 1) / HUGEPGSZ ))}
HUGEPGSZ=$(( `grep Hugepagesize /proc/meminfo | cut -d : -f 2 | tr -dc '0-9'` ))
HUGEPGSZ_MB=$(( $HUGEPGSZ / 1024 ))
: ${NRHUGE=$(( (HUGEMEM + HUGEPGSZ_MB - 1) / HUGEPGSZ_MB ))}
if [ "$mode" == "config" ]; then
configure_linux