All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: Tobias Schaffner <tobias.schaffner@siemens.com>
Cc: xenomai@lists.linux.dev,  jan.kiszka@siemens.com,
	shanmu <shanmu1901@gmail.com>
Subject: Re: [PATCH dovetail 6.11 v2 0/3] RISC-V: IRQ pipelining core
Date: Mon, 04 Nov 2024 10:54:04 +0100	[thread overview]
Message-ID: <87plnbwchv.fsf@xenomai.org> (raw)
In-Reply-To: <20241004190633.1814057-1-tobias.schaffner@siemens.com> (Tobias Schaffner's message of "Fri, 4 Oct 2024 21:06:30 +0200")


Hi,

I started a Dovetail branch [1] for the RISC-V port, forward porting
your series (since it's SMP-enabled already) to 6.12-rc6. The code was
split in few more patches, including a couple of fixes we need as
well. The latter may be folded into the core pipeline support later
on. From that point, we could then pick the upper layer of the Dovetail
code already ported by Shanmu in order to enable EVL on top.

I recommend enabling the following switches when working on this port,
so that we can detect any issue with the virtual interrupt state:

CONFIG_PROVE_LOCKING
CONFIG_PREEMPT_RT
CONFIG_DEBUG_PREEMPT
CONFIG_RISCV_ISA_V_PREEMPTIVE

Here we go, so far:

root@homelab-qemu-riscv64:~# uname -a
Linux homelab-qemu-riscv64 6.12.0-rc6-00145-gb4167b69ed0e #20 SMP PREEMPT_RT IRQ_PIPELINE Mon Nov  4 10:26:04 CET 2024 riscv64 GNU/Linux

PS: I switched from RISC-V: to riscv: in the shortlogs to follow the
(most) common scheme used so far, which is likely to reuse the name of
the architecture folder.

[1] https://source.denx.de/Xenomai/linux-dovetail/-/tree/wip/dovetail-riscv?ref_type=heads

Tobias Schaffner <tobias.schaffner@siemens.com> writes:

> Hi all,
>
> This introduces IRQ pipelining for RISC-V into Dovetail. The patches
> are on top of v6.11-dovetail-rebase. Feel free to ask for other targets
> if needed.
>
> I thought about splitting the patch up into smaller parts, but decided
> to stick to the structure of the analogous patches of the other
> architectures. Maybe this will make the rebasing process easier.
>
> Testing was done in QEMU with IRQ pipeline torture tests, both with and
> without SMP enabled.
>
> Changes since v1:
> * Removed some dovetail specific changes. These will be readded in a
>   later dovetail patch series. Thanks for the kind review @rpm!
> * Added a patch that guards _TIF_RETUSER with an CONFIG_DOVETAIL ifdef
>   to allow building with IRQ pipelining but without dovetail being
>   implemented.
> * Fix unneeded reordering in riscv irqflags.h to make the diff nicer.
>
> Tobias Schaffner (3):
>   dovetail: Guard _TIF_RETUSER with CONFIG_DOVETAIL
>   clocksource/timer-riscv: irq_pipeline: enable pipelined clock events
>   RISC-V: irq_pipeline: add IRQ pipelining core
>
>  arch/riscv/Kconfig                         |   1 +
>  arch/riscv/include/asm/irq_pipeline.h      | 143 +++++++++++++++++++++
>  arch/riscv/include/asm/irqflags.h          |  25 ++--
>  arch/riscv/include/asm/thread_info.h       |   8 ++
>  arch/riscv/kernel/Makefile                 |   1 +
>  arch/riscv/kernel/irq_pipeline.c           |  26 ++++
>  arch/riscv/kernel/smp.c                    |  93 +++++++++++++-
>  arch/riscv/kernel/smpboot.c                |   2 +-
>  arch/riscv/kernel/traps.c                  |  51 +++++++-
>  arch/riscv/mm/fault.c                      |  83 ++++++++++--
>  drivers/clocksource/timer-riscv.c          |  11 +-
>  drivers/irqchip/irq-riscv-aplic-direct.c   |   3 +-
>  drivers/irqchip/irq-riscv-aplic-msi.c      |   3 +-
>  drivers/irqchip/irq-riscv-imsic-platform.c |   3 +-
>  drivers/irqchip/irq-riscv-intc.c           |   2 +
>  drivers/irqchip/irq-sifive-plic.c          |   3 +-
>  include/linux/entry-common.h               |   4 +-
>  17 files changed, 420 insertions(+), 42 deletions(-)
>  create mode 100644 arch/riscv/include/asm/irq_pipeline.h
>  create mode 100644 arch/riscv/kernel/irq_pipeline.c

-- 
Philippe.

      parent reply	other threads:[~2024-11-04  9:54 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-04 19:06 [PATCH dovetail 6.11 v2 0/3] RISC-V: IRQ pipelining core Tobias Schaffner
2024-10-04 19:06 ` [PATCH v2 1/3] dovetail: Guard _TIF_RETUSER with CONFIG_DOVETAIL Tobias Schaffner
2024-10-05 10:16   ` Pierre FICHEUX
2024-10-05 10:31     ` Schaffner, Tobias
2024-10-04 19:06 ` [PATCH v2 2/3] clocksource/timer-riscv: irq_pipeline: enable pipelined clock events Tobias Schaffner
2024-10-04 19:06 ` [PATCH v2 3/3] RISC-V: irq_pipeline: add IRQ pipelining core Tobias Schaffner
2024-11-04  9:54 ` Philippe Gerum [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=87plnbwchv.fsf@xenomai.org \
    --to=rpm@xenomai.org \
    --cc=jan.kiszka@siemens.com \
    --cc=shanmu1901@gmail.com \
    --cc=tobias.schaffner@siemens.com \
    --cc=xenomai@lists.linux.dev \
    /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.