[PATCH v2] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu

Mike Rapoport
Wed, 04 May 2016 07:59:53 -0000

/dev/cpu is only available on x86 with certain modules (e.g. msr) enabled.
Using lscpu to get processors count is more portable.

Signed-off-by: Mike Rapoport <rppt at linux.vnet.ibm.com>
---
v2: use lspcu instead of /proc/cpuinfo as per Cornelia's suggestion

 tools/virtio/ringtest/run-on-all.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/virtio/ringtest/run-on-all.sh
b/tools/virtio/ringtest/run-on-all.sh
index 52b0f71..0177d50 100755
--- a/tools/virtio/ringtest/run-on-all.sh
+++ b/tools/virtio/ringtest/run-on-all.sh
@@ -3,10 +3,10 @@
 #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=$(cd /dev/cpu; ls|grep -v '[a-z]'|sort -n|tail -1)
+HOST_AFFINITY=$(lscpu -p | tail -n 1 | cut -d',' -f1)

 #run command on all cpus
-for cpu in $(cd /dev/cpu; ls|grep -v '[a-z]'|sort -n);
+for cpu in $(seq 0 $HOST_AFFINITY)
 do
 	#Don't run guest and host on same CPU
 	#It actually works ok if using signalling
--
1.9.1