All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Lynch <nathanl@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: aik@ozlabs.ru, ajd@linux.ibm.com, tyreld@linux.ibm.com
Subject: [RFC 00/10] powerpc/rtas: improved busy and extended delay status handling
Date: Mon,  3 May 2021 22:03:48 -0500	[thread overview]
Message-ID: <20210504030358.1715034-1-nathanl@linux.ibm.com> (raw)

This is an attempt at providing clearer names as discussed here:

https://github.com/linuxppc/issues/issues/164

as well as providing better behavior for RTAS_BUSY (-2) and small
extended delay values, which in my experience seem more common than
the larger ones. In testing PREEMPT_NONE kernels with CPUs busy, I see
the elapsed time for memory add operations roughly halved, while
memory remove operations' elapsed time shrinks by about ~25%. This is
achieved without significantly more time spent on CPU:

(- is before, + is after)

  Performance counter stats for 'drmgr -c mem -a -q 10' (10 runs):

-             1,898      probe:rtas_call           #    0.003 M/sec                    ( +-  2.20% )
-            751.57 msec task-clock                #    0.289 CPUs utilized            ( +-  1.56% )
+             1,969      probe:rtas_call           #    0.003 M/sec                    ( +-  2.69% )
+            766.20 msec task-clock                #    0.688 CPUs utilized            ( +-  1.99% )

-             2.605 +- 0.148 seconds time elapsed  ( +-  5.70% )
+            1.1129 +- 0.0660 seconds time elapsed  ( +-  5.93% )

  Performance counter stats for 'drmgr -c mem -r -q 10' (10 runs):

-               673      probe:rtas_call           #    0.002 M/sec                    ( +-  0.55% )
-            318.36 msec task-clock                #    0.234 CPUs utilized            ( +-  0.42% )
+               692      probe:rtas_call           #    0.002 M/sec                    ( +-  0.73% )
+            320.87 msec task-clock                #    0.309 CPUs utilized            ( +-  0.34% )

-             1.362 +- 0.100 seconds time elapsed  ( +-  7.37% )
+            1.0372 +- 0.0468 seconds time elapsed  ( +-  4.51% )

Questions / concerns / to do:
* I don't love the new API function names.
* Introduces three new APIs when two likely would suffice.
* Need to convert eeh_pseries and scanlog.
* rtas_busy_delay() and rtas_busy_delay_time() not yet removed.

Nathan Lynch (10):
  powerpc/rtas: new APIs for busy and extended delay statuses
  powerpc/rtas: do not schedule in rtas_os_term()
  powerpc/rtas-rtc: convert get-time-of-day to rtas_force_spin_if_busy()
  powerpc/rtas-rtc: convert set-time-of-day to rtas_sched_if_busy()
  powerpc/pseries/fadump: convert to rtas_sched_if_busy()
  powerpc/pseries/msi: convert to rtas_sched_if_busy()
  powerpc/pseries/iommu: convert to rtas_sched_if_busy()
  powerpc/pseries/dlpar: convert to rtas_sched_if_busy()
  powerpc/rtas: convert to rtas_sched_if_busy()
  powerpc/rtas_flash: convert to rtas_sched_if_busy()

 arch/powerpc/include/asm/rtas.h              |   4 +
 arch/powerpc/kernel/rtas-rtc.c               |  38 +---
 arch/powerpc/kernel/rtas.c                   | 178 ++++++++++++++++++-
 arch/powerpc/kernel/rtas_flash.c             |   4 +-
 arch/powerpc/platforms/pseries/dlpar.c       |   2 +-
 arch/powerpc/platforms/pseries/iommu.c       |   2 +-
 arch/powerpc/platforms/pseries/msi.c         |   4 +-
 arch/powerpc/platforms/pseries/rtas-fadump.c |  22 +--
 8 files changed, 190 insertions(+), 64 deletions(-)

-- 
2.30.2


             reply	other threads:[~2021-05-04  3:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-04  3:03 Nathan Lynch [this message]
2021-05-04  3:03 ` [RFC 01/10] powerpc/rtas: new APIs for busy and extended delay statuses Nathan Lynch
2021-05-13  9:59   ` Alexey Kardashevskiy
2021-05-04  3:03 ` [RFC 02/10] powerpc/rtas: do not schedule in rtas_os_term() Nathan Lynch
2021-05-04  3:03 ` [RFC 03/10] powerpc/rtas-rtc: convert get-time-of-day to rtas_force_spin_if_busy() Nathan Lynch
2021-05-04  3:03 ` [RFC 04/10] powerpc/rtas-rtc: convert set-time-of-day to rtas_sched_if_busy() Nathan Lynch
2021-05-04  3:03 ` [RFC 05/10] powerpc/pseries/fadump: convert " Nathan Lynch
2021-05-04  3:03 ` [RFC 06/10] powerpc/pseries/msi: " Nathan Lynch
2021-05-04  3:03 ` [RFC 07/10] powerpc/pseries/iommu: " Nathan Lynch
2021-05-04  3:03 ` [RFC 08/10] powerpc/pseries/dlpar: " Nathan Lynch
2021-05-04  3:03 ` [RFC 09/10] powerpc/rtas: " Nathan Lynch
2021-05-04  3:03 ` [RFC 10/10] powerpc/rtas_flash: " Nathan Lynch
2021-05-04 11:23   ` kernel test robot

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=20210504030358.1715034-1-nathanl@linux.ibm.com \
    --to=nathanl@linux.ibm.com \
    --cc=aik@ozlabs.ru \
    --cc=ajd@linux.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=tyreld@linux.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.