amd64 counts as x86 for the purposes of supported architectures in
Linux, and x86 does have the C version of recordmcount. Comment #3
includes a list of architectures that lack the C version of
recordmcount. Of those architectures, ppc64le is the only one that is
supported by the NVIDIA driver (the test case described in the
reproduction steps). I did try to create a reproduction case independent
of the NVIDIA driver, but was unsuccessful, as simpler kernel modules
failed to cause a panic, and I hadn't isolated what specific behavior of
the NVIDIA driver is problematic when recordmcount fails to run.

One troubleshooting technique you can use to verify whether
recordmcount.pl is working when localization options are set is to
instrument the Kbuild makefiles to record a checksum of the object file
recordmcount is run against before running recordmcount and again after
it has run. If recordmcount fails to run the checksums will be the same.
Note that this is only useful on architectures which use recordmcount.pl
rather than the C version, as the C version has no dependency on parsing
the output of objdump.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1828084

Title:
  Kernel modules generated incorrectly when system is localized to a
  non-English language

Status in linux package in Ubuntu:
  Incomplete

Bug description:
  When LANG is set to a non-English language with the relevant language
  pack installed, Kbuild's recordmcount.pl script fails to function
  correctly when building out-of-tree kernel modules on architectures
  that do not use the C version of recordmcount (e.g. ppc64le). This can
  result in invalid kernel modules being built.

  This was due to the non-C version of recordmcount relying on parsing
  the output of objdump(1), which can be localized. This is now fixed in
  the linux-kbuild tree with the following commit:

  https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-
  kbuild.git/commit/?h=kbuild&id=7b6954a982e7f60af38b835db52a06afc6e4b84c

  This commit is not in the torvalds/linux.git tree yet, but it would be
  good to backport the change to the Ubuntu kernel, particularly the
  linux-headers packages that are used for building out-of-tree kernel
  modules.

  Steps to Reproduce:
  1. Set LANG to a language other than English (e.g. ja_JP.UTF-8)
  2. Make sure that the correct language pack is installed and that 
localization is working; for example, run a command expected to print an error 
message, like `cp` with no additional arguments.
  3. Install the NVIDIA GPU driver

  Actual results:
  The kernel panics when loading the nvidia-modeset kernel module.

  Expected results:
  The driver should install and load normally.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1828084/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to