From: Krzysztof Kozlowski <email@example.com> To: Lee Jones <firstname.lastname@example.org> Cc: Will McVicker <email@example.com>, Geert Uytterhoeven <firstname.lastname@example.org>, Catalin Marinas <email@example.com>, Will Deacon <firstname.lastname@example.org>, Sylwester Nawrocki <email@example.com>, Tomasz Figa <firstname.lastname@example.org>, Chanwoo Choi <email@example.com>, Michael Turquette <firstname.lastname@example.org>, Stephen Boyd <email@example.com>, Android Kernel Team <firstname.lastname@example.org>, Linux ARM <email@example.com>, Linux Kernel Mailing List <firstname.lastname@example.org>, linux-samsung-soc <email@example.com>, linux-clk <firstname.lastname@example.org> Subject: Re: [PATCH v1 1/4] clk: samsung: change COMMON_CLK_SAMSUNG default config logic Date: Thu, 23 Sep 2021 15:27:44 +0200 [thread overview] Message-ID: <email@example.com> (raw) In-Reply-To: <YUx5uhKW/Jy2r3lv@google.com> On 23/09/2021 14:57, Lee Jones wrote: > On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote: > >> On 21/09/2021 19:58, Will McVicker wrote: >>> On Tue, Sep 21, 2021 at 1:35 AM Krzysztof Kozlowski >>> <firstname.lastname@example.org> wrote: >>>> >>>> On 21/09/2021 09:50, Geert Uytterhoeven wrote: >>>>> On Tue, Sep 21, 2021 at 9:31 AM Krzysztof Kozlowski <email@example.com> wrote: >>>>>> On 20/09/2021 21:03, Will McVicker wrote: >>>>>>> COMMON_CLK_SAMSUNG is selected by ARCH_EXYNOS which forces this config >>>>>>> to be built-in when ARCH_EXYNOS is enabled. Switch the logic to use a >>>>>>> "default y if ARCH_EXYNOS" to provide flexibilty for vendors to disable >>>>>>> or modularize this driver. >>>>>> >>>>>> The clock drivers are essential, you cannot disable them for a generic >>>>>> kernel supporting ARCH_EXYNOS. Such kernel won't work properly on platforms. >>>>> >>>>> Obviously it's not gonna work if the clock driver is not enabled >>>>> at all. But does it work if you make the clock driver modular, and >>>>> put it with all other essential driver modules in initramfs? Debugging >>>>> would be hard, as the serial console driver also relies on clocks >>>>> and PM Domains etc. >>>> >>>> The kernel could boot without clock drivers (default settings from >>>> bootloader), probe clocks from initramfs and proceed with rootfs from >>>> eMMC/SD/net. >>>> >>>> In theory. >>>> >>>> However I have no reports that it ever worked. If there is such working >>>> upstream configuration, I don't mind here. Just please explain this in >>>> the commit msg. >>>> >>>>> >>>>> If not, this patch should be NAKed, until it works with a modular >>>>> clock driver. >>>>> >>>>> If yes, perhaps another line should be added (_before_ the other line)? >>>>> >>>>> + default m if ARCH_EXYNOS && MODULES >>>>> default y if ARCH_EXYNOS >>>>> >>>>> However, many developers may want MODULES=y, but not want to bother >>>>> with an initramfs. So perhaps we need a new symbol >>>>> MINIMUM_GENERIC_KERNEL or so, protected by EXPERT, and make the >>>>> driver default to m if that is enabled? >>>> >>>> Yeah, that's indeed a problem to solve. For most users (and distros) >>>> building kernel for Exynos this should be built-in by default. >>>> >>>> Anyway, the option is non-selectable so it cannot be converted to "m" or >>>> disabled. And this is claimed in the commit msg: >>>> "provide flexibilty for vendors to disable or modularize this driver." >>>> >>>> The commit does not achieve it. >>>> >>>> Best regards, >>>> Krzysztof >>> >>> Thanks for the reviews! As Lee has explained in his replies, the >>> intent of this series is to provide config flexibility to create a >>> defconfig that allows us to move out SoC specific drivers in order to >>> create a generic kernel that can be used across multiple devices with >>> different SoCs. >> >> That's quite generic statement... or let me put it that way - we already >> have this ability to create a generic kernel supporting different SoCs. >> Exynos and other ARMv7 and ARMv8 platforms are multiplatform. >> >> Task is done. > > multi_v7_defconfig and ARMv8's defconfig are bloated monoliths which > provide limited flexibility. Good for testing and messing around - > not much good for real products. I am not saying about defconfigs. I am saying that ARMv8 platform is multiplatform so we already solved the problem Will mentioned. :) > >> Please be more specific about use case and describe what exactly in >> current upstream multiplatform kernel is missing, what is not >> multiplatform enough. > > The use-case is GKI. A realistic middle-ground between fully open > source and real-world usage of the Linux kernel in a competitive > technical arena. GKI aims to be as close to Mainline as possible, > whilst allowing hardware vendors to supply their own software > containing their perceived competitive edge and/or supporting > not-yet-released hardware platforms. <grumpy mode> Therefore the use case is to not contribute anything upstream around ARCH_EXYNOS but use it in millions of devices downstream with hundreds of out-of-tree modules. The use case is to make life easy for the vendor and out-of-tree code, not for the upstream. Instead of promoting upstreaming, or leaning towards usptream in some balanced way, the use case is to entirely go to out-of-tree. I am not thinking here about edge or not-yet-released platforms but "ancient" in terms of current SoC business, e.g. 3-5 years old. </grumpy mode> > > If you end up over-constraining the ability to configure the kernel in > useful/meaningful ways, that makes one of the main (best intention) > aims of GKI, (i.e. to have an upstream first ethos in order to be as > close to upstream as possible) much more difficult. GKI encourages core kernel changes to be upstreamed but it is effectively the nail in the coffin of upstreaming vendor SoC changes. There is simply no incentive for less-cooperative vendor to upstream it's modules (except usual benefits like code quality and user support which are not important for less-cooperative vendors). The kernel should be configured mainly towards mainline platforms. Not the other way around. This of course does not stop it for supporting out-of-tree code, but I guess you also know that what's out-of-tree, it does not exist. :) > > I put in a lot of effort to ensure GKI doesn't end up as just another > fork of the Linux kernel. So far, so good, but flexibility and > understanding is key. > >>> I'm sorry I added confusion by mentioning >>> modularization. All of these drivers that I am modifying in this >>> series can be modularized which is an ongoing effort, but is not >>> addressed here and I don't believe that modularizing them should be a >>> requirement before supporting enabling/disabling them. >> >> Since the disabling the driver for a kernel supporting Exynos does not >> make any sense, then making it at least modular unfortunately it is a >> requirement. > > I can go with that. > >>> I will update the series with my patch that refactors the Samsung SoC >>> drivers menuconfig to make these visible as well. >> >> I would first recommend to really describe your use case because my >> questions about this are still unanswered. > > Hopefully my replies have helped somewhat. > > Happy to discuss further if required. > > If all else fails, feel free to ping me on IRC (lag). Thanks Lee, you described the use case. In general I like it and support it, except for what I wrote in the other mail. Vendor does not contribute much therefore there is no balance in upstreaming. Since none of other vendor's platforms are supported, I am looking only at what is supported. From that perspective - the change proposed by Will and previous guys, does not have much sense. My perspective probably would change a lot if vendor did contribute some of its non-edge platforms (3-5 years old)... especially that unlike few community guys (e.g. PostmarketOS), vendor has shit-tons of money and the hardware manuals. :) Instead of pushing this change, please let's give some incentive to the vendor for upstreaming anything. Best regards, Krzysztof
next prev parent reply other threads:[~2021-09-23 13:27 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-20 19:03 [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs Will McVicker 2021-09-20 19:03 ` [PATCH v1 1/4] clk: samsung: change COMMON_CLK_SAMSUNG default config logic Will McVicker 2021-09-21 7:29 ` Krzysztof Kozlowski 2021-09-21 7:50 ` Geert Uytterhoeven 2021-09-21 8:35 ` Krzysztof Kozlowski 2021-09-21 17:58 ` Will McVicker 2021-09-21 18:04 ` Krzysztof Kozlowski 2021-09-23 12:57 ` Lee Jones 2021-09-23 13:27 ` Krzysztof Kozlowski [this message] 2021-09-23 14:18 ` Lee Jones 2021-09-23 16:27 ` Krzysztof Kozlowski 2021-09-23 16:30 ` Krzysztof Kozlowski 2021-09-20 19:03 ` [PATCH v1 2/4] soc: samsung: change SOC_SAMSUNG " Will McVicker 2021-09-20 20:57 ` Will McVicker 2021-09-21 7:23 ` Krzysztof Kozlowski 2021-09-21 8:19 ` Lee Jones 2021-09-21 17:45 ` Will McVicker 2021-09-21 18:20 ` Krzysztof Kozlowski 2021-09-23 12:39 ` Lee Jones 2021-09-23 12:57 ` Krzysztof Kozlowski 2021-09-23 13:41 ` Lee Jones 2021-09-23 16:19 ` Geert Uytterhoeven 2021-09-23 18:05 ` Geert Uytterhoeven 2021-09-20 19:03 ` [PATCH v1 3/4] pinctrl: samsung: change PINCTRL_EXYNOS " Will McVicker 2021-09-21 7:27 ` Krzysztof Kozlowski 2021-09-21 8:18 ` Lee Jones 2021-09-23 21:52 ` Linus Walleij 2021-09-21 7:08 ` [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs Lee Jones 2021-09-21 7:19 ` Krzysztof Kozlowski 2021-09-21 7:22 ` Krzysztof Kozlowski 2021-09-21 8:11 ` Lee Jones 2021-09-21 8:25 ` Krzysztof Kozlowski 2021-09-21 8:41 ` Lee Jones 2021-09-25 2:17 ` Saravana Kannan 2021-09-27 8:08 ` Krzysztof Kozlowski 2021-09-27 8:16 ` Geert Uytterhoeven 2021-09-27 18:07 ` Saravana Kannan 2021-09-27 19:54 ` Geert Uytterhoeven
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 \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [PATCH v1 1/4] clk: samsung: change COMMON_CLK_SAMSUNG default config logic' \ /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
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).