Disable CONFIG_HIBERNATION on ppc64el

Bug #1463836 reported by Leann Ogasawara
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Wily
Fix Released
Undecided
Unassigned

Bug Description

We have uploaded our first 4.0 based Wily kernel to the archive but are unfortunately seeing the following build failure which we believe is related to our wily toolchain:

https://launchpadlibrarian.net/208665203/buildlog_ubuntu-wily-ppc64el.linux_4.0.0-1.1_BUILDING.txt.gz

/build/buildd/linux-4.0.0/arch/powerpc/kernel/swsusp_asm64.S: Assembler messages:
/build/buildd/linux-4.0.0/arch/powerpc/kernel/swsusp_asm64.S:188: Error: missing operand
/build/buildd/linux-4.0.0/scripts/Makefile.build:294: recipe for target 'arch/powerpc/kernel/swsusp_asm64.o' failed
make[3]: *** [arch/powerpc/kernel/swsusp_asm64.o] Error 1
/build/buildd/linux-4.0.0/Makefile:957: recipe for target 'arch/powerpc/kernel' failed
make[2]: *** [arch/powerpc/kernel] Error 2

We do not believe this is due to a kernel change as the code in question has not changed in years. Additionally, we had 4.0 based test builds successfully passing in our PPA (ppa:canonical-kernel-team/ppa). The last successful test build in our PPA was from May 21 (the logs are still there if needed). We were also unable to reproduce by cross-compiling.

As added information, our wily kernel git repo can be seen at:

https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/wily

Let us know if any additional information is required to debug this.

ProblemType: Bug
DistroRelease: Ubuntu 15.10
Package: binutils 2.25-8ubuntu1
ProcVersionSignature: Ubuntu 4.0.0-1.1-generic 4.0.5
Uname: Linux 4.0.0-1-generic x86_64
ApportVersion: 2.17.3-0ubuntu4
Architecture: amd64
CurrentDesktop: Unity
Date: Wed Jun 10 06:16:10 2015
Dependencies:
 gcc-5-base 5.1.1-9ubuntu2
 libc6 2.21-0ubuntu4
 libgcc1 1:5.1.1-9ubuntu2
 multiarch-support 2.21-0ubuntu4
 zlib1g 1:1.2.8.dfsg-2ubuntu1
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-03-17 (449 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Alpha amd64 (20140317)
SourcePackage: binutils
UpgradeStatus: Upgraded to wily on 2015-05-28 (12 days ago)

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :
Revision history for this message
Leann Ogasawara (leannogasawara) wrote :
Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

Still getting you command line options...

Revision history for this message
Tim Gardner (timg-tpi) wrote :

Here is a build log with V=1. Search for 'Error: missing operand'.

Revision history for this message
Tim Gardner (timg-tpi) wrote :

Plus the intermediate temp file created using the '-save-temps' flag to GCC

Revision history for this message
Peter Bergner (pbergner) wrote :

I have the problem recreated. Debugging it now.

Revision history for this message
Peter Bergner (pbergner) wrote :

Here is a minimal test case extracted from swsusp_asm64.s:

bergner@genoa:~/binutils/BUGS$ cat tlbie.s
 .text
 tlbie %r4

bergner@genoa:~/binutils/BUGS$ /home/bergner/binutils/build/binutils-2_25/gas/as-new -a64 -mpower7 tlbie.s
tlbie.s: Assembler messages:
tlbie.s:2: Error: missing operand

In ISA 2.06 (ie, POWER7), the tlbie instruction was changed from:

        tlbie RB,L # Where L = 0 or 1 and "tlbie RB" is an extended mnemonic for "tlbie RB,0"
to
        tlbie RB,RS

The assembler was recently changed to accept the "tlbie RB,RS" variant so that is why we are seeing the error now and not before, but I believe it is correct that the assembler error out on this, as the tlbie instruction really did change. I believe the correct "fix" for this is going to take a kernel source change. Whether that is to setup and pass RS to the tlbie or whether we should use tlbiel instead, I'm not sure. I'll ping our kernel team and see what they say.

Revision history for this message
Adam Conrad (adconrad) wrote :

Okay, had a long talk with mpee and benh on IRC, where a few things came out of it:

1) This is absolutely an upstream kernel bug.
2) This code probably doesn't work on anything newer than a G5 *anyway*, even if they fix that one line.

Given those two points, the conclusion we came to is that we should disable CONFIG_HIBERNATION for ppc64el, and they'll backburner an item to some day see if they can make hibernation work on modern POWER CPUs, but no one sees that as critical.

I did a testbuild on ppc64el with CONFIG_HIBERNATION=n, and that worked fine, so that's what we should do for now.

affects: binutils (Ubuntu) → linux (Ubuntu)
Changed in linux (Ubuntu):
assignee: Matthias Klose (doko) → nobody
status: New → Confirmed
summary: - 4.0 kernel build failure on ppc64el
+ Disable CONFIG_HIBERNATION on ppc64el
Revision history for this message
Adam Conrad (adconrad) wrote :

Also, given the conclusion that CONFIG_HIBERNATION won't work on newer CPUs, it's probably worth backporting the CONFIG_HIBERNATION=n change to SRU kernels as well, before someone decides to try to use it and files a bug that it doesn't work.

Tim Gardner (timg-tpi)
Changed in linux (Ubuntu Wily):
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 4.0.0-4.6

---------------
linux (4.0.0-4.6) wily; urgency=low

  [ Andy Whitcroft ]

  * Release Tracking Bug
    - LP: #1470233
  * rebase to mainline v4.0.7

  [ Jay Vosburgh ]

  * SAUCE: fan: Proof of concept implementation (v2)
    - LP: #1439706
  * SAUCE: fan: tunnel multiple mapping mode (v3)
    - LP: #1470091

  [ Upstream Kernel Changes ]

  * rebase to v4.0.7
    - LP: #1427680
    - LP: #1462614

 -- Andy Whitcroft <email address hidden> Tue, 30 Jun 2015 16:55:32 +0100

Changed in linux (Ubuntu Wily):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.