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
|