Valgrind is not supported on PPC64 Little Endian (LE) platforms

Bug #1355530 reported by bugproxy
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
valgrind (Ubuntu)
Fix Released
Undecided
Matthias Klose

Bug Description

---Problem Description---
Valgrind is not supported on PPC64 Little Endian (LE) platforms. The LE support has recently been added to Valgrind. Would like to get the support included in the Ubuntu 14.10 release.

---Additional Hardware Info---
PPC64 LE system

Machine Type = PPC64 Little Endian

---Steps to Reproduce---
 The valgrind support for PPC64 does not exist. So starting the tool on the platform just fails.

Userspace tool common name: valgrind

The userspace tool has the following bit modes: 64-bit

The needed support for Valgrind on PPC64 LE was added upstream. The description of the added support can be found in the Valgrind bugzillas:

   https://bugs.kde.org/show_bug.cgi?id=334384 Patch 1 Valgrind commit 14238
   https://bugs.kde.org/show_bug.cgi?id=334834 Patch 2 Valgrind commit 14239, vex commit 2914
   https://bugs.kde.org/show_bug.cgi?id=334836 Patch 3 Valgrind commit 14240

   fix for the performance regerssion fix Valgrind commit 14246 on Friday July 8, 2014

Note, patch 2 is depended on some newly added support for passing the Endianess of the host and the guest to the VEX code. The valgrind commit for this dependent support is as follows:

Valgrind repository

   r14184 | sewardj | 2014-07-24 07:45:24 -0500 (Thu, 24 Jul 2014) | 8 lines

   Track vex r2910 (infrastructural improvements in representation of
   endianness in VEX).

   In short: in m_machine.c, VG_(machine_get_hwcaps), get the endianness
   of the host, and pass it through to all places (in VEX) where it is
   required.

VEX repository

   r2910 | sewardj | 2014-07-24 07:42:03 -0500 (Thu, 24 Jul 2014) | 22 lines

   Improve infrastructure for dealing with endianness in VEX. This patch
   removes all decisions about endianness from VEX. Instead, it requires
   that the LibVEX_* calls pass in information about the guest or host
   endianness (depending on context) and in turn it passes that info
   through to all the places that need it:

   * the front ends (xx_toIR.c)
   * the back ends (xx_isel.c)
   * the patcher functions (Chain, UnChain, PatchProfInc)

   Mostly it is boring and ugly plumbing. As far as types go, there is a
   new type "VexEndness" that carries the endianness. This also makes it
   possible to stop using Bools to indicate endianness. VexArchInfo has
   a new field of type VexEndness. Apart from that, no other changes in
   types.

   Followups: MIPS front and back ends have not yet been fixed up to use
   the passed-in endianness information. Currently they assume that the
   endianness of both host and guest is the same as the endianness of the
   target for which VEX is being compiled.

bugproxy (bugproxy)
tags: added: architecture-ppc64le bugnameltc-114508 severity-medium targetmilestone-inin1410
Luciano Chavez (lnx1138)
affects: ubuntu → valgrind (Ubuntu)
Changed in valgrind (Ubuntu):
status: New → Confirmed
Changed in valgrind (Ubuntu):
assignee: nobody → Taco Screen team (taco-screen-team)
Revision history for this message
Breno Leitão (breno-leitao) wrote :

Hi Canonical,

Any status on this bug?

Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2014-08-25 20:29 EDT-------
A performance regression issue was found once the PPC Little Endian support was checked in. The issue was the compile line flags "-02 and -m64" weren't getting passed correctly to the VEX code. This resulted in about a 3x slowdown. The issue was resolved in valgrind commit 14246 on Friday Aug 8,2014. It is recommended that any pull of the Valgrind be newer then the above mentioned commit.

Steve Langasek (vorlon)
Changed in valgrind (Ubuntu):
assignee: Taco Screen team (taco-screen-team) → Adam Conrad (adconrad)
Revision history for this message
Breno Leitão (breno-leitao) wrote :

The Beta for the next Valgrind release 3.10 has been released for testing. This new release has the code we need here, so, jumping to it should solve this bug.

Revision history for this message
Steve Langasek (vorlon) wrote :

Matthias, I see that utopic currently has an upstream valgrind snapshot that was added for aarch64 support. Is it reasonable to take an update to the valgrind 3.10 beta? Or should we cherry-pick the specific patches noted in this bug description?

Changed in valgrind (Ubuntu):
assignee: Adam Conrad (adconrad) → Matthias Klose (doko)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package valgrind - 1:3.10.0~BETA2-0ubuntu1

---------------
valgrind (1:3.10.0~BETA2-0ubuntu1) utopic; urgency=medium

  * Upstream release 3.10.0 BETA2. LP: #1355530.
 -- Matthias Klose <email address hidden> Tue, 09 Sep 2014 03:25:01 +0200

Changed in valgrind (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2014-09-09 15:57 EDT-------
I have tested the Valgrind Beta2 release on PPC64 big endian and little endian. It checks out fine, no issues were found. The minor issue that I had found with Beta1 has been fixed.

The maintainer plans on releasing Beta 2 on Sept. 11, 2014 assuming no issues are found in the testing of the Beta 2 release.

Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2014-09-23 18:59 EDT-------
Valgrind 3.10 was released on Sept. 10, 2014. It has the complete PPC64 LE support in it.

Revision history for this message
Matthias Klose (doko) wrote :

please fix your checking/bugproxy. 14.10 has the final version

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.