From: Nathan Lynch via B4 Submission Endpoint <devnull+nathanl.linux.ibm.com@kernel.org>
To: Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Kajol Jain <kjain@linux.ibm.com>,
Laurent Dufour <ldufour@linux.ibm.com>,
Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
Andrew Donnellan <ajd@linux.ibm.com>,
Nick Child <nnac123@linux.ibm.com>
Cc: Nathan Lynch <nathanl@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v2 00/19] RTAS maintenance
Date: Mon, 06 Feb 2023 12:54:16 -0600 [thread overview]
Message-ID: <20230125-b4-powerpc-rtas-queue-v2-0-9aa6bd058063@linux.ibm.com> (raw)
Proposed changes for the RTAS subsystem and client code.
Fixes that are subject to backporting are at the front of the queue.
The rest of the queue is roughly ordered with respect to maturity:
i.e. patches that have already garnered some review and discussion
precede newer, more experimental changes.
Major features:
* Static tracepoints around RTAS entry/exit.
* An allocator for work area buffers.
* A new client of the work area allocator in the form of a
higher-level API for PAPR system parameter retrieval.
* Constant-time symbolic RTAS function token lookups.
Tested with ppc64le in PowerVM LPARs and QEMU's pseries
model. Obsolescent RTAS platforms (chrp, cell, maple) get build
coverage.
---
Changes in v2:
* Drop applied patches:
- powerpc/rtas: document rtas_call()
- powerpc/rtasd: use correct OF API for event scan rate
- powerpc/rtas: avoid device tree lookups in rtas_os_term()
- powerpc/rtas: avoid scheduling in rtas_os_term()
- powerpc/pseries/eeh: use correct API for error log size
- powerpc/rtas: clean up rtas_error_log_max initialization
- powerpc/rtas: clean up includes
- powerpc/rtas: define pr_fmt and convert printk call sites
- powerpc/rtas: mandate RTAS syscall filtering
* Additions:
- Safe early-boot fallback in rtas_busy_delay().
- Fixes for missed RTAS function call retries in various places.
- Remove RTAS timebase sync from pseries, previously posted
separately as "powerpc/pseries: drop RTAS-based timebase
synchronization":
https://lore.kernel.org/linuxppc-dev/20230110042845.121792-1-nathanl@linux.ibm.com/T/#u
- RTAS work area buffer allocator.
- Conversion of pseries DLPAR code to work area allocator.
- A pseries-specific PAPR system parameter API built on top of the
RTAS work area allocator.
- Conversion of ibm,get-system-parameter users to papr_sysparm API.
- New rtas_function_token() API and associated conversions.
* Modifications to existing patches:
- Convert RTAS tracepoint definitions to unconditional
variants (TRACE_EVENT_CONDITION() -> TRACE_EVENT()), dropping a
cpu_online() check that duplicates work already done at the call
site.
- Skip tracepoints in unsafe contexts (real mode, CPU
offline). (Nicholas Piggin)
- Use bool bitfield for "banned on LE" function flag.
- Better documentation for "banned on LE" function flag. (Andrew Donnellan)
- Drop unnecessary cast for xa_load() key argument. (Nick Child)
* Link to v1: https://lore.kernel.org/r/20221118150751.469393-1-nathanl@linux.ibm.com
---
Nathan Lynch (19):
powerpc/rtas: handle extended delays safely in early boot
powerpc/perf/hv-24x7: add missing RTAS retry status handling
powerpc/pseries/lpar: add missing RTAS retry status handling
powerpc/pseries/lparcfg: add missing RTAS retry status handling
powerpc/pseries/setup: add missing RTAS retry status handling
powerpc/pseries: drop RTAS-based timebase synchronization
powerpc/rtas: improve function information lookups
powerpc/rtas: strengthen do_enter_rtas() type safety, drop inline
powerpc/tracing: tracepoints for RTAS entry and exit
powerpc/rtas: add tracepoints around RTAS entry
powerpc/rtas: add work area allocator
powerpc/pseries/dlpar: use RTAS work area API
powerpc/pseries: PAPR system parameter API
powerpc/pseries: convert CMO probe to papr_sysparm API
powerpc/pseries/lparcfg: convert to papr_sysparm API
powerpc/pseries/hv-24x7: convert to papr_sysparm API
powerpc/pseries/lpar: convert to papr_sysparm API
powerpc/rtas: introduce rtas_function_token() API
powerpc/rtas: arch-wide function token lookup conversions
arch/powerpc/include/asm/papr-sysparm.h | 38 ++
arch/powerpc/include/asm/rtas-work-area.h | 45 ++
arch/powerpc/include/asm/rtas.h | 185 +++++
arch/powerpc/include/asm/trace.h | 103 +++
arch/powerpc/kernel/Makefile | 3 +-
arch/powerpc/kernel/rtas-proc.c | 24 +-
arch/powerpc/kernel/rtas-rtc.c | 6 +-
arch/powerpc/kernel/rtas-work-area.c | 208 ++++++
arch/powerpc/kernel/rtas.c | 942 +++++++++++++++++++++-----
arch/powerpc/kernel/rtas_flash.c | 21 +-
arch/powerpc/kernel/rtas_pci.c | 8 +-
arch/powerpc/kernel/rtasd.c | 2 +-
arch/powerpc/perf/hv-24x7.c | 45 +-
arch/powerpc/platforms/52xx/efika.c | 4 +-
arch/powerpc/platforms/cell/ras.c | 4 +-
arch/powerpc/platforms/cell/smp.c | 4 +-
arch/powerpc/platforms/chrp/nvram.c | 4 +-
arch/powerpc/platforms/chrp/pci.c | 4 +-
arch/powerpc/platforms/chrp/setup.c | 4 +-
arch/powerpc/platforms/maple/setup.c | 4 +-
arch/powerpc/platforms/pseries/Makefile | 2 +-
arch/powerpc/platforms/pseries/dlpar.c | 29 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 22 +-
arch/powerpc/platforms/pseries/hotplug-cpu.c | 4 +-
arch/powerpc/platforms/pseries/io_event_irq.c | 2 +-
arch/powerpc/platforms/pseries/lpar.c | 37 +-
arch/powerpc/platforms/pseries/lparcfg.c | 104 +--
arch/powerpc/platforms/pseries/mobility.c | 4 +-
arch/powerpc/platforms/pseries/msi.c | 4 +-
arch/powerpc/platforms/pseries/nvram.c | 4 +-
arch/powerpc/platforms/pseries/papr-sysparm.c | 151 +++++
arch/powerpc/platforms/pseries/pci.c | 2 +-
arch/powerpc/platforms/pseries/ras.c | 2 +-
arch/powerpc/platforms/pseries/setup.c | 27 +-
arch/powerpc/platforms/pseries/smp.c | 12 +-
arch/powerpc/sysdev/xics/ics-rtas.c | 8 +-
arch/powerpc/xmon/xmon.c | 16 +-
37 files changed, 1660 insertions(+), 428 deletions(-)
---
base-commit: 0bfb97203f5f300777624a2ad6f8f84aea3e8658
change-id: 20230125-b4-powerpc-rtas-queue-cf85ec465ff9
Best regards,
--
Nathan Lynch <nathanl@linux.ibm.com>
next reply other threads:[~2023-02-06 19:03 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 18:54 Nathan Lynch via B4 Submission Endpoint [this message]
2023-02-06 18:54 ` [PATCH v2 01/19] powerpc/rtas: handle extended delays safely in early boot Nathan Lynch via B4 Submission Endpoint
2023-02-08 11:20 ` Michael Ellerman
2023-02-08 13:14 ` Nathan Lynch
2023-02-10 5:54 ` Michael Ellerman
2023-02-06 18:54 ` [PATCH v2 02/19] powerpc/perf/hv-24x7: add missing RTAS retry status handling Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 03/19] powerpc/pseries/lpar: " Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 04/19] powerpc/pseries/lparcfg: " Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 05/19] powerpc/pseries/setup: " Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 06/19] powerpc/pseries: drop RTAS-based timebase synchronization Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 07/19] powerpc/rtas: improve function information lookups Nathan Lynch via B4 Submission Endpoint
2023-02-08 11:57 ` Michael Ellerman
2023-02-08 13:16 ` Nathan Lynch
2023-02-06 18:54 ` [PATCH v2 08/19] powerpc/rtas: strengthen do_enter_rtas() type safety, drop inline Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 09/19] powerpc/tracing: tracepoints for RTAS entry and exit Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 10/19] powerpc/rtas: add tracepoints around RTAS entry Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 11/19] powerpc/rtas: add work area allocator Nathan Lynch via B4 Submission Endpoint
2023-02-08 11:58 ` Michael Ellerman
2023-02-08 14:48 ` Nathan Lynch
2023-02-10 6:07 ` Michael Ellerman
2023-02-06 18:54 ` [PATCH v2 12/19] powerpc/pseries/dlpar: use RTAS work area API Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 13/19] powerpc/pseries: PAPR system parameter API Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 14/19] powerpc/pseries: convert CMO probe to papr_sysparm API Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 15/19] powerpc/pseries/lparcfg: convert " Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 16/19] powerpc/pseries/hv-24x7: " Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 17/19] powerpc/pseries/lpar: " Nathan Lynch via B4 Submission Endpoint
2023-02-06 18:54 ` [PATCH v2 18/19] powerpc/rtas: introduce rtas_function_token() API Nathan Lynch via B4 Submission Endpoint
2023-02-08 12:09 ` Michael Ellerman
2023-02-08 15:44 ` Nathan Lynch
2023-02-06 18:54 ` [PATCH v2 19/19] powerpc/rtas: arch-wide function token lookup conversions Nathan Lynch via B4 Submission Endpoint
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=20230125-b4-powerpc-rtas-queue-v2-0-9aa6bd058063@linux.ibm.com \
--to=devnull+nathanl.linux.ibm.com@kernel.org \
--cc=ajd@linux.ibm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=kjain@linux.ibm.com \
--cc=ldufour@linux.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mahesh@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=nathanl@linux.ibm.com \
--cc=nnac123@linux.ibm.com \
--cc=npiggin@gmail.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).