From: Stephen Boyd <sboyd@kernel.org>
To: Andrea della Porta <andrea.porta@suse.com>,
Masahiro Yamada <masahiroy@kernel.org>
Cc: Andrea della Porta <andrea.porta@suse.com>,
Andrew Lunn <andrew@lunn.ch>, Arnd Bergmann <arnd@arndb.de>,
Bjorn Helgaas <bhelgaas@google.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Conor Dooley <conor+dt@kernel.org>,
David S. Miller <davem@davemloft.net>,
Derek Kiernan <derek.kiernan@amd.com>,
Dragan Cvetic <dragan.cvetic@amd.com>,
Eric Dumazet <edumazet@google.com>,
Florian Fainelli <florian.fainelli@broadcom.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jakub Kicinski <kuba@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Lee Jones <lee@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Michael Turquette <mturquette@baylibre.com>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Paolo Abeni <pabeni@redhat.com>, Rob Herring <robh@kernel.org>,
Saravana Kannan <saravanak@google.com>,
Stefan Wahren <wahrenst@gmx.net>, Will Deacon <will@kernel.org>,
devicetree@vger.kernel.org, linux-arch@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
netdev@vger.kernel.org, linux-kbuild@vger.kernel.org
Subject: Re: [PATCH 05/11] vmlinux.lds.h: Preserve DTB sections from being discarded after init
Date: Sat, 21 Sep 2024 13:47:49 -0700 [thread overview]
Message-ID: <d87530b846d0dc9e78789234cfcb602a.sboyd@kernel.org> (raw)
In-Reply-To: <ZtcBHvI9JxgH9iFT@apocalypse>
Quoting Andrea della Porta (2024-09-03 05:29:18)
> On 12:46 Fri 30 Aug , Stephen Boyd wrote:
> > Quoting Andrea della Porta (2024-08-20 07:36:07)
> > > diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> > > index ad6afc5c4918..3ae9097774b0 100644
> > > --- a/include/asm-generic/vmlinux.lds.h
> > > +++ b/include/asm-generic/vmlinux.lds.h
> >
> > It would be nice to keep the initdata properties when this isn't used
> > after init as well. Perhaps we need another macro and/or filename to
> > indicate that the DTB{O} can be thrown away after init/module init.
>
> We can certainly add some more filename extension that would place the
> relevant data in a droppable section.
> Throwing away the dtb/o after init is like the actual KERNEL_DTB macro that
> is adding teh data to section .init.data, but this would mean t would be
> useful only at very early init stage, just like for CONFIG_OF_UNITTEST.
> Throwing after module init could be more difficult though, I think,
> for example we're not sure when to discard the section in case of deferred
> modules probe.
>
This patch can fix a modpost warning seen in linux-next because I have
added DT overlays from KUnit tests while kbuild has properly marked the
overlay as initdata that is discarded. See [1] for details. In KUnit I
doubt this really matters because most everything runs from __init code
(even if it isn't marked that way).
I'm thinking that we need to make dtbo Makefile target put the blob in
the rodata section so it doesn't get thrown away and leave the builtin
DTB as part of init.rodata. Did you already do that? I see the kbuild
tree has removed the commit that caused the warning, but I suspect this
may still be a problem. See [2] for the next series where overlays
applied in the test happen from driver probe so __ref is added.
If we simply copy the wrap command and make it so that overlays always
go to the .rodata section we should be good. Maybe there's some way to
figure out what is being wrapped so we don't have to copy the whole
thing.
Finally, it's unfortunate that the DTBO is copied when an overlay is
applied. We'll waste memory after this patch, so of_overlay_fdt_apply()
could be taught to reuse the blob passed in instead of copying it.
-----8<----
diff --git a/scripts/Makefile.dtbs b/scripts/Makefile.dtbs
index 55998b878e54..070e08082cd3 100644
--- a/scripts/Makefile.dtbs
+++ b/scripts/Makefile.dtbs
@@ -51,11 +51,25 @@ quiet_cmd_wrap_S_dtb = WRAP $@
echo '.balign STRUCT_ALIGNMENT'; \
} > $@
+quiet_cmd_wrap_S_dtbo = WRAP $@
+ cmd_wrap_S_dtbo = { \
+ symbase=__$(patsubst .%,%,$(suffix $<))_$(subst -,_,$(notdir $*)); \
+ echo '\#include <asm-generic/vmlinux.lds.h>'; \
+ echo '.section .rodata,"a"'; \
+ echo '.balign STRUCT_ALIGNMENT'; \
+ echo ".global $${symbase}_begin"; \
+ echo "$${symbase}_begin:"; \
+ echo '.incbin "$<" '; \
+ echo ".global $${symbase}_end"; \
+ echo "$${symbase}_end:"; \
+ echo '.balign STRUCT_ALIGNMENT'; \
+ } > $@
+
$(obj)/%.dtb.S: $(obj)/%.dtb FORCE
$(call if_changed,wrap_S_dtb)
$(obj)/%.dtbo.S: $(obj)/%.dtbo FORCE
- $(call if_changed,wrap_S_dtb)
+ $(call if_changed,wrap_S_dtbo)
# Schema check
# ---------------------------------------------------------------------------
[1] https://lore.kernel.org/all/20240909112728.30a9bd35@canb.auug.org.au/
[2] https://lore.kernel.org/all/20240910094459.352572-1-masahiroy@kernel.org/
next prev parent reply other threads:[~2024-09-21 20:47 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-20 14:36 [PATCH 00/11] Add support for RaspberryPi RP1 PCI device using a DT overlay Andrea della Porta
2024-08-20 14:36 ` [PATCH 01/11] dt-bindings: clock: Add RaspberryPi RP1 clock bindings Andrea della Porta
2024-08-20 16:19 ` Conor Dooley
2024-08-20 18:25 ` Andrea della Porta
2024-08-21 11:46 ` Conor Dooley
2024-08-22 9:35 ` Andrea della Porta
2024-08-22 9:52 ` Krzysztof Kozlowski
2024-08-22 16:23 ` Conor Dooley
2024-08-23 18:21 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 02/11] dt-bindings: pinctrl: Add RaspberryPi RP1 gpio/pinctrl/pinmux bindings Andrea della Porta
2024-08-21 8:42 ` Krzysztof Kozlowski
2024-08-30 10:22 ` Andrea della Porta
2024-08-30 11:46 ` Krzysztof Kozlowski
2024-09-02 8:44 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 03/11] PCI: of_property: Sanitize 32 bit PCI address parsed from DT Andrea della Porta
2024-08-21 15:24 ` Bjorn Helgaas
2024-08-26 19:51 ` Andrea della Porta
2024-09-03 22:26 ` Bjorn Helgaas
2024-09-05 16:43 ` Andrea della Porta
2024-09-05 20:16 ` Bjorn Helgaas
2024-09-27 6:48 ` Andrea della Porta
2024-09-28 20:17 ` Bjorn Helgaas
2024-10-06 11:20 ` Andrea della Porta
2024-10-08 1:08 ` Bjorn Helgaas
2024-10-18 12:41 ` Andrea della Porta
2024-10-18 22:28 ` Bjorn Helgaas
2024-10-19 8:46 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 04/11] of: address: Preserve the flags portion on 1:1 dma-ranges mapping Andrea della Porta
2024-08-21 0:16 ` Rob Herring
2024-08-21 8:18 ` Andrea della Porta
2024-08-26 21:29 ` Rob Herring
2024-08-29 10:13 ` Andrea della Porta
2024-08-29 13:18 ` Rob Herring
2024-08-29 16:26 ` Andrea della Porta
2024-08-30 19:37 ` Rob Herring
2024-09-03 9:09 ` Herve Codina
2024-09-03 9:33 ` Andrea della Porta
2024-09-03 18:55 ` Rob Herring
2024-09-03 16:15 ` Andrea della Porta
2024-09-03 18:46 ` Rob Herring
2024-09-04 8:33 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 05/11] vmlinux.lds.h: Preserve DTB sections from being discarded after init Andrea della Porta
2024-08-30 19:46 ` Stephen Boyd
2024-09-03 12:29 ` Andrea della Porta
2024-09-21 20:47 ` Stephen Boyd [this message]
2024-09-22 8:14 ` Masahiro Yamada
2024-09-23 18:13 ` Stephen Boyd
2024-09-24 2:45 ` Masahiro Yamada
2024-08-20 14:36 ` [PATCH 06/11] clk: rp1: Add support for clocks provided by RP1 Andrea della Porta
2024-08-21 13:17 ` Simon Horman
2024-08-22 10:04 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 07/11] pinctrl: rp1: Implement RaspberryPi RP1 gpio support Andrea della Porta
2024-08-21 8:45 ` Krzysztof Kozlowski
2024-08-30 10:39 ` Andrea della Porta
2024-08-21 9:22 ` kernel test robot
2024-08-21 12:06 ` kernel test robot
2024-08-21 13:27 ` Simon Horman
2024-08-23 17:16 ` Andrea della Porta
2024-08-21 20:51 ` kernel test robot
2024-08-26 8:59 ` Linus Walleij
2024-08-28 15:24 ` Andrea della Porta
2024-09-02 8:31 ` Linus Walleij
2024-08-20 14:36 ` [PATCH 08/11] misc: rp1: RaspberryPi RP1 misc driver Andrea della Porta
2024-08-21 8:38 ` Krzysztof Kozlowski
2024-08-21 14:20 ` Krzysztof Kozlowski
2024-08-22 14:33 ` Andrea della Porta
2024-08-22 14:46 ` Krzysztof Kozlowski
2024-08-30 13:49 ` Andrea della Porta
2024-08-30 14:21 ` Andrew Lunn
2024-09-03 14:56 ` Andrea della Porta
2024-08-30 16:52 ` Krzysztof Kozlowski
2024-09-03 15:15 ` Andrea della Porta
2024-09-03 18:27 ` Krzysztof Kozlowski
2024-09-05 16:33 ` Andrea della Porta
2024-09-05 16:52 ` Krzysztof Kozlowski
2024-09-05 18:54 ` Andrea della Porta
2024-09-05 21:20 ` Krzysztof Kozlowski
2024-08-21 13:07 ` kernel test robot
2024-08-21 13:49 ` kernel test robot
2024-08-21 16:20 ` Stefan Wahren
2024-08-23 9:44 ` Andrea della Porta
2024-08-23 10:23 ` Stefan Wahren
2024-08-23 16:31 ` Andrea della Porta
2024-08-30 18:27 ` Rob Herring
2024-09-02 9:34 ` Andrea della Porta
2024-08-21 16:55 ` Bjorn Helgaas
2024-08-23 10:21 ` Andrea della Porta
2024-08-21 17:56 ` kernel test robot
2024-08-24 1:53 ` Greg Kroah-Hartman
2024-08-26 9:07 ` Andrea della Porta
2024-08-26 9:18 ` Greg Kroah-Hartman
2024-08-20 14:36 ` [PATCH 09/11] arm64: defconfig: Enable RP1 misc/clock/gpio drivers as built-in Andrea della Porta
2024-08-21 8:47 ` Krzysztof Kozlowski
2024-08-30 22:24 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 10/11] net: macb: Add support for RP1's MACB variant Andrea della Porta
2024-08-20 15:13 ` Andrew Lunn
2024-08-20 18:31 ` Andrea della Porta
2024-08-21 8:49 ` Krzysztof Kozlowski
2024-08-30 22:32 ` Andrea della Porta
2024-08-21 17:01 ` Florian Fainelli
2024-08-26 20:03 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 11/11] arm64: dts: rp1: Add support for MACB contained in RP1 Andrea della Porta
2024-08-21 8:43 ` Krzysztof Kozlowski
2024-08-30 22:33 ` Andrea della Porta
2024-08-21 17:02 ` Florian Fainelli
2024-08-26 20:18 ` Andrea della Porta
2024-08-21 13:42 ` [PATCH 00/11] Add support for RaspberryPi RP1 PCI device using a DT overlay Krzysztof Kozlowski
2024-08-22 9:05 ` Andrea della Porta
2024-08-22 9:50 ` Krzysztof Kozlowski
2024-08-29 13:11 ` Andrea della Porta
2024-08-22 13:04 ` Andrew Lunn
2024-08-29 12:01 ` Andrea della Porta
2024-08-29 13:04 ` Andrew Lunn
2024-08-29 13:13 ` Andrea della Porta
2024-08-30 5:21 ` Andrea della Porta
2024-08-30 14:10 ` Andrew Lunn
2024-09-02 9:21 ` Andrea della Porta
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=d87530b846d0dc9e78789234cfcb602a.sboyd@kernel.org \
--to=sboyd@kernel.org \
--cc=andrea.porta@suse.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=derek.kiernan@amd.com \
--cc=devicetree@vger.kernel.org \
--cc=dragan.cvetic@amd.com \
--cc=edumazet@google.com \
--cc=florian.fainelli@broadcom.com \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=masahiroy@kernel.org \
--cc=mturquette@baylibre.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=wahrenst@gmx.net \
--cc=will@kernel.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 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).