ACK/Cmnt: [SRU][Disco][PATCH 0/2] hibmc-drm Causes Unreadable Display for Huawei amd64 Servers

Khaled Elmously khalid.elmously at canonical.com
Tue Jul 23 06:25:50 UTC 2019


On 2019-07-19 10:38:04 , Stefan Bader wrote:
> On 16.07.19 03:09, Matthew Ruffell wrote:
> > BugLink: https://bugs.launchpad.net/bugs/1762940
> > 
> > [Impact]
> > 
> > amd64 based Huawei servers have problems where the display output of their iBMC
> > chips is broken, resulting in a "blurry" screen when viewed from their in house
> > remote kvm-like console.
> > 
> > Example:
> > 
> > https://launchpadlibrarian.net/365907668/creen_picture_for_blur.png
> > 
> > The issue is caused by the hibmc_drm kernel module being loaded. The PCI ID for
> > the iBMC chips on amd64 hardware is the same as arm64 hardware, but the 
> > hibmc_drm driver was developed only for use on arm64 hardware, most notably for
> > the Huawei D05 development board.
> > 
> > The impact to Huawei is that their customers cannot use Ubuntu server install
> > media as the screen goes "blurry" when the d-i install media or subuqity
> > installer loads the hibmc_drm kernel module after language selection. 
> > 
> > The only workaround for their customers is to press the "E" key during the very
> > first installer menu and adding "modprobe.blacklist=hibmc_drm" to the kernel
> > command line in the grub menu. This is not good for customer experience with 
> > their servers.
> > 
> > Other problems exist for the hibmc_drm driver on amd64, such as working on 
> > bios, but not uefi, and not being wayland compatible, making the screen blurry
> > whenever a desktop session is started and gdm loaded.
> > 
> > Huawei have asked us to remove hibmc_drm from all architectures except arm64,
> > and this aligns with advice from Hisilicon.
> > 
> > [Fix]
> > 
> > I modified the config/annotations file to remove all architectures except arm64,
> > and created a patch for Kconfig to set a firm requirement on ARM64 for hibmc_drm.
> > 
> > I will send the Kconfig patch upstream in the coming days for a more permanent 
> > fix.
> > 
> > [Testcase]
> > 
> > Apply the patches and run: 
> > 
> > ubuntu-bionic/CONFIGS$ fakeroot debian/rules genconfigs
> > ubuntu-bionic/CONFIGS$ grep -Rin "hibmc" .
> > ./arm64-config.flavour.generic:5739:CONFIG_DRM_HISI_HIBMC=m
> > 
> > You should see that only arm64 has the config option enabled.
> > 
> > A test kernel has been built, and is available here:
> > https://launchpad.net/~mruffell/+archive/ubuntu/sf232667-test
> > 
> > Huawei requested a test d-i install iso to test server install with, which can
> > be found here and uses the kernel from the ppa above:
> > https://people.canonical.com/~mruffell/sf232667_ubuntu_server_d-i_20190711b1.iso
> > 
> > Both the test kernel and the custom d-i install iso have been tested on amd64
> > Huawei server hardware successfully and video output is functional.
> > 
> > [Regression Potential]
> > 
> > Regressions will be limited to hardware containing the iBMC chips from Hisilicon,
> > which I believe are exclusive to Huawei servers. 
> > 
> > I have taken care to ensure that hibmc_drm is enabled for ARM64 so it should not
> > impact kernels built for the Huawei D05 arm64 development board, and d-i will
> > still load the hibmc_drm driver during startup for arm64. 
> > 
> > 
> > 
> > Matthew Ruffell (2):
> >   UBUNTU: [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only
> >   UBUNTU: SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64
> > 
> >  debian.master/config/amd64/config.common.amd64     | 1 -
> >  debian.master/config/annotations                   | 2 +-
> >  debian.master/config/arm64/config.common.arm64     | 1 -
> >  debian.master/config/armhf/config.common.armhf     | 1 -
> >  debian.master/config/config.common.ubuntu          | 1 +
> >  debian.master/config/i386/config.common.i386       | 1 -
> >  debian.master/config/ppc64el/config.common.ppc64el | 1 -
> >  debian.master/config/s390x/config.common.s390x     | 1 -
> >  drivers/gpu/drm/hisilicon/hibmc/Kconfig            | 2 +-
> >  9 files changed, 3 insertions(+), 8 deletions(-)
> > 
> For what is done ok. One could add a note to the annotations that refers to the
> bug (reason) but more importantly this will need to drop the module from all
> other arches ABI files or the build fails. Which also means when doing the next
> round of SRU cycle one has to remember to move the start commit to the beginning
> and hope git does the right thing on rebase (the latter is more an internal note).
> 
> Acked-by: Stefan Bader <stefan.bader at canonical.com>
> 

I haven't applied this patch (and the bionic equivalent) because I'm not sure about how to make the change in debian.master/config/annotations to add that note (not really familiar with the syntax). I see other notes referencing other bugs in that file, but I don't see a line with both a note<> and a policy<>.



> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team




More information about the kernel-team mailing list