linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Kacur <jkacur@redhat.com>
To: Daniel Wagner <dwagner@suse.de>
Cc: Clark Williams <williams@redhat.com>, linux-rt-users@vger.kernel.org
Subject: Re: [rt-tests v2 v2 00/20] rt-numa.h cleanups
Date: Tue, 26 Jan 2021 00:04:56 -0500 (EST)	[thread overview]
Message-ID: <47fed8-c9dd-83ba-87bd-8c527e475912@redhat.com> (raw)
In-Reply-To: <20201218161843.1764-1-dwagner@suse.de>



On Fri, 18 Dec 2020, Daniel Wagner wrote:

> This series cleans up the rt-numa.h header.
> 
> As we have a hard dependency on libnuma we can simplify the code in
> cyclictest. This allows remove all the small helpers in rt_numa.h. And
> with this we can remove the header and reduce the confusion with
> rt-numa.h

I'm not entirely convinced. The code has been moving in this direction,
but I don't know what motivation there is for libnuma people to provide 
libnuma on architectures without numa. This is what the code used to do, 
it wrapped these calls in a way that we could call them whether numa was 
available or not. On Fedora there is no libnuma (numactl) for arm 
processors currently afaik as an example. But, there are a lot of good 
changes here and I  want the code to go forward, so there is no point 
holding on to functionality that we largely got rid of, but if in the
future we have arches that won't work on some distributions,
we may be forced to reimpliment the numa wrappers.

> 
> While at it, I simplified the --smp vs --affinity vs --threads
> logic. There is no need for additional variables to keep state. With
> this we also make --affinity to behave as with the rest of
> rt-tests. That is a plan -a will be the same as with -S. There is no
> need for -S anymore but I think we should leave it in place for
> backwards compatibility. I suspect, there must be a lot of muscle
> memory out there :)

This is really good. Note, the first step that got us here, was the code
that just detected whether numa was available and used it automatically
if it was, unless smp was specified. Believe it or not though, some of
the motivation for that was to reduce the alphabet soup of options on
cyclictest. If -S is no longer needed, it should be removed, people can
learn new muscle memory. (I'm typing this on a Canadian (English layout)
keyboard after using a German keyboard for 13+ years.)


> 
> Since signaltest has the same code as cyclictest, cleanup this tool as
> well.
> 
> With all those cleanups in cyclictest and signaltest, rt-numa.h
> contains only a three functions. The final part of the series is to
> remove unnecessary function arguments (max_cpus). This also fixes the
> theoretical problem that a sparse cpumask would not be handled
> correctly.
> 
> changes v2:
>   - added more cleanup patches (7-20)
> 
> Daniel Wagner (20):
>   cyclictest: Always use libnuma
>   cyclictest: Use numa API directly
>   cyclictest: Use affinity_mask for stearing thread placement
>   cyclictest: Mimik --smp behavior with --affinity
>   cyclictest: Simplify --smp vs --affinity vs --threads argument logic
>   cyclictest: Move verbose message into main
>   signaltest: Always use libnuma
>   signaltest: Use affinity_mask for stearing thread placement
>   signaltest:  Simplify --smp vs --affinity vs --threads argument logic
>   rt-numa: Remove unused definitions and numa_initialize()
>   rt-numa: Add generic cpu_for_thread() helper
>   rt-numa: Use mask size for iterator limit
>   rt-numa: Remove max_cpus argument from parse_cpusmask
>   rt-numa: Use error message helpers
>   signaltest: Remove unused max_cpus argument from process_options
>   cyclictest: Remove unused max_cpus argument from process_options
>   rt-numa: Use CPU_SETSIZE as upper loop limit
>   rt-numa: Remove used max_cpus argument from cpu_for_thread()
>   cyclictest: Remove max cpus used verbose information
>   cyclictest: Remove unecessary local variable
> 
>  src/cyclictest/cyclictest.c | 177 +++++++++++++-----------------------
>  src/cyclictest/rt_numa.h    |  98 --------------------
>  src/include/rt-numa.h       |  13 +--
>  src/lib/rt-numa.c           |  44 ++++-----
>  src/oslat/oslat.c           |   3 +-
>  src/signaltest/signaltest.c |  80 ++++------------
>  6 files changed, 101 insertions(+), 314 deletions(-)
>  delete mode 100644 src/cyclictest/rt_numa.h
> 
> -- 
> 2.29.2
> 
> 

      parent reply	other threads:[~2021-01-27  3:54 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18 16:18 [rt-tests v2 v2 00/20] rt-numa.h cleanups Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 01/20] cyclictest: Always use libnuma Daniel Wagner
