Mike Rapoport
2016-May-04 07:59 UTC
[PATCH v2] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
/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
Cornelia Huck
2016-May-04 08:14 UTC
[PATCH v2] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
On Wed, 4 May 2016 10:59:53 +0300 Mike Rapoport <rppt at linux.vnet.ibm.com> wrote:> /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)Shorter: lscpu -p=cpu | tail -1 Should be good enough for a test tool :)> > #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
Mike Rapoport
2016-May-04 10:15 UTC
[PATCH v3] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
/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> --- v3: simplify by using lscpu -p=cpu 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..2e69ca8 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=cpu | tail -1) #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
Reasonably Related Threads
- [PATCH v3] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
- [PATCH v2] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
- [PATCH v2] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
- [PATCH] tools/virtio/ringtest: fix run-on-all.sh to work without /dev/cpu
- [PATCH] tools/virtio/ringtest: add usage example to README