xfs
[Top] [All Lists]

Re: [PATCH 1/2] xfstests: implemented _no_of_online_cpus() function

To: Stanislav Kholmanskikh <stanislav.kholmanskikh@xxxxxxxxxx>
Subject: Re: [PATCH 1/2] xfstests: implemented _no_of_online_cpus() function
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 24 Oct 2013 08:31:52 +1100
Cc: xfs@xxxxxxxxxxx, vasily.isaenko@xxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1382529524-2184-2-git-send-email-stanislav.kholmanskikh@xxxxxxxxxx>
References: <1382529524-2184-1-git-send-email-stanislav.kholmanskikh@xxxxxxxxxx> <1382529524-2184-2-git-send-email-stanislav.kholmanskikh@xxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Oct 23, 2013 at 03:58:43PM +0400, Stanislav Kholmanskikh wrote:
> Its purpose is to get a number of online cpus.
> 
> Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@xxxxxxxxxx>
> ---
>  common/rc |   19 +++++++++++++++++++
>  1 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index 77e96c4..ff2f7fe 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2145,6 +2145,25 @@ _scale_fsstress_args()
>      echo $args
>  }
>  
> +_no_of_online_cpus()
> +{
> +     count=0
> +
> +     for i in `cat /sys/devices/system/cpu/online | $SED_PROG 's/,/ /g'`; do
> +             count=$(( $count + 1 ))

That's just as kernel/platform dependent as using /proc/cpuinfo.

Indeed, note this in generic/273:

_supported_os IRIX Linux

It's supposed to work on Irix as well, which means using sysfs is
just as wrong as using /proc/cpuinfo.

sysconf is the prefered platform neutral interface for getting this
sort of information. Something as simple as:

$ getconf _NPROCESSORS_ONLN
8
$

or adding a sysconf(_SC_NPROCESSORS_ONLN) call to src/features.c (if
we don't want to rely on systems having getconf installed) would be
much better than manually parsing magic proc or sysfs files.

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>