[Bug 1884143] Re: Valgrind: PPC sync instruction L field should only be 2 bits in ISA 3.0
Frank Heimes
1884143 at bugs.launchpad.net
Fri Jul 17 06:15:55 UTC 2020
Hi Luciano,
since this ticket was opened without specifying a certain Ubuntu release, it was assumed that it got opened for the Ubuntu release that is currently in development - which is in this case 20.10 / groovy.
And since groovy includes valgrind 3.16.1, that already incl. the fix mentioned above, this ticket was closed as Fix Released.
However, if this fix needs to land in 20.04 / focal's valgrind 3.15 too:
valgrind | 1:3.15.0-1ubuntu9 | focal | ppc64el
it can be done based on Ubuntu's stable release upgrade (SRU) process (https://wiki.ubuntu.com/StableReleaseUpdates).
This process applies to Ubuntu releases that have been completed and were already published, and is therefore quite strict to avoid regressions.
Therefore we cannot simply bump the valgrind version in focal to the latest, but we may cherry-pick one or more patches/commits to fix a certain problem/bug.
Means if the above fix (fb6f7abcbc92506d302fb18a2c5fc853d2929248) can be
cherry-picked to 3.15 and applies there cleanly, we may do that. If it
doesn't apply cleanly a proper backport to 3.15 would be needed.
So yes, we would like to ask you to open a new bug requesting this same fix in 20.04 (since this ticket got already closed) - if you don't mind ...
(If this bug wouldn't have been reached the 'Fix Release' status yet, it could have simply marked as affecting groovy _and_ focal.)
--
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