Re: [RFC PATCH] make SMP option only use online cpus (cyclictest)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, 14 Aug 2014, Joakim Hernberg wrote:

> When I boot my 8 core i7 laptop with the maxcpus=4 kernel boot flag,
> cyclictest -S runs 8 threads.  This patch makes it only use the online
> cpus instead.
> 
> diff --git a/src/cyclictest/cyclictest.c
> b/src/cyclictest/cyclictest.c index 4547831..92fc346 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -1740,7 +1740,7 @@ int main(int argc, char **argv)
>         sigset_t sigset;
>         int signum = SIGALRM;
>         int mode;
> -       int max_cpus = sysconf(_SC_NPROCESSORS_CONF);
> +       int max_cpus = sysconf(_SC_NPROCESSORS_ONLN);
>         int i, ret = -1;
>         int status;
>  
> diff --git a/src/cyclictest/rt_numa.h b/src/cyclictest/rt_numa.h
> index e64c446..c2b3e85 100644
> --- a/src/cyclictest/rt_numa.h
> +++ b/src/cyclictest/rt_numa.h
> @@ -128,7 +128,7 @@ static int rt_numa_numa_node_of_cpu(int cpu)
>         int max_node, max_cpus;
>  
>         max_node = numa_max_node();
> -       max_cpus = sysconf(_SC_NPROCESSORS_CONF);
> +       max_cpus = sysconf(_SC_NPROCESSORS_ONLN);
>  
>         if (cpu > max_cpus) {
>                 errno = EINVAL;
> 
> --

This is fine, in anycase, it's not less robust than what we are currently 
doing. (I suppose we really should be checking the result of sysconf)

I changed the description a little bit.

Clark, I pushed the following version to my repo, please pull

>From 863f1482220034de0a85f8150384931318325953 Mon Sep 17 00:00:00 2001
From: Joakim Hernberg <jbh@xxxxxxxxxx>
Date: Thu, 14 Aug 2014 19:29:29 +0200
Subject: [PATCH] cyclictest: make affinity option only use number of online
 cpus

When I boot my 8 core i7 laptop with the maxcpus=4 kernel boot flag,
cyclictest -S runs 8 threads.  This patch makes it only use the number
of online cpus instead.

Signed-off-by: Joakim Hernberg <jhernberg@xxxxxxxxxx>
Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>
---
 src/cyclictest/cyclictest.c | 2 +-
 src/cyclictest/rt_numa.h    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index a3e7b1d6c377..c727d54364b1 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -1763,7 +1763,7 @@ int main(int argc, char **argv)
 	sigset_t sigset;
 	int signum = SIGALRM;
 	int mode;
-	int max_cpus = sysconf(_SC_NPROCESSORS_CONF);
+	int max_cpus = sysconf(_SC_NPROCESSORS_ONLN);
 	int i, ret = -1;
 	int status;
 
diff --git a/src/cyclictest/rt_numa.h b/src/cyclictest/rt_numa.h
index 60a143721da1..06c9420e53cc 100644
--- a/src/cyclictest/rt_numa.h
+++ b/src/cyclictest/rt_numa.h
@@ -128,7 +128,7 @@ static int rt_numa_numa_node_of_cpu(int cpu)
 	int max_node, max_cpus;
 
 	max_node = numa_max_node();
-	max_cpus = sysconf(_SC_NPROCESSORS_CONF);
+	max_cpus = sysconf(_SC_NPROCESSORS_ONLN);
 
 	if (cpu > max_cpus) {
 		errno = EINVAL;
-- 
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux