[Bug 1884143] Comment bridged from LTC Bugzilla

bugproxy 1884143 at bugs.launchpad.net
Fri Jul 17 14:49:39 UTC 2020


------- Comment From chavez at us.ibm.com 2020-07-17 10:42 EDT-------
Hi Frank,

We've opened LP 1887974 for 20.04 and while we are it can we include the
fix in 18.04?

This bug should have been more clearer on target release(s). However,
for the record the bridge does create a tag in the LP bug that starts
with "targetmilestone-inin" followed by the target release 1804, 2004,
etc.

Thanks for the help!

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to valgrind in Ubuntu.
https://bugs.launchpad.net/bugs/1884143

Title:
  Valgrind: PPC sync instruction L field should only be 2 bits in ISA
  3.0

Status in The Ubuntu-power-systems project:
  Fix Released
Status in valgrind package in Ubuntu:
  Fix Released

Bug description:
  ---Problem Description---
  Valgrind, including version 3.16, mishandles the L field of the sync instruction.
  More details are available at: https://bugs.kde.org/show_bug.cgi?id=422677

  This is a request to backport the following Valgrind patch from
  upstream:

  commit fb6f7abcbc92506d302fb18a2c5fc853d2929248
  Author: Carl Love <cel at us.ibm.com>
  Date:   Tue Jun 9 10:42:03 2020 -0500

      Power PC Fix extraction of the L field for sync instruction
      
      The L field is currently a two bit[22:21] field in ISA 3.0. The size of the
      L field has changed over time.
      
      Currently the ISA 3.0 Valgrind sync instruction support code sets the
      flag_L for the instruction L field to a five bit value that includes bits
      that are marked reserved the sync instruction.  This patch fixes the issue for ISA 3.0
      to only setting flag_L the specified two bits.
      
      Valgrind bugzilla:   https://bugs.kde.org/show_bug.cgi?id=422677
   
   
  Machine Type = Reproducible on all POWER8 and POWER9 servers 
   
  ---Steps to Reproduce---
   $ cat test-sync.c 
  #define __SYNC(l) ".long (0x7c0004AC | ((" #l ") << 21))"

  int
  main ()
  {
          asm volatile(__SYNC(4) : : : "memory");
  }
  $ gcc test-sync.c && valgrind --tool=none ./a.out
  ==150073== Nulgrind, the minimal Valgrind tool
  ==150073== Copyright (C) 2002-2017, and GNU GPL'd, by Nicholas Nethercote.
  ==150073== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
  ==150073== Command: ./a.out
  ==150073== 
  dis_memsync(ppc)(sync/lwsync,flag_L)
  disInstr(ppc): unhandled instruction: 0x7C8004AC
                   primary 31(0x1F), secondary 1196(0x4AC)
  ==150073== valgrind: Unrecognised instruction at address 0x180788.
  ==150073==    at 0x180788: main (in /home/tuliom/tmp/a.out)
  ==150073== Your program just tried to execute an instruction that Valgrind
  ==150073== did not recognise.
  ...
   
  Userspace tool common name: Valgrind 
   
  The userspace tool has the following bit modes: 64-bit 

  Userspace deb: valgrind

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/1884143/+subscriptions



More information about the foundations-bugs mailing list