mcreboot-smp-x86.sh: handle resource allocation after unloading; mcstop+release-smp-x86.sh
This commit is contained in:
@ -44,7 +44,8 @@ install::
|
|||||||
;; \
|
;; \
|
||||||
smp-x86) \
|
smp-x86) \
|
||||||
mkdir -p -m 755 $(SBINDIR); \
|
mkdir -p -m 755 $(SBINDIR); \
|
||||||
install -m 755 arch/x86/tools/mcreboot-smp-x86.sh $(SBINDIR)/mcreboot; \
|
install -m 755 arch/x86/tools/mcreboot-smp-x86.sh $(SBINDIR)/mcreboot.sh; \
|
||||||
|
install -m 755 arch/x86/tools/mcstop+release-smp-x86.sh $(SBINDIR)/mcstop+release.sh; \
|
||||||
mkdir -p -m 755 $(MANDIR)/man1; \
|
mkdir -p -m 755 $(MANDIR)/man1; \
|
||||||
install -m 644 arch/x86/tools/mcreboot.1 $(MANDIR)/man1/mcreboot.1; \
|
install -m 644 arch/x86/tools/mcreboot.1 $(MANDIR)/man1/mcreboot.1; \
|
||||||
;; \
|
;; \
|
||||||
|
|||||||
@ -19,14 +19,17 @@ KMODDIR="@KMODDIR@"
|
|||||||
KERNDIR="@KERNDIR@"
|
KERNDIR="@KERNDIR@"
|
||||||
|
|
||||||
mem="512M@0"
|
mem="512M@0"
|
||||||
|
cpus=""
|
||||||
|
|
||||||
# Get the number of CPUs on NUMA node 0
|
if [ "$cpus" == "" ]; then
|
||||||
nr_cpus=`lscpu --parse | awk -F"," '{if ($4 == 0) print $4}' | wc -l`
|
# Get the number of CPUs on NUMA node 0
|
||||||
|
nr_cpus=`lscpu --parse | awk -F"," '{if ($4 == 0) print $4}' | wc -l`
|
||||||
|
|
||||||
# Use the second half of the cores
|
# Use the second half of the cores
|
||||||
let nr_cpus="$nr_cpus / 2"
|
let nr_cpus="$nr_cpus / 2"
|
||||||
cpus=`lscpu --parse | awk -F"," '{if ($4 == 0) print $1}' | tail -n $nr_cpus | xargs echo -n | sed 's/ /,/g'`
|
cpus=`lscpu --parse | awk -F"," '{if ($4 == 0) print $1}' | tail -n $nr_cpus | xargs echo -n | sed 's/ /,/g'`
|
||||||
if [ "$cpus" == "" ]; then echo "error: no available CPUs on NUMA node 0?"; exit; fi
|
if [ "$cpus" == "" ]; then echo "error: no available CPUs on NUMA node 0?"; exit; fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Remove delegator if loaded
|
# Remove delegator if loaded
|
||||||
if [ "`lsmod | grep mcctrl`" != "" ]; then
|
if [ "`lsmod | grep mcctrl`" != "" ]; then
|
||||||
@ -51,6 +54,19 @@ if [ "`lsmod | grep ihk_smp_x86`" == "" ]; then
|
|||||||
if ! insmod ${KMODDIR}/ihk-smp-x86.ko ihk_start_irq=$ihk_irq; then echo "error: loading ihk-smp-x86"; exit; fi;
|
if ! insmod ${KMODDIR}/ihk-smp-x86.ko ihk_start_irq=$ihk_irq; then echo "error: loading ihk-smp-x86"; exit; fi;
|
||||||
if ! ${SBINDIR}/ihkconfig 0 reserve cpu ${cpus}; then echo "error: reserving CPUs"; exit; fi
|
if ! ${SBINDIR}/ihkconfig 0 reserve cpu ${cpus}; then echo "error: reserving CPUs"; exit; fi
|
||||||
if ! ${SBINDIR}/ihkconfig 0 reserve mem ${mem}; then echo "error: reserving memory"; exit; fi
|
if ! ${SBINDIR}/ihkconfig 0 reserve mem ${mem}; then echo "error: reserving memory"; exit; fi
|
||||||
|
# If loaded, but no resources allocated, get CPUs and memory
|
||||||
|
else
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 query cpu > /dev/null; then echo "error: querying cpus"; exit; fi
|
||||||
|
cpus_allocated=`${SBINDIR}/ihkosctl 0 query cpu`
|
||||||
|
if [ "$cpus_allocated" == "" ]; then
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 reserve cpu ${cpus}; then echo "error: reserving CPUs"; exit; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! ${SBINDIR}/ihkosctl 0 query mem > /dev/null; then echo "error: querying memory"; exit; fi
|
||||||
|
mem_allocated=`${SBINDIR}/ihkosctl 0 query mem`
|
||||||
|
if [ "$mem_allocated" == "" ]; then
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 reserve mem ${mem}; then echo "error: reserving memory"; exit; fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for existing OS instance and destroy
|
# Check for existing OS instance and destroy
|
||||||
|
|||||||
47
arch/x86/tools/mcstop+release-smp-x86.sh.in
Normal file
47
arch/x86/tools/mcstop+release-smp-x86.sh.in
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# IHK SMP-x86 example McKernel unload script.
|
||||||
|
# author: Balazs Gerofi <bgerofi@riken.jp>
|
||||||
|
# Copyright (C) 2015 RIKEN AICS
|
||||||
|
#
|
||||||
|
# This is an example script for destroying McKernel and releasing IHK resources
|
||||||
|
# Note that the script does no output anything unless an error occurs.
|
||||||
|
|
||||||
|
prefix="@prefix@"
|
||||||
|
BINDIR="@BINDIR@"
|
||||||
|
SBINDIR="@SBINDIR@"
|
||||||
|
KMODDIR="@KMODDIR@"
|
||||||
|
KERNDIR="@KERNDIR@"
|
||||||
|
|
||||||
|
mem=""
|
||||||
|
cpus=""
|
||||||
|
|
||||||
|
# No SMP module? Exit.
|
||||||
|
if [ "`lsmod | grep ihk_smp_x86`" == "" ]; then exit; fi
|
||||||
|
|
||||||
|
# Remove delegator if loaded
|
||||||
|
if [ "`lsmod | grep mcctrl`" != "" ]; then
|
||||||
|
if ! rmmod mcctrl; then echo "error: removing mcctrl"; exit; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Destroy all LWK instances
|
||||||
|
for i in /dev/mcos*; do
|
||||||
|
ind=`echo $i|cut -c10-`;
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 destroy $ind; then echo "error: destroying LWK instance $ind failed"; exit; fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Query IHK-SMP resources and release them
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 query cpu > /dev/null; then echo "error: querying cpus"; exit; fi
|
||||||
|
cpus=`${SBINDIR}/ihkconfig 0 query cpu`
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 release cpu $cpus > /dev/null; then echo "error: releasing CPUs"; exit; fi
|
||||||
|
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 query mem > /dev/null; then echo "error: querying memory"; exit; fi
|
||||||
|
mem=`${SBINDIR}/ihkconfig 0 query mem`
|
||||||
|
if ! ${SBINDIR}/ihkconfig 0 release mem $mem > /dev/null; then echo "error: releasing memory"; exit; fi
|
||||||
|
|
||||||
|
# Remove SMP module
|
||||||
|
if [ "`lsmod | grep ihk_smp_x86`" != "" ]; then
|
||||||
|
if ! rmmod ihk_smp_x86; then echo "error: removing ihk_smp_x86"; exit; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
3
configure
vendored
3
configure
vendored
@ -3816,7 +3816,7 @@ TARGET="$WITH_TARGET"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile executer/user/Makefile executer/kernel/Makefile kernel/Makefile kernel/Makefile.build arch/x86/tools/mcreboot-attached-mic.sh arch/x86/tools/mcshutdown-attached-mic.sh arch/x86/tools/mcreboot-builtin-x86.sh arch/x86/tools/mcreboot-smp-x86.sh arch/x86/tools/mcshutdown-builtin-x86.sh arch/x86/tools/mcreboot.1:arch/x86/tools/mcreboot.1in"
|
ac_config_files="$ac_config_files Makefile executer/user/Makefile executer/kernel/Makefile kernel/Makefile kernel/Makefile.build arch/x86/tools/mcreboot-attached-mic.sh arch/x86/tools/mcshutdown-attached-mic.sh arch/x86/tools/mcreboot-builtin-x86.sh arch/x86/tools/mcreboot-smp-x86.sh arch/x86/tools/mcstop+release-smp-x86.sh arch/x86/tools/mcshutdown-builtin-x86.sh arch/x86/tools/mcreboot.1:arch/x86/tools/mcreboot.1in"
|
||||||
|
|
||||||
|
|
||||||
if test "x$enable_dcfa" = xyes; then :
|
if test "x$enable_dcfa" = xyes; then :
|
||||||
@ -4539,6 +4539,7 @@ do
|
|||||||
"arch/x86/tools/mcshutdown-attached-mic.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcshutdown-attached-mic.sh" ;;
|
"arch/x86/tools/mcshutdown-attached-mic.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcshutdown-attached-mic.sh" ;;
|
||||||
"arch/x86/tools/mcreboot-builtin-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcreboot-builtin-x86.sh" ;;
|
"arch/x86/tools/mcreboot-builtin-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcreboot-builtin-x86.sh" ;;
|
||||||
"arch/x86/tools/mcreboot-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcreboot-smp-x86.sh" ;;
|
"arch/x86/tools/mcreboot-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcreboot-smp-x86.sh" ;;
|
||||||
|
"arch/x86/tools/mcstop+release-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcstop+release-smp-x86.sh" ;;
|
||||||
"arch/x86/tools/mcshutdown-builtin-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcshutdown-builtin-x86.sh" ;;
|
"arch/x86/tools/mcshutdown-builtin-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcshutdown-builtin-x86.sh" ;;
|
||||||
"arch/x86/tools/mcreboot.1") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcreboot.1:arch/x86/tools/mcreboot.1in" ;;
|
"arch/x86/tools/mcreboot.1") CONFIG_FILES="$CONFIG_FILES arch/x86/tools/mcreboot.1:arch/x86/tools/mcreboot.1in" ;;
|
||||||
"kernel/Makefile.dcfa") CONFIG_FILES="$CONFIG_FILES kernel/Makefile.dcfa" ;;
|
"kernel/Makefile.dcfa") CONFIG_FILES="$CONFIG_FILES kernel/Makefile.dcfa" ;;
|
||||||
|
|||||||
@ -167,6 +167,7 @@ AC_CONFIG_FILES([
|
|||||||
arch/x86/tools/mcshutdown-attached-mic.sh
|
arch/x86/tools/mcshutdown-attached-mic.sh
|
||||||
arch/x86/tools/mcreboot-builtin-x86.sh
|
arch/x86/tools/mcreboot-builtin-x86.sh
|
||||||
arch/x86/tools/mcreboot-smp-x86.sh
|
arch/x86/tools/mcreboot-smp-x86.sh
|
||||||
|
arch/x86/tools/mcstop+release-smp-x86.sh
|
||||||
arch/x86/tools/mcshutdown-builtin-x86.sh
|
arch/x86/tools/mcshutdown-builtin-x86.sh
|
||||||
arch/x86/tools/mcreboot.1:arch/x86/tools/mcreboot.1in
|
arch/x86/tools/mcreboot.1:arch/x86/tools/mcreboot.1in
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user