]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
10 years agoProperly guard drd/tests/thread_name with HAVE_PTHREAD_BARRIER. Partial fix for BZ...
Rhys Kidd [Fri, 1 May 2015 10:19:22 +0000 (10:19 +0000)] 
Properly guard drd/tests/thread_name with HAVE_PTHREAD_BARRIER. Partial fix for BZ#344416 (at least reduces required hacks).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15172

10 years agoFix aspacem segment mismatch: seen with none/tests/bigcode
Rhys Kidd [Fri, 1 May 2015 06:29:51 +0000 (06:29 +0000)] 
Fix aspacem segment mismatch: seen with none/tests/bigcode
bz#345824

Tested on OS X 10.9 and OS X 10.10.

Before:

== 595 tests, 237 stderr failures, 23 stdout failures, 0 stderrB failures, 0 stdoutB failures, 31 post failures ==

After:

== 595 tests, 236 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 31 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15171

10 years agoFix regression test compile issue on OS X platform, introduced in r15113. n-i-bz
Rhys Kidd [Thu, 30 Apr 2015 23:39:10 +0000 (23:39 +0000)] 
Fix regression test compile issue on OS X platform, introduced in r15113. n-i-bz

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15170

10 years agoRemove a few embarassing comments.
Florian Krohm [Thu, 30 Apr 2015 20:44:17 +0000 (20:44 +0000)] 
Remove a few embarassing comments.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15169

10 years agoRename write variable to avoid a warning:
Philippe Waroquiers [Thu, 30 Apr 2015 20:30:12 +0000 (20:30 +0000)] 
Rename write variable to avoid a warning:
memrw.c:37: warning: declaration of ‘write’ shadows a global declaration
/usr/include/unistd.h:333: warning: shadowed declaration is here

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15167

10 years agoFix the namespace of the functions dealing with segment names.
Florian Krohm [Thu, 30 Apr 2015 17:34:04 +0000 (17:34 +0000)] 
Fix the namespace of the functions dealing with segment names.
As those are private to the address space manager they should
be ML_ not VG_ prefixed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15165

10 years agoDW_CFA_def_cfa_expression: don't push the CFA on the stack before
Julian Seward [Thu, 30 Apr 2015 11:45:13 +0000 (11:45 +0000)] 
DW_CFA_def_cfa_expression: don't push the CFA on the stack before
evaluation starts.  For DW_CFA_val_expression and DW_CFA_expression
doing so is correct, but not for DW_CFA_def_cfa_expression.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15160

10 years agoAdd a HOWTO on how to build and install aarch64-linux on QEMU,
Julian Seward [Thu, 30 Apr 2015 11:06:00 +0000 (11:06 +0000)] 
Add a HOWTO on how to build and install aarch64-linux on QEMU,
primarily for testing convenience.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15159

10 years agoFix intermittent build error on aarch64-linux caused by inadequate
Julian Seward [Wed, 29 Apr 2015 20:48:48 +0000 (20:48 +0000)] 
Fix intermittent build error on aarch64-linux caused by inadequate
alignment for some data symbols.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15157

10 years agoIssue an error message if then brk segment overflows.
Florian Krohm [Wed, 29 Apr 2015 12:59:16 +0000 (12:59 +0000)] 
Issue an error message if then brk segment overflows.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15155

10 years agoUse error exit code when bailing out.
Florian Krohm [Tue, 28 Apr 2015 18:46:33 +0000 (18:46 +0000)] 
Use error exit code when bailing out.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15153

