12345678910111213141516171819202122232425 |
- #!/bin/sh
- CPUS_ONLINE=$(lscpu --online -p=cpu|grep -v -e '#')
- #use last CPU for host. Why not the first?
- #many devices tend to use cpu0 by default so
- #it tends to be busier
- HOST_AFFINITY=$(echo "${CPUS_ONLINE}"|tail -n 1)
- #run command on all cpus
- for cpu in $CPUS_ONLINE
- do
- #Don't run guest and host on same CPU
- #It actually works ok if using signalling
- if
- (echo "$@" | grep -e "--sleep" > /dev/null) || \
- test $HOST_AFFINITY '!=' $cpu
- then
- echo "GUEST AFFINITY $cpu"
- "$@" --host-affinity $HOST_AFFINITY --guest-affinity $cpu
- fi
- done
- echo "NO GUEST AFFINITY"
- "$@" --host-affinity $HOST_AFFINITY
- echo "NO AFFINITY"
- "$@"
|