blob: 29b0d3920bfc412a049b1478a7074869cbd113df [file] [log] [blame]
Michael S. Tsirkin481eaec2016-01-21 14:44:10 +02001#!/bin/sh
2
Halil Pasic12274f22016-08-29 18:25:22 +02003CPUS_ONLINE=$(lscpu --online -p=cpu|grep -v -e '#')
Michael S. Tsirkin481eaec2016-01-21 14:44:10 +02004#use last CPU for host. Why not the first?
5#many devices tend to use cpu0 by default so
6#it tends to be busier
Halil Pasic12274f22016-08-29 18:25:22 +02007HOST_AFFINITY=$(echo "${CPUS_ONLINE}"|tail -n 1)
Michael S. Tsirkin481eaec2016-01-21 14:44:10 +02008
9#run command on all cpus
Halil Pasic12274f22016-08-29 18:25:22 +020010for cpu in $CPUS_ONLINE
Michael S. Tsirkin481eaec2016-01-21 14:44:10 +020011do
12 #Don't run guest and host on same CPU
13 #It actually works ok if using signalling
14 if
15 (echo "$@" | grep -e "--sleep" > /dev/null) || \
16 test $HOST_AFFINITY '!=' $cpu
17 then
18 echo "GUEST AFFINITY $cpu"
19 "$@" --host-affinity $HOST_AFFINITY --guest-affinity $cpu
20 fi
21done
22echo "NO GUEST AFFINITY"
23"$@" --host-affinity $HOST_AFFINITY
24echo "NO AFFINITY"
25"$@"