Re: [PATCH v4 1/2] cyclictest: Move main pid setaffinity handling into a function
From: John Kacur <jkacur@redhat.com>
Date: 2021-05-21 20:20:53
On Tue, 18 May 2021, Jonathan Schwender wrote:
quoted hunk ↗ jump to hunk
Move error handling for setting the affinity of the main thread into a separate function. This prevents duplicating the code in the next commit, where the main thread pid can be restricted to one of two bitmasks depending on the passed parameters. Signed-off-by: Jonathan Schwender <redacted> --- src/cyclictest/cyclictest.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c index 59dda19..3bab3b2 100644 --- a/src/cyclictest/cyclictest.c +++ b/src/cyclictest/cyclictest.c@@ -1768,6 +1768,17 @@ static void write_stats(FILE *f, void *data) fprintf(f, " }\n"); }
How about set_thread_affinity() since you want to use the function for the main thread plus other threads.
quoted hunk ↗ jump to hunk
+static void set_main_thread_affinity(struct bitmask *cpumask) +{ + int res; + + errno = 0; + res = numa_sched_setaffinity(getpid(), cpumask); + if (res != 0) + warn("Couldn't setaffinity in main thread: %s\n", + strerror(errno)); +} + int main(int argc, char **argv) { sigset_t sigset;@@ -1792,13 +1803,7 @@ int main(int argc, char **argv) /* Restrict the main pid to the affinity specified by the user */ if (affinity_mask != NULL) { - int res; - - errno = 0; - res = numa_sched_setaffinity(getpid(), affinity_mask); - if (res != 0) - warn("Couldn't setaffinity in main thread: %s\n", strerror(errno)); - + set_main_thread_affinity(affinity_mask); if (verbose) printf("Using %u cpus.\n", numa_bitmask_weight(affinity_mask));-- 2.31.1