From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
Julien Grall <julien@xen.org>,
Stefano Stabellini <sstabellini@kernel.org>,
Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
Bertrand Marquis <bertrand.marquis@arm.com>,
Bobby Eshleman <bobbyeshleman@gmail.com>,
Alistair Francis <alistair.francis@wdc.com>,
Connor Davis <connojdavis@gmail.com>,
George Dunlap <george.dunlap@citrix.com>,
Shawn Anastasio <sanastasio@raptorengineering.com>,
Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v5 8/8] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions
Date: Mon, 22 Jan 2024 18:40:33 +0100 [thread overview]
Message-ID: <Za6okXTmLRDqEh_u@macbook> (raw)
In-Reply-To: <81752c34-da03-45fc-9d57-9b91bdbfd833@suse.com>
On Mon, Jan 22, 2024 at 11:50:08AM +0100, Jan Beulich wrote:
> On 19.01.2024 11:36, Roger Pau Monné wrote:
> > On Mon, Jan 15, 2024 at 03:40:19PM +0100, Jan Beulich wrote:
> >> Leverage the new infrastructure in xen/linkage.h to also switch to per-
> >> function sections (when configured), deriving the specific name from the
> >> "base" section in use at the time FUNC() is invoked.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> TBD: Since we use .subsection in UNLIKELY_START(), a perhaps not really
> >> wanted side effect of this change is that respective out-of-line
> >> code now moves much closer to its original (invoking) code.
> >
> > Hm, I'm afraid I don't have much useful suggestions here.
> >
> >> TBD: Of course something with the same overall effect, but less
> >> impactful might do in Config.mk. E.g. $(filter-out -D%,$(3))
> >> instead of $(firstword (3)).
> >
> > I don't have a strong opinion re those two options My preference
> > however (see below for reasoning) would be to put this detection in
> > Kconfig.
> >
> >> TBD: On top of Roger's respective patch (for livepatch), also respect
> >> CONFIG_FUNCTION_ALIGNMENT.
> >
> > I think you can drop that, as the series is blocked.
>
> Considering the series here has been pending for quite some time, too,
> I guess I'd like to keep it just in case that other functionality
> becomes unblocked or available by some other means, even if only to
> remind myself.
So as you have seen I've posted a new version of just the function
alignment patch, that I expected wasn't controversial.
> >> --- a/xen/Makefile
> >> +++ b/xen/Makefile
> >> @@ -409,6 +409,9 @@ AFLAGS += -D__ASSEMBLY__
> >>
> >> $(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--noexecstack)
> >>
> >> +# Check to see whether the assmbler supports the --sectname-subst option.
> >> +$(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--sectname-subst -DHAVE_AS_SECTNAME_SUBST)
> >
> > I guess you already know what I'm going to comment on. I think this
> > would be clearer if it was a Kconfig option. For once because I think
> > we should gate livapatch support on the option being available, and
> > secondly it would avoid having to pass the extra -D around.
> >
> > I think it's relevant to have a consistent set of build tool options
> > requirements for livepatch support, so that when enabled the support
> > is consistent across builds. With this approach livepatch could be
> > enabled in Kconfig, but depending on the tools support the resulting
> > binary might or might not support live patching of assembly code.
> > Such behavior is IMO unhelpful from a user PoV, and can lead to
> > surprises down the road.
>
> I can see the desire to have LIVEPATCH grow such a dependency. Yet there
> is the bigger still open topic of the criteria towards what, if anything,
> to probe for in Kconfig, what, if anything, to probe for in Makefile, and
> which of the probing perhaps do in both places. I'm afraid my attempts to
> move us closer to a resolution (topic on summit, making proposals on
> list) have utterly failed. IOW I don't currently see how the existing
> disagreement there can be resolved, which will result in me to continue
> following the (traditional) Makefile approach unless I clearly view
> Kconfig superior in a particular case. I could perhaps be talked into
> following a "mixed Kconfig/Makefile model", along the lines of "x86:
> convert CET tool chain feature checks to mixed Kconfig/Makefile model",
> albeit I'm sure you're aware there are issues to sort out there, which I
> see no value in putting time into as long as I can't expect things to
> make progress subsequently.
I think there are more subtle cases where it's indeed arguable that
putting it in Kconfig or a Makefile makes no difference from a user
experience PoV, hence in the context here I do believe it wants to be
in Kconfig as LIVEPATCH can be make dependent on it.
> Dropping this patch, while an option, would seem undesirable to me, since
> even without Kconfig probing using new enough tool chains the splitting
> would yield reliable results, and provide - imo - an improvement over
> what we have right now.
I could send a followup afterwards to arrange for the check to be in
Kconfig, but it would feel a bit odd to me this is not done in the
first place.
I don't want to block the patch because I think it's useful, so worst
case I'm willing to give my Ack and provide an alternative Kconfig
based patch afterwards.
Thanks, Roger.
next prev parent reply other threads:[~2024-01-22 17:40 UTC|newest]
Thread overview: 150+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-12 10:25 [PATCH 0/2] x86: aid debug info generation in assembly files Jan Beulich
2022-04-12 10:27 ` [PATCH 1/2] x86: improve .debug_line contents for assembly sources Jan Beulich
2022-04-14 12:40 ` Roger Pau Monné
2022-04-14 12:52 ` Jan Beulich
2022-04-14 13:31 ` Roger Pau Monné
2022-04-14 13:36 ` Roger Pau Monné
2022-04-14 14:15 ` Jan Beulich
2022-04-14 16:02 ` Roger Pau Monné
2022-04-14 16:34 ` Jan Beulich
2022-04-26 9:26 ` Jan Beulich
2022-04-12 10:28 ` [PATCH 2/2] x86: annotate entry points with type and size Jan Beulich
2022-04-14 12:49 ` Andrew Cooper
2022-04-14 12:59 ` Jan Beulich
2022-06-23 11:47 ` Jan Beulich
2023-05-23 11:30 ` [PATCH v2 0/2] " Jan Beulich
2023-05-23 11:30 ` [PATCH v2 1/2] " Jan Beulich
2023-05-29 13:34 ` Roger Pau Monné
2023-05-30 8:06 ` Jan Beulich
2023-05-30 13:21 ` Roger Pau Monné
2023-05-30 14:23 ` Jan Beulich
2023-05-30 15:15 ` Roger Pau Monné
2023-05-23 11:31 ` [PATCH v2 2/2] x86: also mark assembler globals hidden Jan Beulich
2023-05-29 13:38 ` Roger Pau Monné
2023-07-10 8:50 ` [PATCH v3 0/8] annotate entry points with type and size Jan Beulich
2023-07-10 8:51 ` [PATCH v3 1/8] common: move a few macros out of xen/lib.h Jan Beulich
2023-07-18 15:40 ` Oleksii
2023-07-18 19:49 ` Shawn Anastasio
2023-07-19 6:28 ` Jan Beulich
2023-07-10 8:52 ` [PATCH v3 2/8] common: assembly entry point type/size annotations Jan Beulich
2023-07-10 9:28 ` Jan Beulich
2023-07-10 8:53 ` [PATCH v3 3/8] x86: annotate entry points with type and size Jan Beulich
2023-07-10 8:54 ` [PATCH v3 4/8] x86: also mark assembler globals hidden Jan Beulich
2023-07-10 8:55 ` [PATCH v3 5/8] Arm: annotate entry points with type and size Jan Beulich
2023-07-10 8:56 ` [PATCH v3 6/8] RISC-V: " Jan Beulich
2023-07-10 8:58 ` Jan Beulich
2023-07-26 15:28 ` Oleksii
2023-07-26 15:43 ` Jan Beulich
2023-07-26 16:55 ` Oleksii
2023-07-10 8:56 ` [PATCH v3 7/8] PPC: switch entry point annotations to common model Jan Beulich
2023-07-10 8:57 ` [PATCH v3 8/8] tools/binfile: switch to common annotations model Jan Beulich
2023-07-17 14:18 ` [PATCH v3 9/8] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2023-07-18 12:28 ` Jan Beulich
2023-08-04 6:24 ` [PATCH v4 0/8] annotate entry points with type and size Jan Beulich
2023-08-04 6:26 ` [PATCH v4 1/8] common: assembly entry point type/size annotations Jan Beulich
2023-09-14 21:06 ` Julien Grall
2023-09-18 10:24 ` Jan Beulich
2023-09-18 10:34 ` Julien Grall
2023-09-18 10:51 ` Jan Beulich
2023-08-04 6:26 ` [PATCH v4 2/8] x86: annotate entry points with type and size Jan Beulich
2023-08-04 6:27 ` [PATCH v4 3/8] x86: also mark assembler globals hidden Jan Beulich
2023-08-04 6:28 ` [PATCH v4 4/8] Arm: annotate entry points with type and size Jan Beulich
2023-09-14 21:25 ` Julien Grall
2023-09-15 7:00 ` Jan Beulich
2023-08-04 6:29 ` [PATCH v4 5/8] RISC-V: " Jan Beulich
2023-08-04 6:30 ` [PATCH v4 5/8] PPC: switch entry point annotations to common model Jan Beulich
2023-08-04 6:30 ` [PATCH v4 6/8] tools/binfile: switch to common annotations model Jan Beulich
2023-09-14 21:30 ` Julien Grall
2023-08-04 6:31 ` [PATCH v4 8/8] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2023-08-04 6:32 ` [PATCH v4 0/8] annotate entry points with type and size Jan Beulich
2024-01-15 14:30 ` [PATCH v5 " Jan Beulich
2024-01-15 14:34 ` [PATCH v5 1/8] common: assembly entry point type/size annotations Jan Beulich
2024-01-17 17:02 ` Roger Pau Monné
2024-01-18 15:48 ` Jan Beulich
2024-01-18 14:52 ` Roger Pau Monné
2024-01-18 16:00 ` Jan Beulich
2024-01-15 14:34 ` [PATCH v5 2/8] x86: annotate entry points with type and size Jan Beulich
2024-01-18 17:45 ` Roger Pau Monné
2024-01-19 8:06 ` Jan Beulich
2024-01-19 9:48 ` Roger Pau Monné
2024-01-15 14:35 ` [PATCH v5 3/8] x86: also mark assembler globals hidden Jan Beulich
2024-01-15 14:36 ` [PATCH v5 4/8] Arm: annotate entry points with type and size Jan Beulich
2024-01-22 13:22 ` Jan Beulich
2024-03-15 19:09 ` Julien Grall
2024-01-15 14:37 ` [PATCH v5 5/8] RISC-V: " Jan Beulich
2024-01-16 12:15 ` Oleksii
2024-01-15 14:38 ` [PATCH v5 6/8] PPC: switch entry point annotations to common model Jan Beulich
2024-01-22 13:20 ` Ping: " Jan Beulich
2024-01-23 3:00 ` Shawn Anastasio
2024-01-15 14:39 ` [PATCH v5 7/8] tools/binfile: switch to common annotations model Jan Beulich
2024-01-15 14:40 ` [PATCH v5 8/8] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2024-01-19 10:36 ` Roger Pau Monné
2024-01-22 10:50 ` Jan Beulich
2024-01-22 17:40 ` Roger Pau Monné [this message]
2024-02-07 13:34 ` [PATCH v6 7/7] (mostly) x86: add/convert entry point annotations Jan Beulich
2024-02-07 13:35 ` [PATCH v6 0/7] " Jan Beulich
2024-02-07 13:36 ` [PATCH v6 1/7] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2024-02-07 13:37 ` [PATCH v6 2/7] SVM: convert entry point annotations Jan Beulich
2024-02-07 13:48 ` Andrew Cooper
2024-02-07 13:37 ` [PATCH v6 3/7] VMX: " Jan Beulich
2024-02-07 13:55 ` Andrew Cooper
2024-02-07 14:25 ` Jan Beulich
2024-02-08 16:20 ` Jan Beulich
2024-02-07 13:37 ` [PATCH v6 4/7] x86/ACPI: annotate assembly functions with type and size Jan Beulich
2024-02-07 14:00 ` Andrew Cooper
2024-02-07 13:38 ` [PATCH v6 5/7] x86/kexec: convert entry point annotations Jan Beulich
2024-02-07 14:05 ` Andrew Cooper
2024-02-07 13:38 ` [PATCH v6 6/7] x86: convert misc assembly function annotations Jan Beulich
2024-02-07 14:11 ` Andrew Cooper
2024-02-07 13:39 ` [PATCH v6 7/7] x86: move ENTRY(), GLOBAL(), and ALIGN Jan Beulich
2024-02-07 14:27 ` Andrew Cooper
2024-10-01 15:11 ` [PATCH v7 00/11] (mostly) x86+Arm32: add/convert entry point annotations Jan Beulich
2024-10-01 15:13 ` [PATCH v7 01/11] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2024-10-01 15:13 ` [PATCH v7 02/11] VMX: convert entry point annotations Jan Beulich
2024-10-01 17:03 ` Andrew Cooper
2024-10-01 15:14 ` [PATCH v7 03/11] x86/ACPI: annotate assembly function/data with type and size Jan Beulich
2024-10-01 16:51 ` Andrew Cooper
2024-10-02 5:56 ` Jan Beulich
2024-10-01 15:15 ` [PATCH v7 04/11] x86/kexec: convert entry point annotations Jan Beulich
2024-10-01 17:19 ` Andrew Cooper
2024-10-01 15:15 ` [PATCH v7 05/11] x86: convert dom_crash_sync_extable() annotation Jan Beulich
2024-10-01 17:05 ` Andrew Cooper
2024-10-01 15:15 ` [PATCH v7 06/11] x86: move ENTRY(), GLOBAL(), and ALIGN Jan Beulich
2024-10-01 15:16 ` [PATCH v7 07/11] Arm32: use new-style entry annotations for library code Jan Beulich
2024-11-25 20:15 ` Julien Grall
2024-11-26 8:41 ` Jan Beulich
2024-11-27 10:57 ` Julien Grall
2024-10-01 15:16 ` [PATCH v7 08/11] Arm32: use new-style entry annotations for MMU code Jan Beulich
2024-10-01 15:19 ` Jan Beulich
2024-10-01 15:17 ` [PATCH v7 09/11] Arm32: use new-style entry annotations for entry code Jan Beulich
2024-11-25 20:25 ` Julien Grall
2024-11-26 8:53 ` Jan Beulich
2024-10-01 15:17 ` [PATCH v7 10/11] Arm32: use new-style entry annotations in head.S Jan Beulich
2024-11-25 20:28 ` Julien Grall
2024-11-26 9:02 ` Jan Beulich
2024-10-01 15:18 ` [PATCH v7 11/11] Arm: purge ENTRY(), ENDPROC(), and ALIGN Jan Beulich
2024-11-25 20:29 ` Julien Grall
2024-11-04 9:45 ` Ping: [PATCH v7 00/11] (mostly) x86+Arm32: add/convert entry point annotations Jan Beulich
2025-02-26 15:58 ` [PATCH v8 0/6] (mostly) Arm32: " Jan Beulich
2025-02-26 16:00 ` [PATCH v8 1/6] Arm32: use new-style entry annotations for library code Jan Beulich
2025-02-26 16:00 ` [PATCH v8 2/6] Arm32: use new-style entry annotations for MMU code Jan Beulich
2025-02-26 16:01 ` [PATCH v8 3/6] Arm32: use new-style entry annotations for entry code Jan Beulich
2025-02-26 16:01 ` [PATCH v8 4/6] Arm32: use new-style entry annotations in head.S Jan Beulich
2025-02-26 16:01 ` [PATCH v8 5/6] Arm: purge ENTRY(), ENDPROC(), and ALIGN Jan Beulich
2025-02-26 16:02 ` [PATCH v8 6/6] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2025-03-04 10:34 ` [PATCH v8 0/6] (mostly) Arm32: add/convert entry point annotations Luca Fancellu
2025-03-13 8:04 ` [PATCH v8 RESEND " Jan Beulich
2025-03-13 8:06 ` [PATCH v8 RESEND 1/6] Arm32: use new-style entry annotations for library code Jan Beulich
2025-03-28 18:33 ` Julien Grall
2025-03-13 8:07 ` [PATCH v8 RESEND 2/6] Arm32: use new-style entry annotations for MMU code Jan Beulich
2025-03-28 18:39 ` Julien Grall
2025-03-31 6:50 ` Jan Beulich
2025-03-13 8:07 ` [PATCH v8 RESEND 3/6] Arm32: use new-style entry annotations for entry code Jan Beulich
2025-03-28 18:46 ` Julien Grall
2025-03-31 6:52 ` Jan Beulich
2025-03-13 8:08 ` [PATCH v8 RESEND 4/6] Arm32: use new-style entry annotations in head.S Jan Beulich
2025-03-28 18:48 ` Julien Grall
2025-03-28 18:48 ` Julien Grall
2025-03-13 8:08 ` [PATCH v8 RESEND 5/6] Arm: purge ENTRY(), ENDPROC(), and ALIGN Jan Beulich
2025-03-13 8:10 ` [PATCH v8 RESEND 6/6] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly functions Jan Beulich
2025-03-28 18:53 ` Julien Grall
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=Za6okXTmLRDqEh_u@macbook \
--to=roger.pau@citrix.com \
--cc=alistair.francis@wdc.com \
--cc=andrew.cooper3@citrix.com \
--cc=bertrand.marquis@arm.com \
--cc=bobbyeshleman@gmail.com \
--cc=connojdavis@gmail.com \
--cc=george.dunlap@citrix.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=sanastasio@raptorengineering.com \
--cc=sstabellini@kernel.org \
--cc=volodymyr_babchuk@epam.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/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.