10 years agoUpdate.
Julian Seward [Tue, 28 Apr 2015 11:49:05 +0000 (11:49 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15151

10 years agoBack out most of r15145 which reports bug fixes for various altivec insns.
Florian Krohm [Mon, 27 Apr 2015 21:10:36 +0000 (21:10 +0000)] 
Back out most of r15145 which reports bug fixes for various altivec insns.
Either those bugs have been fixed looong time ago, or the reporter ran
on a host without altivec capabilities, or those insns were actually
e500 insns which are not supported at all at this point.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15150

10 years agoFix fallout from r15138: build error on Darwin due to renamed function.
Florian Krohm [Mon, 27 Apr 2015 17:28:15 +0000 (17:28 +0000)] 
Fix fallout from r15138: build error on Darwin due to renamed function.
Fixes BZ #346801.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15149

10 years agoRemove magic constant. Use LibVEX_GUEST_STATE_ALIGN instead.
Florian Krohm [Mon, 27 Apr 2015 14:28:28 +0000 (14:28 +0000)] 
Remove magic constant. Use LibVEX_GUEST_STATE_ALIGN instead.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15148

10 years agoFollow up on VEX r3144 and remove VexGuestTILEGXStateAlignment.
Florian Krohm [Mon, 27 Apr 2015 14:26:26 +0000 (14:26 +0000)] 
Follow up on VEX r3144 and remove VexGuestTILEGXStateAlignment.
Also fix the alignment check which should be mod 16 not mod 8.
Well, actually, it should be mod LibVEX_GUEST_STATE_ALIGN but
that is another patch.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15147

10 years agoFix an outdated comment as pointed out in BZ #211256.
Florian Krohm [Mon, 27 Apr 2015 14:04:52 +0000 (14:04 +0000)] 
Fix an outdated comment as pointed out in BZ #211256.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15146

10 years agoUpdate. Mostly ppc insns that appear to have been fixed
Florian Krohm [Sun, 26 Apr 2015 19:23:56 +0000 (19:23 +0000)] 
Update. Mostly ppc insns that appear to have been fixed

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15145

10 years agoFix BZ #342683. Based on patch by Ivo Raisr.
Florian Krohm [Sat, 25 Apr 2015 18:23:21 +0000 (18:23 +0000)] 
Fix BZ #342683. Based on patch by Ivo Raisr.
What this does is to make sure that the initial client data segment
is marked as unaddressable. This is consistent with the behaviour of
brk when the data segment is shrunk. The "freed" memory is marked
as unaddressable.
Special tweaks were needed for s390 which was returning early from
the funtion to avoid sloppy register definedness initialisation.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15144

10 years agoFix the writev / readv wrappers. Do not read the array pointed to
Florian Krohm [Sat, 25 Apr 2015 18:14:17 +0000 (18:14 +0000)] 
Fix the writev / readv wrappers. Do not read the array pointed to
by the 2nd argument, if the element count is negative.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15143

10 years agoReplace adler32 by sdbm_hash in m_deduppoolalloc.c
Philippe Waroquiers [Sat, 25 Apr 2015 14:53:35 +0000 (14:53 +0000)] 
Replace adler32 by sdbm_hash in m_deduppoolalloc.c
adler32 is not very good as a hash function.
sdbm_hash gives more different keys that adler32,
and in a large majority of the cases, shorter chains.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15142

10 years agoGive statistics about RCEC helgrind hash table chains.
Philippe Waroquiers [Sat, 25 Apr 2015 14:00:24 +0000 (14:00 +0000)] 
Give statistics about RCEC helgrind hash table chains.
Improve statistic in coregrind hash table

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15141

10 years agoCheck for any client stack segment. Rule out valgrind segments.
Florian Krohm [Fri, 24 Apr 2015 10:05:23 +0000 (10:05 +0000)] 
Check for any client stack segment. Rule out valgrind segments.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15140

10 years agoAdd some internal documentation for 'svn ignore' maintenance;
Philippe Waroquiers [Thu, 23 Apr 2015 21:28:12 +0000 (21:28 +0000)] 
Add some internal documentation for 'svn ignore' maintenance;
reference it from README_DEVELOPERS_processes

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15139

10 years agoFix an assertion in the address space manager. BZ #345887.
Florian Krohm [Thu, 23 Apr 2015 15:20:00 +0000 (15:20 +0000)] 
Fix an assertion in the address space manager. BZ #345887.
The VG_(extend_stack) call needs to be properly guarded because the
passed-in address is not necessarily part of an extensible stack
segment. And an extensible stack segment is the only thing that
function should have to deal with.
Previously, the function VG_(am_addr_is_in_extensible_client_stack)
was introduced to guard VG_(extend_stack) but it was not added in all
places it should have been.

Also, extending the client stack during signal delivery (in sigframe-common.c)
was simply calling VG_(extend_stack) hoping it would do the right thing.
But that was not always the case. The new testcase
none/tests/linux/pthread-stack.c exercises this (3.10.1 errors out on it).

Renamed ML_(sf_extend_stack) to ML_(sf_maybe_extend_stack) and add
proper guard logic for VG_(extend_stack).

Testcases none/tests/{amd64|x86}-linux/bug345887.c by Ivo Raisr.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15138

10 years agoUpdate list of ignored files.
Florian Krohm [Thu, 23 Apr 2015 13:17:20 +0000 (13:17 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15137

10 years agoThere is an ABI change in how the PPC64 gcc compiler handles 128 bit arguments
Carl Love [Wed, 22 Apr 2015 21:17:48 +0000 (21:17 +0000)] 
There is an ABI change in how the PPC64 gcc compiler handles 128 bit arguments
are aligned with GCC 5.0.  The compiler generates a "note" about this starting
with GCC 4.9.  To avoid generating the "note", the passing of the arguments
were changed to a pointer to make it pass by reference rather then pass by
value.

bugzilla 346487.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15136

10 years agoUpdate NEWS file with bix for bugzilla 346474.
Carl Love [Wed, 22 Apr 2015 16:28:22 +0000 (16:28 +0000)] 
Update NEWS file with bix for bugzilla 346474.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15135

10 years agoAdd support for the TEXASRU register. This register contains information on
Carl Love [Wed, 22 Apr 2015 16:17:06 +0000 (16:17 +0000)] 
Add support for the TEXASRU register.  This register contains information on
transactional memory instruction summary information.  This register contains
the upper 32-bits of the transaction information.  Note, the valgrind
implementation of transactional memory instructions is limited.  Currently, the
contents of the TEXASRU register will always return 0.  The lower 64-bits of
the trasnaction information in the TEXASR register will contain the failure
information as setup by Valgrind.

The vex commit 3143 contains the changes needed to support the TEXASRU
register on PPC64.

The support requires changing the value of MAX_REG_WRITE_SIZE in
memcheck/mc_main.c from 1696 to 1712.  The change is made in this
valgrind commit.

This patch addresses Bugzilla 346474

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15134

10 years agoEnable rt_sigpending syscall on ppc64 linux.
Mark Wielaard [Wed, 22 Apr 2015 15:29:03 +0000 (15:29 +0000)] 
Enable rt_sigpending syscall on ppc64 linux.

Patch from Thomas Huth <thuth@redhat.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15133

10 years agoRename VG_(am_is_bogus_client_stack_pointer) to
Florian Krohm [Wed, 22 Apr 2015 14:16:11 +0000 (14:16 +0000)] 
Rename VG_(am_is_bogus_client_stack_pointer) to
VG_(am_addr_is_in_extensible_client_stack).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15132

10 years agoFix a silly bug.
Florian Krohm [Wed, 22 Apr 2015 13:50:13 +0000 (13:50 +0000)] 
Fix a silly bug.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15131

10 years agoNEWS: Add entry for bug #346416 / trunk r15123
Bart Van Assche [Wed, 22 Apr 2015 08:07:35 +0000 (08:07 +0000)] 
NEWS: Add entry for bug #346416 / trunk r15123

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15130

10 years agoAnnounce in NEWS the optimisation done for helgrind big applications
Philippe Waroquiers [Tue, 21 Apr 2015 22:04:55 +0000 (22:04 +0000)] 
Announce in NEWS the optimisation done for helgrind big applications
full history level

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15129

10 years agoAdd some stats to helgrind stats:
Philippe Waroquiers [Tue, 21 Apr 2015 21:58:14 +0000 (21:58 +0000)] 
Add some stats to helgrind stats:
* nr of client malloc-ed blocks
* how many OldRef helgrind has, and the distribution
  of these OldRef according to the nr of accs they have

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15128

10 years agoMove a comment useful to the caller to the .h, rather than keeping it
Philippe Waroquiers [Tue, 21 Apr 2015 20:56:49 +0000 (20:56 +0000)] 
Move a comment useful to the caller to the .h, rather than keeping it
in the .c

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15127

10 years agoDo RCEC_GC when approaching the max nr of RCEC, not when reaching it.
Philippe Waroquiers [Tue, 21 Apr 2015 20:55:40 +0000 (20:55 +0000)] 
Do RCEC_GC when approaching the max nr of RCEC, not when reaching it.
Otherwise, long running applications still see the max nr of RCEC
slowly growing, which increases the memory usage and
makes the (fixed) contextTab hash table slower to search.
Without this margin, the max could increase as the GC code
is not called at exactly the moment we reach the previous max,
but rather when a thread has run a bunch of basic blocks.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15126

10 years agoUpdate the NEWS file with the fixes for bugzillas 345695, 346267, and 346324.
Carl Love [Tue, 21 Apr 2015 20:13:27 +0000 (20:13 +0000)] 
Update the NEWS file with the fixes for bugzillas 345695, 346267, and 346324.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15125

10 years agoUpdate the expected output file none/tests/ppc64/jm_int_isa_2_07.stdout.exp
Carl Love [Tue, 21 Apr 2015 20:06:13 +0000 (20:06 +0000)] 
Update the expected output file none/tests/ppc64/jm_int_isa_2_07.stdout.exp
for PPC64 big endian.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15124

10 years agoAdd support for LL_IOC_PATH2FID and LL_IOC_GETPARENT Lustre ioctls
Bart Van Assche [Tue, 21 Apr 2015 17:46:52 +0000 (17:46 +0000)] 
Add support for LL_IOC_PATH2FID and LL_IOC_GETPARENT Lustre ioctls

From: Frank Zago <fzago@cray.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15123

10 years agoincrease function size even more (see r15095). On s390 this testcase
Christian Borntraeger [Tue, 21 Apr 2015 12:27:09 +0000 (12:27 +0000)] 
increase function size even more (see r15095). On s390 this testcase
might use a relative load (e.g. via load address relative long(larl)
for the address) into the literal pool for some constants. 1280 seems
to be enough that the r/o data is copied along the function.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15121

10 years agoAdd support for the lbarx, lharx, stbcx and sthcs instructions.
Carl Love [Mon, 20 Apr 2015 23:38:33 +0000 (23:38 +0000)] 
Add support for the lbarx, lharx, stbcx and sthcs instructions.

One of the expect files was missing.  Also found that there
was a bug in the stq, stqcx, lq and lqarx instructions for LE.
The VEX commit for the instruction fix was 3138.

This commit updates the expect files for the corrected instructions
and adds the missing expect files.

The bugzilla for the orginal issue of the missing instructions
is 346324.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15120

10 years agoThis patch changes the policy that does the GC of OldRef and RCEC
Philippe Waroquiers [Mon, 20 Apr 2015 21:33:16 +0000 (21:33 +0000)] 
This patch changes the policy that does the GC of OldRef and RCEC
conflict cache size.

The current policy is:
A 'more or less' LRU policy is implemented by giving
to each OldRef a generation nr in which it was last touched.
A new generation is created every 50000 new access.
GC is done when the nr of OldRef reaches --conflict-cache-size.
The GC consists in removing enough generations to free
half of the entries.
After GC of OldRef, the RCEC (Ref Counted Exe Contexts)
not referenced anymore are GC-ed.

The new policy is:
An exact LRU policy is implemented using a doubly linked list
of OldRef.
When reaching --conflict-cache-size, the LRU entry is re-used.

The not referenced RCEC are GC-ed when less than 75% of the RCEC
are referenced, and the nr of RCEC is 'big' (at least half the
size of the contextTab, and at least the max nr of RCEC reached
previously).
  (note: tried to directly recover a unref'ed RCEC when recovering
   the LRU oldref, but that gives a lot of re-creation of RCEC).

new policy has the following advantages/disadvantages:
1. It is faster (at least for big applications)
  On a firefox startup/exit, we gain about 1m30 second on 11m.
  Similar 5..10% speed up encountered on other big applications
  or on the new perf/memrw test.
  The speed increase depends on the amount of memory
  touched by the application. For applications with a
  working set fitting in conflict-cache-size, the new policy
  might be marginally slower than previous policy on platforms
  having a small cache : the current policy only sets a generation
  nr when an address is re-accessed, while the new policy
  has to unchain and rechain the OldRef access in the LRU
  doubly linked list.
2. It uses less memory (at least for big applications)
   Firefox startup/exit "core" arena max use decreases from
     1175MB mmap-ed/1060MB alloc-ed
   to
     994MB mmap-ed/913MB alloc-ed

   The decrease in memory is the result of having a lot less RCEC:
   The current policy let the nr of RCEC grow till the conflict
   cache size is GC-ed.

   The new policy limits the nr of RCEC to 133% of the RCEC
   really referenced. So, we end up with a max nr of RCEC
   a lot smaller with the new policy : max RCEC 191000
   versus 1317000, for a total nr of discard RCEC operations
   almost the same: 33M versus 32M.
   Also, the current policy allocates a big temporary array
   to do the GC of OldRef.

   With the new policy, size of an OldRef increases because
   we need 2 pointers for the LRU doubly linked list, and
   we need the accessed address.
   In total, the OldRef increase is limited to one Word,
   as we do not need anymore the gen, and the 'magic'
   for sanity check was removed (the check somewhat
   becomes less needed, because an OldRef is never freed
   anymore. Also, we do a new cross-check between
   the ga in the OldRef and the sparseWA key).

   For applications using small memory and having
   a small nr of different stack traces accessing memory,
   the new policy causes an increase in memory (one Word
   per OldRef).

3. Functionally, the new policy gives better past information:
   once the steady state is reached (i.e. the conflict cache
   is full), the new policy has always --conflict-cache-size
   entries of past information.
   The current policy has a nr of past information varying
   between --conflict-cache-size/2 and --conflict-cache-size
   (so in average, 75% of conflict-cache-size).

4. The new code is a little bit smaller/simpler:
   The generation based GC is replaced by a simpler LRU policy.

So, in summary, this patch should allow big applications
to use less cpu/memory, while having very little
or no impact on memory/cpu of small applications.

Note that the OldRef data structure LRU policy
is not really explicitely tested by a regtest.
Not easy at first sight to make such a test portable
between platforms/OS/compilers/....

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15119

10 years agoUse the proper function.
Florian Krohm [Mon, 20 Apr 2015 21:13:03 +0000 (21:13 +0000)] 
Use the proper function.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15118

10 years agoRemove SysRes::_valEx from common code as it is specific to mips.
Florian Krohm [Mon, 20 Apr 2015 21:02:18 +0000 (21:02 +0000)] 
Remove SysRes::_valEx from common code as it is specific to mips.
ifdef'ed accordingly.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15117

10 years agoRemove function sr_ResHI from Linux specific code.
Florian Krohm [Mon, 20 Apr 2015 20:42:42 +0000 (20:42 +0000)] 
Remove function sr_ResHI from Linux specific code.
Add function VG_(sr_as_string).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15116

10 years agoUpdate tilegx's do_clone function adopting the stack bound changes
Florian Krohm [Mon, 20 Apr 2015 17:00:02 +0000 (17:00 +0000)] 
Update tilegx's do_clone function adopting the stack bound changes
made in r14392.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15115

10 years agoEnsure we print the memory statistics with the default verbosity,
Philippe Waroquiers [Sun, 19 Apr 2015 17:56:42 +0000 (17:56 +0000)] 
Ensure we print the memory statistics with the default verbosity,
when giving --stats=yes

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15114

10 years agoFor ppc64, use the endianess of the running program, rather
Philippe Waroquiers [Sun, 19 Apr 2015 15:43:53 +0000 (15:43 +0000)] 
For ppc64, use the endianess of the running program, rather
than an harcoded endness.
(this is because ppc64 supports 2 endness, decided at runtime)

For mips, use BE if running on a non mips system, otherwise
use the endness of the running program
(this is because mips supports 2 endness, but decided at compile time).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15113

10 years agofix 346307 fuse filesystem syscall deadlocks
Philippe Waroquiers [Sun, 19 Apr 2015 12:39:33 +0000 (12:39 +0000)] 
fix 346307  fuse filesystem syscall deadlocks
Mark 2 additional syscalls as 'mayblock' when fuse-compatible hint
is given.
Patch from aozgovde@ralota.com

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15112

10 years agoRemove a few unneeded header files.
Florian Krohm [Sat, 18 Apr 2015 17:45:34 +0000 (17:45 +0000)] 
Remove a few unneeded header files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15111

10 years agoFix a comment.
Florian Krohm [Sat, 18 Apr 2015 17:41:31 +0000 (17:41 +0000)] 
Fix a comment.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15110

10 years agoFactor out the 'extend' function. We only need one version for Linux and
Florian Krohm [Sat, 18 Apr 2015 10:33:54 +0000 (10:33 +0000)] 
Factor out the 'extend' function. We only need one version for Linux and
one for Darwin. Down from 11.
Carve out a new function 'track_frame_memory' that communicates to the
tool the allocation of a new stack frame. This was slightly different on
Linux and Darwin but should be the same on both platforms.
New files: priv_sigframe.h and sigframe-common.c

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15109

10 years agoAdd missing header file.
Florian Krohm [Sat, 18 Apr 2015 09:15:47 +0000 (09:15 +0000)] 
Add missing header file.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15108

10 years agoForgot to add the new files in memcheck/tests/ppc32 and memcheck/tests/ppc32.
Carl Love [Sat, 18 Apr 2015 00:01:58 +0000 (00:01 +0000)] 
Forgot to add the new files in memcheck/tests/ppc32 and memcheck/tests/ppc32.

They should have been part of the previous commit 15106.

--------------------------------------------------------------------

Add support for the lbarx, lharx, stbcx and sthcs instructions.

The instructions are part of the ISA 2.06 but were not implemented
in all versions of hardware.  The four instructions are all supported
in ISA 2.07.  The instructions were put under the ISA 2.07 category
of supported instructions in this patch.

The VEX commit for this fix is r3137.

The bugzilla for this issue is 346324.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15107

10 years agoAdd support for the lbarx, lharx, stbcx and sthcs instructions.
Carl Love [Fri, 17 Apr 2015 23:43:36 +0000 (23:43 +0000)] 
Add support for the lbarx, lharx, stbcx and sthcs instructions.

The instructions are part of the ISA 2.06 but were not implemented
in all versions of hardware.  The four instructions are all supported
in ISA 2.07.  The instructions were put under the ISA 2.07 category
of supported instructions in this patch.

The VEX commit for this fix is r3137.

The bugzilla for this issue is 346324.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15106

10 years agoFix statistics about ctxt_rcec :
Philippe Waroquiers [Fri, 17 Apr 2015 21:19:43 +0000 (21:19 +0000)] 
Fix statistics about ctxt_rcec :
* the nr of discards was always 0
* the cur nr of values was shown as max

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15105

10 years agoFollowup to r15101. Remove pointless cast. The castee already
Florian Krohm [Fri, 17 Apr 2015 08:56:11 +0000 (08:56 +0000)] 
Followup to r15101. Remove pointless cast. The castee already
has that type.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15104

10 years agoFix the compiler warning about casting the arguments to the functions
Carl Love [Thu, 16 Apr 2015 16:25:29 +0000 (16:25 +0000)] 
Fix the compiler warning about casting the arguments to the functions
LibVEX_GuestPPC64_get_CR() and LibVEX_GuestPPC64_get_XER().

The bugzilla for this issue is 346267.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15101

10 years agoFix function call: 1st argument is the thread id.
Florian Krohm [Wed, 15 Apr 2015 21:45:57 +0000 (21:45 +0000)] 
Fix function call: 1st argument is the thread id.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15100

10 years agoFollowing fix done in tilegx host in vex: r3130, reenable tilegx as host
Philippe Waroquiers [Wed, 15 Apr 2015 20:30:52 +0000 (20:30 +0000)] 
Following fix done in tilegx host in vex: r3130, reenable tilegx as host
in libvexmultiarch_test

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15099

10 years agoUpdate list of ignored files.
Florian Krohm [Wed, 15 Apr 2015 18:35:52 +0000 (18:35 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15098

10 years agoTo address memcheck/tests/leak-segv-jmp test failure for TILEGX
Zhi-Gang Liu [Wed, 15 Apr 2015 03:26:38 +0000 (03:26 +0000)] 
To address memcheck/tests/leak-segv-jmp test failure for TILEGX
By: Zhi-Gang Liu       zhg.liu@gmail.com

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15097

10 years agoAdd TILEGX arch. specific syscall #245, __NR_cacheflush
Zhi-Gang Liu [Wed, 15 Apr 2015 03:22:17 +0000 (03:22 +0000)] 
Add TILEGX arch. specific syscall #245, __NR_cacheflush
By:Zhi-Gang Liu

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15096

10 years agoFix the bigcode test failure for TILEGX
Zhi-Gang Liu [Wed, 15 Apr 2015 02:56:20 +0000 (02:56 +0000)] 
Fix the bigcode test failure for TILEGX
By: Zhi-Gang Liu

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15095

10 years agoAddress minor issues in Julian's last review.
Zhi-Gang Liu [Wed, 15 Apr 2015 02:33:09 +0000 (02:33 +0000)] 
Address minor issues in Julian's last review.
For TILEGX only.
By: Zhi-Gang Liu

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15094

10 years agoAdd 'allexec.c' in "none/tests/tilegx"
Zhi-Gang Liu [Wed, 15 Apr 2015 00:56:40 +0000 (00:56 +0000)] 
Add 'allexec.c' in "none/tests/tilegx"

The symbolic link 'allexec.c' -> ../allecec.c

By: Zhi-Gang Liu
zhg.liu@gmail.com

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15093

10 years agoRemove allecec.c from none/tests/tilegx
Zhi-Gang Liu [Wed, 15 Apr 2015 00:48:34 +0000 (00:48 +0000)] 
Remove allecec.c from none/tests/tilegx

Will add a symbolic link for that file next.

Zhi-Gang Liu

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15092

10 years agoFollowup to r14974. That revision oversimplified a condition, part
Florian Krohm [Tue, 14 Apr 2015 19:59:21 +0000 (19:59 +0000)] 
Followup to r14974. That revision oversimplified a condition, part
of which was presumed to be redundant but wasn't. This caused code
to hang due to an infinite signal-delivery loop. Observed and
tracked down by Austin English.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15091

10 years agoMake the version checking for Apple LLVM a bit less strict.
Julian Seward [Mon, 13 Apr 2015 11:41:30 +0000 (11:41 +0000)] 
Make the version checking for Apple LLVM a bit less strict.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15088

10 years agoUn-break the Darwin build after r15078. Patch from Mark Pauley
Julian Seward [Mon, 13 Apr 2015 11:39:50 +0000 (11:39 +0000)] 
Un-break the Darwin build after r15078.  Patch from Mark Pauley
(pauley@unsaturated.net).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15087

10 years agoUpdate list of ignored files.
Florian Krohm [Sat, 11 Apr 2015 18:50:47 +0000 (18:50 +0000)] 
Update list of ignored files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15085

10 years agoAdd 2 tests none/tests/libvex_test and libvexmultiarch_test
Philippe Waroquiers [Sat, 11 Apr 2015 14:32:25 +0000 (14:32 +0000)] 
Add 2 tests none/tests/libvex_test and libvexmultiarch_test

The objective of libvex_test is to verify that the VEX lib
can be used in 'single arch mode' (host == guest).

The objective of libvexmultiarch_test is to verify that the VEX lib
can be used in 'multi arch mode' (freely choose host and guest).
(but not many combinations are working: if wordsize or endianess
differs, then libVEX quickly asserts somewhere).

libvex_test.c is somewhat bizarre, as it uses the architecture
for which we have compiled as the guest, and use a 'foreign' arch
as the host.
That allows to avoid having to define in the test a bunch
of arch specific asm instructions : the test just decode a part
of its own code, and translate it to other archs.

By default, only the combination host == guest is run.
Arguments must be given to run other combinations.
See libvex_test.c for a description on how to specify which combinations
to run.

LibVEX host != guest does not (yet?) work when endianess or word size differs
between host and guest.

Also, currently, TILEGX host is not working properly (unless guest is also
TILEGX), as the evcheck instructions generated differs according to
the offset of the host_EvC_{FAILADDR,COUNTER}.

So, using TILEGX as host is only done when guest is also TILEGX.

Note that it is possible to specify a specific host arch to use.
For example, to force TILEGX to be used, do:
./none/tests/libvexmultiarch_test 1034
(where 1034 is the decimal value corresponding to the enum VexArchTILEGX.
This currently aborts with:
...
------------------------ Assembly ------------------------

EvCheck   (evCheck) ld r11, 8(r50); addli r11, r11, -1; st r11, 8(r50); bgez r11, nofail; jalr *(r50); nofail:

vex: priv/host_tilegx_defs.c:2353 (emit_TILEGXInstr): Assertion `evCheckSzB_TILEGX() == (UChar*)p - (UChar*)p0' failed.
//// failure exit called by libVEX
Whe TILEGX is fixed, we can remove the specific condition that avoids using
TILEGX as host.

Small changes have been done on VEX to allow more combinations
to work:
* host_mips_defs.c : when not compiled on mips,
  a lot of mips specific code is not compiled at all, because
  one of _MIPSEL or _MIPSEB must be defined to have either the
  little endian code or big endian code.
  emit32 function must however work to use mips as host.
  So, for this function, if _MIPSEL is not defined, then
  the big endian code is compiled in by default.
  (the mips endianess should probably be handled like the ppc
   endianess, for which the endianness to use is decided at runtime).

* host_arm64_isel.c : addition of a 'do not emit anything' for
   ABI HINT (avoid an assert e.g. for amd64 guest, arm64 host)

* libvex_guest_amd64.h : when I was still hoping mixing amd64 and x86,
  a first assert was firing up due to size/alignment
  of VexGuestAMD64State when compiled in 32 bits.
  => addition of pad elements to ensure the size and alignment
  of VexGuestAMD64State stays the same when compiled in 32 and
  64 bits (the 64 bits layout is unchanged).

The new tests have been run on x86/amd64/ppc64/s390x.
It is very well possible that the tests will fail on untested archs
(ppc32 or mips* or arm* or tilegx)
(e.g. because the hardcoded hwcaps in libvex_test.c are not ok).
It should be relatively trivial to fix these hwcaps problems.
Some other problems might be less easy to understand and fix
(e.g. similar to the TILEGX evcheck or mips emit32 problem).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15084

10 years agoRemove useless arguments in sparsewa, that were inheritated from WordFM
Philippe Waroquiers [Sat, 11 Apr 2015 11:42:22 +0000 (11:42 +0000)] 
Remove useless arguments in sparsewa, that were inheritated from WordFM
These arguments are not needed for sparsewa, as they can only
return the key given in input.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15083

10 years agoHave the event map GC use the same approach as the other GC
Philippe Waroquiers [Fri, 10 Apr 2015 19:34:14 +0000 (19:34 +0000)] 
Have the event map GC use the same approach as the other GC
done from libhb_maybe_GC, i.e. check the condition in
libhb_maybe_GC, and call the (non inlined) GC only if
a GC is needed.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15082

10 years agoUpdate expected result for leak-segv-jmp, following TileGX addition of
Philippe Waroquiers [Fri, 10 Apr 2015 19:08:17 +0000 (19:08 +0000)] 
Update expected result for leak-segv-jmp, following TileGX addition of
a few lines in leak-segv-jmp.c

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15081

10 years agoAdd a port to Linux/TileGx. Zhi-Gang Liu (zliu@tilera.com)
Julian Seward [Fri, 10 Apr 2015 12:30:09 +0000 (12:30 +0000)] 
Add a port to Linux/TileGx.  Zhi-Gang Liu (zliu@tilera.com)
Valgrind aspects, to match vex r3124.

See bug 339778 - Linux/TileGx platform support to Valgrind

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15080

10 years agoAdd missing stdout.exp file
Philippe Waroquiers [Thu, 9 Apr 2015 20:07:11 +0000 (20:07 +0000)] 
Add missing stdout.exp file

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15079

10 years agoADD AT_DCACHEBSIZE and AT_HWCAP2 support for POWER PC
Carl Love [Thu, 9 Apr 2015 16:23:20 +0000 (16:23 +0000)] 
ADD AT_DCACHEBSIZE and AT_HWCAP2 support for POWER PC

Valgrind currently does not support the following AUX vector entries:
AT_DCACHEBSIZE, and AT_HWCAP2. By default these entries are suppressed by
Valgrind. The attached patch adds the needed support so the user level programs
can correctly determine that hardware level they are running on. Specifically
that the ISA 2.07 for Power 8 is supported.

Bugzilla 345695

This fix adds the needed support.  It makes a minor change to allow the
VEX settings of the host platform to be passed down so they can be checked
against the HWCAP values.

The files touched are:
  coregrind/m_initimg/initimg-linux.c
  coregrind/pub_core_initimg.h
  coregrind/m_main.c

committed by Carl Love cel@us.ibm.com

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15078

10 years agoAssorted cleanups: remove magic constants and unneeded header file. Update
Florian Krohm [Wed, 8 Apr 2015 19:01:15 +0000 (19:01 +0000)] 
Assorted cleanups: remove magic constants and unneeded header file. Update
a few comments. Exit with code 127 in bash emulation mode when file was
not found.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15077

10 years agoConsolidate shell script testcases without interpreter.
Florian Krohm [Wed, 8 Apr 2015 12:20:04 +0000 (12:20 +0000)] 
Consolidate shell script testcases without interpreter.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15076

10 years agoCertain kernels on s390 provide extra read permissions on executable
Florian Krohm [Tue, 7 Apr 2015 20:43:55 +0000 (20:43 +0000)] 
Certain kernels on s390 provide extra read permissions on executable
segments. See discussion here: https://bugs.kde.org/show_bug.cgi?id=345824#c4
Making sure that rx and x compare equal.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15075

10 years agoTrack vex r3120, that changed the type of Iop_Sqrt64x2 and Iop_Sqrt32x4.
Julian Seward [Tue, 7 Apr 2015 09:08:42 +0000 (09:08 +0000)] 
Track vex r3120, that changed the type of Iop_Sqrt64x2 and Iop_Sqrt32x4.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15074

10 years agoFollowup to r14898 which changes the storage of segment names by
Florian Krohm [Mon, 6 Apr 2015 21:34:30 +0000 (21:34 +0000)] 
Followup to r14898 which changes the storage of segment names by
putting them into a string table.
This patch adds reference counting to segment names and frees them
when they are no longer used. The so freed memory can be reclaimed to
store future segment names.
New file coregrind/m_aspacemgr/aspacemgr-segnames.c which has all the
code dealing with segment names. Carved out of aspacemgr-linux.c
Detailled comments in the code.
Fixes BZ 344559.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15073

10 years agoarm64: remove redundant comment on test cases for FSQRT 2d_2d, 4s_4s, 2s_2s
Julian Seward [Mon, 6 Apr 2015 19:41:12 +0000 (19:41 +0000)] 
arm64: remove redundant comment on test cases for FSQRT 2d_2d, 4s_4s, 2s_2s
(should have been included in r15071).  No functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15072

10 years agoarm64: enable test cases for
Julian Seward [Mon, 6 Apr 2015 19:35:08 +0000 (19:35 +0000)] 
arm64: enable test cases for
FSQRT 2d_2d, 4s_4s, 2s_2s

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15071

10 years agoMemcheck: add support for recently added IROps:
Julian Seward [Mon, 6 Apr 2015 14:52:28 +0000 (14:52 +0000)] 
Memcheck: add support for recently added IROps:
Iop_F64toF16
Iop_F32toF16
Iop_F16toF64
Iop_F16toF32

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15070

10 years agoarm64: enable test cases for
Julian Seward [Mon, 6 Apr 2015 14:49:42 +0000 (14:49 +0000)] 
arm64: enable test cases for

SCVTF d_d_imm, s_s_imm
UCVTF d_d_imm, s_s_imm
FCVTZS d_d_imm, s_s_imm
FCVTZU d_d_imm, s_s_imm
FCVTXN s_d
SCVTF d_d, s_s
UCVTF d_d, s_s
SCVTF {2d_2d,4s_4s,2s_2s}_imm
UCVTF {2d_2d,4s_4s,2s_2s}_imm
FCVTZS {2d_2d,4s_4s,2s_2s}_imm
FCVTZU {2d_2d,4s_4s,2s_2s}_imm
FCVTXN 2s/4s_2d
FCVTZ{S,U} {w,x}_{s,x}_#fbits

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15069

10 years agoThe linux launcher showed some odd behaviour. When given a shell script
Florian Krohm [Mon, 6 Apr 2015 14:29:45 +0000 (14:29 +0000)] 
The linux launcher showed some odd behaviour. When given a shell script
named 'now' with this contents:

#!
/bin/date

the platform selection logic does this:

--11196:1:launcher no tool requested, defaulting to 'memcheck'
--11196:2:launcher   selecting platform for './now'
--11196:2:launcher   selecting platform for './now'
--11196:2:launcher   opened './now'
--11196:2:launcher   read 13 bytes from './now'
--11196:2:launcher   selecting platform for ''
--11196:2:launcher   selecting platform for '/home/florian/bin/'
--11196:2:launcher   opened '/home/florian/bin/'
--11196:2:launcher   selected platform 'unknown'
--11196:1:launcher no platform detected, defaulting platform to 'amd64-linux'

That is not quite right. Instead the platform should be determined by
examining the default shell.
Additionally, define VKI_BINPRM_BUF_SIZE because on linux only that many
characters are considered on a #! line. C.f. <linux>/fs/binfmt_script.c
m_ume/* needs to be adapted as well but that is a different patch.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15068

10 years agoIgnore generated files.
Florian Krohm [Mon, 6 Apr 2015 14:24:44 +0000 (14:24 +0000)] 
Ignore generated files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15067

10 years agoTweak STATIC_ASSERT such that there is no warning about an unused
Florian Krohm [Sat, 4 Apr 2015 18:43:00 +0000 (18:43 +0000)] 
Tweak STATIC_ASSERT such that there is no warning about an unused
variable when used at block scope.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15066

10 years agoNew directory: none/tests/scripts
Florian Krohm [Fri, 3 Apr 2015 15:47:19 +0000 (15:47 +0000)] 
New directory: none/tests/scripts
Move corresponding testcases there.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15065

10 years agoAdd testcase for BZ 231357.
Florian Krohm [Thu, 2 Apr 2015 22:02:24 +0000 (22:02 +0000)] 
Add testcase for BZ 231357.
To do that a small enhancement to vg_regtest was needed:
(1) New declaration to allow specifying an environemnt variable
    that is set prior to invoking valgrind.
    eg:    env:  VAR=VAL
    There can be more than one such declaration
(2) prog-asis:  program_name
    This is like prog: except the program name is not prefixed with
    the testdir.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15064

10 years agoWhen skipping white space after #! to find the interpreter
Florian Krohm [Thu, 2 Apr 2015 16:07:41 +0000 (16:07 +0000)] 
When skipping white space after #! to find the interpreter
only skip ' ' and tabs.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15063

10 years agoAdd a test that triggers sector recycling
Philippe Waroquiers [Wed, 1 Apr 2015 22:51:07 +0000 (22:51 +0000)] 
Add a test that triggers sector recycling
(cfr bug fix in revision 15058: without 15058, the below test
loops for ever).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15062

10 years agoCommit the VEX makefile changes needed to have the libvexmultiarch
Philippe Waroquiers [Wed, 1 Apr 2015 20:06:26 +0000 (20:06 +0000)] 
Commit the VEX makefile changes needed to have the libvexmultiarch
build and installed by default

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15061

10 years agoFix function sr_EQ which compares two SysRes values. On Linux it was
Florian Krohm [Wed, 1 Apr 2015 19:20:16 +0000 (19:20 +0000)] 
Fix function sr_EQ which compares two SysRes values. On Linux it was
forgotten to compare SysRes::_valEx.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15060

10 years agoFix infinite loop in sector recycling introduced by r15054
Philippe Waroquiers [Wed, 1 Apr 2015 18:15:42 +0000 (18:15 +0000)] 
Fix infinite loop in sector recycling introduced by r15054
(a regression test that will exercise sector recycling will follow)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15058

10 years agoAnnounce fix for 231257. A pretty old BZ. We must have fixed this
Florian Krohm [Wed, 1 Apr 2015 15:07:34 +0000 (15:07 +0000)] 
Announce fix for 231257. A pretty old BZ. We must have fixed this
in the meantime...

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15057

10 years agoFix Darwin: -v does not show kernel version
Rhys Kidd [Wed, 1 Apr 2015 12:15:49 +0000 (12:15 +0000)] 
Fix Darwin: -v does not show kernel version
bz#201435

Before:

== 590 tests, 237 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 31 post failures ==

After:

== 590 tests, 237 stderr failures, 22 stdout failures, 0 stderrB failures, 0 stdoutB failures, 31 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15056