New test for patches in openbmc/openbmc

Verdun, Jean-Marie jean-marie.verdun at hpe.com
Wed Sep 22 23:15:05 AEST 2021


Hi Alexander,

We face the same challenges at HPE and spent some time discussing with code maintainers. I must admit that i had the same position than the one you are taking. But while processing some of our patches, upstreaming them can help enhancing the code and maintainability, by introducing new abstraction layers which are providing interfaces to vendor specific requirements. It is not always the case, but a good example could be found within the iKVM code, which is tightly coupled to Aspeed currently.

Our situation is even worse as we do have our own BMC asic, we do not use Aspeed. So how to integrate a bunch of hardware specific code into something which is specific to somebody else. We need to re-architecture part of the code. It is a pain, but part of the game. It would have been better if the code had been thought from the beginning to be more modular or with wider open mind. But in many cases, learning by mistake is also a good way to build something great. It was about the same regarding the x86-power management where we have GPIOs which are not compatible with upstream. So we had to propose enhancement and modifications.

With that said, it is going to be a huge effort for hardware vendors, but I think we need to do it even if that is going to be boring and complicated.

What worries me is the time required to do that, and avoid breaking the dynamic. I do not recommend forking, this is a massive pain to maintain.

Jean-Marie

________________________________
From: openbmc <openbmc-bounces+jean-marie.verdun=hpe.com at lists.ozlabs.org> on behalf of Alexander Amelkin <a.amelkin at yadro.com>
Sent: Wednesday, September 22, 2021 5:02 AM
To: Ed Tanous <edtanous at google.com>; OpenBMC Maillist <openbmc at lists.ozlabs.org>
Subject: Re: New test for patches in openbmc/openbmc

Hi Ed!

Most patches you listed (at least those for YADRO) are
platform specific and no repository will accept them for
a general audience.

No vendor, I'm confident, is willing to spend endless time
persuading maintainers to include vendor-specific or
platform-specific patches into their repositories.

For instance,
meta-yadro/recipes-phosphor/ipmi/phosphor-ipmi-host/0002-Add-support-for-boot-initiator-mailbox.patch
is there because our customers demand this feature and we failed
proving to openbmc maintainers that this is a needed feature
and not a "security threat" or something. We honestly tried for months.

On the other hand,
meta-yadro/meta-nicole/recipes-bsp/u-boot/files/0004-aspeed-add-bmc-position-support.patch
is strictly hardware-specific and is not needed as is for other
vendors or platforms, and we don't have time to make it a
generic solution. If we ever do have that time, we will surely
push the developed generic solution to the appropriate
repository.

What you propose now will force vendors to move farther away
from upstream and create their own forks of openbmc where
they will not even try to upstream their changes and will just drift
farther and farther away.

Is that what you really pursue or did I get your idea wrong?
So far it looks to me like a destructive decision.

WBR, Alexander.

