From: "Heiko Stübner" <heiko@sntech.de>
To: Ard Biesheuvel <ardb@kernel.org>, Andrew Jones <ajones@ventanamicro.com>
Cc: linux-riscv@lists.infradead.org, palmer@dabbelt.com,
christoph.muellner@vrull.eu, prabhakar.csengg@gmail.com,
conor@kernel.org, philipp.tomsich@vrull.eu,
emil.renner.berthing@canonical.com, linux-efi@vger.kernel.org,
Conor Dooley <conor.dooley@microchip.com>,
alexghiti@rivosinc.com
Subject: Re: [PATCH v3 12/14] efi/riscv: libstub: mark when compiling libstub
Date: Wed, 04 Jan 2023 16:32:11 +0100 [thread overview]
Message-ID: <3495322.aeNJFYEL58@diego> (raw)
In-Reply-To: <20230104152153.ae7zki6iofc7ugbs@orel>
Am Mittwoch, 4. Januar 2023, 16:21:53 CET schrieb Andrew Jones:
> On Fri, Dec 02, 2022 at 05:37:16PM +0100, Ard Biesheuvel wrote:
> > On Thu, 1 Dec 2022 at 23:39, Heiko Stübner <heiko@sntech.de> wrote:
> > >
> > > Hi Ard,
> > >
> > > Am Donnerstag, 1. Dezember 2022, 21:57:00 CET schrieb Ard Biesheuvel:
> > > > On Thu, 1 Dec 2022 at 20:35, Andrew Jones <ajones@ventanamicro.com> wrote:
> > > > >
> > > > > On Wed, Nov 30, 2022 at 11:56:12PM +0100, Heiko Stuebner wrote:
> > > > > > From: Heiko Stuebner <heiko.stuebner@vrull.eu>
> > > > > >
> > > > > > We may want to runtime-optimize some core functions (str*, mem*),
> > > > > > but not have this leak into libstub and cause build issues.
> > > > > > Instead libstub, for the short while it's running, should just use
> > > > > > the generic implementation.
> > > > > >
> > > > > > So, to be able to determine whether functions, that are used both in
> > > > > > libstub and the main kernel, are getting compiled as part of libstub or
> > > > > > not, add a compile-flag we can check via #ifdef.
> > > > > >
> > > > > > Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
> > > > > > Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
> > > >
> > > > I think it would be better to update arch/riscv/kernel/image-vars.h so
> > > > that only these generic implementations are exposed to the stub in the
> > > > first place.
> > >
> >
> > Actually, all references to string and memory functions are going away
> > from the stub. This is already in -next.
> >
> > EFI now has zboot support, which means you can create a EFI bootable
> > kernel image that carries the actual kernel in compressed form rather
> > than as a hybrid EFI/bare metal image.
>
> While chatting about EFI stub string functions again in the context of [1]
> we recalled this comment that states the references should be going away
> anyway. I'm just replying here with interested parties on CC to try and
> bring it back to the forefront.
>
> [1] https://lore.kernel.org/all/20221216162141.1701255-5-alexghiti@rivosinc.com/
I'm currently following Ard's other suggestion and am using a more
traditional model for str* functions (aka non-inline).
One thing I found on the new EFI parts was that while it provides it's own
implementations, it does not provide it's own prototype.
On the real kernel-side all the HAVE_ARCH_* blocks do wrap around
both the generic implementation as well as the prototype in string.h,
and there _are_ other implementations of str* or mem* functions
done as inline, on other arches. So that may be something that might
need fixing on the EFI-side.
Heiko
WARNING: multiple messages have this Message-ID (diff)
From: "Heiko Stübner" <heiko@sntech.de>
To: Ard Biesheuvel <ardb@kernel.org>, Andrew Jones <ajones@ventanamicro.com>
Cc: linux-riscv@lists.infradead.org, palmer@dabbelt.com,
christoph.muellner@vrull.eu, prabhakar.csengg@gmail.com,
conor@kernel.org, philipp.tomsich@vrull.eu,
emil.renner.berthing@canonical.com, linux-efi@vger.kernel.org,
Conor Dooley <conor.dooley@microchip.com>,
alexghiti@rivosinc.com
Subject: Re: [PATCH v3 12/14] efi/riscv: libstub: mark when compiling libstub
Date: Wed, 04 Jan 2023 16:32:11 +0100 [thread overview]
Message-ID: <3495322.aeNJFYEL58@diego> (raw)
In-Reply-To: <20230104152153.ae7zki6iofc7ugbs@orel>
Am Mittwoch, 4. Januar 2023, 16:21:53 CET schrieb Andrew Jones:
> On Fri, Dec 02, 2022 at 05:37:16PM +0100, Ard Biesheuvel wrote:
> > On Thu, 1 Dec 2022 at 23:39, Heiko Stübner <heiko@sntech.de> wrote:
> > >
> > > Hi Ard,
> > >
> > > Am Donnerstag, 1. Dezember 2022, 21:57:00 CET schrieb Ard Biesheuvel:
> > > > On Thu, 1 Dec 2022 at 20:35, Andrew Jones <ajones@ventanamicro.com> wrote:
> > > > >
> > > > > On Wed, Nov 30, 2022 at 11:56:12PM +0100, Heiko Stuebner wrote:
> > > > > > From: Heiko Stuebner <heiko.stuebner@vrull.eu>
> > > > > >
> > > > > > We may want to runtime-optimize some core functions (str*, mem*),
> > > > > > but not have this leak into libstub and cause build issues.
> > > > > > Instead libstub, for the short while it's running, should just use
> > > > > > the generic implementation.
> > > > > >
> > > > > > So, to be able to determine whether functions, that are used both in
> > > > > > libstub and the main kernel, are getting compiled as part of libstub or
> > > > > > not, add a compile-flag we can check via #ifdef.
> > > > > >
> > > > > > Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
> > > > > > Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
> > > >
> > > > I think it would be better to update arch/riscv/kernel/image-vars.h so
> > > > that only these generic implementations are exposed to the stub in the
> > > > first place.
> > >
> >
> > Actually, all references to string and memory functions are going away
> > from the stub. This is already in -next.
> >
> > EFI now has zboot support, which means you can create a EFI bootable
> > kernel image that carries the actual kernel in compressed form rather
> > than as a hybrid EFI/bare metal image.
>
> While chatting about EFI stub string functions again in the context of [1]
> we recalled this comment that states the references should be going away
> anyway. I'm just replying here with interested parties on CC to try and
> bring it back to the forefront.
>
> [1] https://lore.kernel.org/all/20221216162141.1701255-5-alexghiti@rivosinc.com/
I'm currently following Ard's other suggestion and am using a more
traditional model for str* functions (aka non-inline).
One thing I found on the new EFI parts was that while it provides it's own
implementations, it does not provide it's own prototype.
On the real kernel-side all the HAVE_ARCH_* blocks do wrap around
both the generic implementation as well as the prototype in string.h,
and there _are_ other implementations of str* or mem* functions
done as inline, on other arches. So that may be something that might
need fixing on the EFI-side.
Heiko
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2023-01-04 15:32 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-30 22:56 [PATCH v3 0/14] Zbb string optimizations and call support in alternatives Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 01/14] RISC-V: fix funct4 definition for c.jalr in parse_asm.h Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-01 17:00 ` Andrew Jones
2022-12-01 17:00 ` Andrew Jones
2022-12-01 17:05 ` Andrew Jones
2022-12-01 17:05 ` Andrew Jones
2022-12-01 17:07 ` Heiko Stübner
2022-12-01 17:07 ` Heiko Stübner
2022-11-30 22:56 ` [PATCH v3 02/14] RISC-V: add prefix to all constants/macros " Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-05 14:00 ` Andrew Jones
2022-12-05 14:00 ` Andrew Jones
2022-12-05 14:53 ` Andrew Jones
2022-12-05 14:53 ` Andrew Jones
2022-12-05 15:30 ` Andrew Jones
2022-12-05 15:30 ` Andrew Jones
2022-11-30 22:56 ` [PATCH v3 03/14] RISC-V: detach funct-values from their offset Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-01 17:36 ` Andrew Jones
2022-12-01 17:36 ` Andrew Jones
2022-11-30 22:56 ` [PATCH v3 04/14] RISC-V: add ebreak instructions to definitions Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 05/14] RISC-V: add auipc elements to parse_asm header Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 06/14] RISC-V: Move riscv_insn_is_* macros into a common header Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 07/14] RISC-V: rename parse_asm.h to insn.h Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 08/14] RISC-V: kprobes: use central defined funct3 constants Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 09/14] RISC-V: add U-type imm parsing to insn.h header Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 10/14] RISC-V: add rd reg " Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-11-30 22:56 ` [PATCH v3 11/14] RISC-V: fix auipc-jalr addresses in patched alternatives Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-01 19:33 ` Andrew Jones
2022-12-01 19:33 ` Andrew Jones
2022-12-06 15:56 ` Andrew Jones
2022-12-06 15:56 ` Andrew Jones
2022-12-06 22:10 ` Heiko Stübner
2022-12-06 22:10 ` Heiko Stübner
2022-12-07 9:35 ` Heiko Stübner
2022-12-07 9:35 ` Heiko Stübner
2022-12-07 10:44 ` Andrew Jones
2022-12-07 10:44 ` Andrew Jones
2022-12-07 11:19 ` Emil Renner Berthing
2022-12-07 11:19 ` Emil Renner Berthing
2022-12-07 11:29 ` Emil Renner Berthing
2022-12-07 11:29 ` Emil Renner Berthing
2022-12-07 11:32 ` Emil Renner Berthing
2022-12-07 11:32 ` Emil Renner Berthing
2022-11-30 22:56 ` [PATCH v3 12/14] efi/riscv: libstub: mark when compiling libstub Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-01 19:34 ` Andrew Jones
2022-12-01 19:34 ` Andrew Jones
2022-12-01 20:57 ` Ard Biesheuvel
2022-12-01 20:57 ` Ard Biesheuvel
2022-12-01 22:39 ` Heiko Stübner
2022-12-01 22:39 ` Heiko Stübner
2022-12-02 16:37 ` Ard Biesheuvel
2022-12-02 16:37 ` Ard Biesheuvel
2023-01-04 15:21 ` Andrew Jones
2023-01-04 15:21 ` Andrew Jones
2023-01-04 15:32 ` Heiko Stübner [this message]
2023-01-04 15:32 ` Heiko Stübner
2022-11-30 22:56 ` [PATCH v3 13/14] RISC-V: add infrastructure to allow different str* implementations Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-01 20:07 ` Andrew Jones
2022-12-01 20:07 ` Andrew Jones
2022-12-01 20:14 ` Andrew Jones
2022-12-01 20:14 ` Andrew Jones
2022-12-02 4:08 ` Palmer Dabbelt
2022-12-02 4:08 ` Palmer Dabbelt
2022-12-02 8:19 ` Ard Biesheuvel
2022-12-02 8:19 ` Ard Biesheuvel
2022-11-30 22:56 ` [PATCH v3 14/14] RISC-V: add zbb support to string functions Heiko Stuebner
2022-11-30 22:56 ` Heiko Stuebner
2022-12-01 0:02 ` [PATCH v3 0/14] Zbb string optimizations and call support in alternatives Conor Dooley
2022-12-01 0:02 ` Conor Dooley
2022-12-01 11:42 ` Heiko Stübner
2022-12-01 11:42 ` Heiko Stübner
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=3495322.aeNJFYEL58@diego \
--to=heiko@sntech.de \
--cc=ajones@ventanamicro.com \
--cc=alexghiti@rivosinc.com \
--cc=ardb@kernel.org \
--cc=christoph.muellner@vrull.eu \
--cc=conor.dooley@microchip.com \
--cc=conor@kernel.org \
--cc=emil.renner.berthing@canonical.com \
--cc=linux-efi@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=philipp.tomsich@vrull.eu \
--cc=prabhakar.csengg@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 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.