2021-01-26  5:10   ` John Kacur
2021-02-19 13:44   ` Kurt Kanzenbach
2021-02-19 14:12     ` Daniel Wagner
2021-02-19 14:39       ` Kurt Kanzenbach
2021-02-19 14:54         ` Daniel Wagner
2021-02-19 15:17           ` Sebastian Andrzej Siewior
2021-02-19 15:21             ` Christian Eggers
2021-02-19 16:16               ` Daniel Wagner
2021-02-19 16:21                 ` John Kacur
2021-02-19 16:27                   ` Christian Eggers
2021-02-19 16:35                     ` Daniel Wagner
2021-02-19 16:39                     ` John Kacur
2021-02-19 17:07                     ` John Kacur
2021-02-19 16:45     ` John Kacur
2020-12-18 16:18 ` [rt-tests v2 v2 02/20] cyclictest: Use numa API directly Daniel Wagner
2021-01-26  5:31   ` John Kacur
2021-01-26  8:11     ` Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 03/20] cyclictest: Use affinity_mask for stearing thread placement Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 04/20] cyclictest: Mimik --smp behavior with --affinity Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 05/20] cyclictest: Simplify --smp vs --affinity vs --threads argument logic Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 06/20] cyclictest: Move verbose message into main Daniel Wagner
2021-01-26  6:28   ` John Kacur
2020-12-18 16:18 ` [rt-tests v2 v2 07/20] signaltest: Always use libnuma Daniel Wagner
2021-01-26  6:29   ` John Kacur
2020-12-18 16:18 ` [rt-tests v2 v2 08/20] signaltest: Use affinity_mask for stearing thread placement Daniel Wagner
2021-01-26  6:31   ` John Kacur
2021-01-26  8:15     ` Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 09/20] signaltest: Simplify --smp vs --affinity vs --threads argument logic Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 10/20] rt-numa: Remove unused definitions and numa_initialize() Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 11/20] rt-numa: Add generic cpu_for_thread() helper Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 12/20] rt-numa: Use mask size for iterator limit Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 13/20] rt-numa: Remove max_cpus argument from parse_cpusmask Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 14/20] rt-numa: Use error message helpers Daniel Wagner
2021-01-26  6:40   ` John Kacur
2020-12-18 16:18 ` [rt-tests v2 v2 15/20] signaltest: Remove unused max_cpus argument from process_options Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 16/20] cyclictest: " Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 17/20] rt-numa: Use CPU_SETSIZE as upper loop limit Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 18/20] rt-numa: Remove used max_cpus argument from cpu_for_thread() Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 19/20] cyclictest: Remove max cpus used verbose information Daniel Wagner
2020-12-18 16:18 ` [rt-tests v2 v2 20/20] cyclictest: Remove unecessary local variable Daniel Wagner
2021-01-22 12:51 ` [rt-tests v2 v2 00/20] rt-numa.h cleanups Daniel Wagner
2021-01-26  5:04 ` John Kacur [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47fed8-c9dd-83ba-87bd-8c527e475912@redhat.com \
    --to=jkacur@redhat.com \
    --cc=dwagner@suse.de \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=williams@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).