22.09.2021 01:35, Ed Tanous пишет:
> A few new features have been merged into CI that will now disallow
> .patch files within most meta layers.  This is due to a significant
> number of them popping up in both reviews and in the repo itself,
> despite having documented rules to the contrary.  The hope here is to
> better codify our rules, and give very quick response to submitters
> about the right procedure so we can encourage getting patches in
> faster, and keep machines buildable against master.  As the patches
> state, meta-phosphor is still allowed to contain patch files as an
> escape hatch, if the community decides it's required.
>
> The patchsets in question are here:
> https://gerrit.openbmc-project.xyz/q/repotest
>
> And add some ability for us to make more of these expectations for
> meta layers codified in the future.
>
> The script itself is here:
> https://github.com/openbmc/openbmc/blob/master/meta-phosphor/scripts/run-repotest.sh
> and is runnable on any tree prior to submitting to CI.  We currently
> have the following patches in meta layers.
>
> meta-amd/meta-ethanolx/recipes-x86/chassis/x86-power-control/0001-Amd-power-control-modifications-for-EthanolX.patch
> meta-ampere/meta-common/recipes-devtools/mtd/mtd-utils/0001-flashcp-support-offset-option.patch
> meta-ampere/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0001-aspeed-scu-Switch-PWM-pin-to-GPIO-input-mode.patch
> meta-ampere/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0002-aspeed-Disable-internal-PD-resistors-for-GPIOs.patch
> meta-ampere/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0003-aspeed-support-passing-system-reset-status-to-kernel.patch
> meta-ampere/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0004-aspeed-add-gpio-support.patch
> meta-ampere/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0005-aspeed-Enable-SPI-master-mode.patch
> meta-ampere/meta-jade/recipes-bsp/u-boot/u-boot-aspeed/0006-aspeed-support-Mt.Jade-platform-init.patch
> meta-aspeed/recipes-bsp/u-boot/files/default-gcc.patch
> meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0001-bytedance-g220a-Enable-ipmb.patch
> meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0003-misc-aspeed-Add-Aspeed-UART-routing-control-driver.patch
> meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0004-ARM-dts-aspeed-Add-uart-routing-node.patch
> meta-bytedance/meta-g220a/recipes-kernel/linux/linux-aspeed/0005-ARM-dts-aspeed-Enable-g220a-uart-route.patch
> meta-bytedance/meta-g220a/recipes-phosphor/ipmi/phosphor-node-manager-proxy/0001-Remove-Total_Power-sensor.patch
> meta-facebook/meta-bletchley/recipes-bsp/u-boot/u-boot-aspeed-sdk/0001-u-boot-ast2600-57600-baudrate-for-bletchley.patch
> meta-facebook/meta-tiogapass/recipes-bsp/u-boot/u-boot-aspeed/0001-configs-ast-common-use-57600-baud-rate-to-match-Tiog.patch
> meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-Mux-for-yosemitev2.patch
> meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-spl-host-console-handle.patch
> meta-google/dynamic-layers/nuvoton-layer/recipes-bsp/images/npcm7xx-igps/0001-Set-FIU0_DRD_CFG-and-FIU_Clk_divider-for-gbmc-hoth.patch
> meta-google/recipes-extended/libconfig/files/0001-conf2struct-Use-the-right-perl.patch
> meta-google/recipes-extended/libconfig/files/0001-makefile-Add-missing-LDFLAGS.patch
> meta-google/recipes-phosphor/initrdscripts/obmc-phosphor-initfs/rwfs-clean-dev.patch
> meta-ingrasys/meta-zaius/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-reset_phy-for-Zaius.patch
> meta-nuvoton/recipes-bsp/images/npcm7xx-igps/0001-Adjust-paths-for-use-with-Bitbake.patch
> meta-yadro/meta-nicole/recipes-bsp/u-boot/files/0001-Add-system-reset-status-support.patch
> meta-yadro/meta-nicole/recipes-bsp/u-boot/files/0002-config-ast-common-set-fieldmode-to-true.patch
> meta-yadro/meta-nicole/recipes-bsp/u-boot/files/0003-aspeed-add-gpio-support.patch
> meta-yadro/meta-nicole/recipes-bsp/u-boot/files/0004-aspeed-add-bmc-position-support.patch
> meta-yadro/meta-nicole/recipes-kernel/linux/linux-aspeed/0001-Add-NCSI-channel-selector.patch
> meta-yadro/meta-nicole/recipes-phosphor/host/op-proc-control/0001-Stop-and-send-SRESET-for-one-thread-only.patch
> meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch
> meta-yadro/recipes-phosphor/ipmi/phosphor-ipmi-host/0001-Add-support-for-persistent-only-settings.patch
> meta-yadro/recipes-phosphor/ipmi/phosphor-ipmi-host/0002-Add-support-for-boot-initiator-mailbox.patch
> meta-yadro/recipes-phosphor/ipmi/phosphor-ipmi-host/0003-Fix-version-parsing-update-AUX-revision-info.patch
>
> If you are a maintainer of these meta layers, please work to get these
> patches submitted to the correct repositories using their prefered
> review (email for linux/u-boot, gerrit for phosphor repos).
>
> Thanks,
>
> -Ed
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20210922/a7b8fb88/attachment.htm>


More information about the openbmc mailing list