Philippe Waroquiers
3a046ec1c1
Avoid doing mempool specific leak search activities if there are no mempools
...
For most memcheck users, no mempools are used, but the leak search logic
was doing in any case special handling, leading to useless work such as
sorting again an already sorted array and making a copy of an array without
modifying it.
This slightly optimises the perf reg tests of memcheck.
perl perf/vg_perf --tools=memcheck --vg=. --vg=../trunk_untouched perf
-- Running tests in perf ----------------------------------------------
-- bigcode1 --
bigcode1 . :0.08s me: 3.0s (38.1x, -----)
bigcode1 trunk_untouched:0.08s me: 3.1s (38.6x, -1.3%)
-- bigcode2 --
bigcode2 . :0.07s me: 7.4s (105.9x, -----)
bigcode2 trunk_untouched:0.07s me: 7.5s (107.4x, -1.5%)
-- bz2 --
bz2 . :0.40s me: 5.2s (12.9x, -----)
bz2 trunk_untouched:0.40s me: 5.4s (13.6x, -5.0%)
-- fbench --
fbench . :0.15s me: 2.8s (18.8x, -----)
fbench trunk_untouched:0.15s me: 2.9s (19.0x, -1.1%)
-- ffbench --
ffbench . :0.16s me: 2.7s (16.8x, -----)
ffbench trunk_untouched:0.16s me: 2.7s (17.1x, -1.9%)
-- heap --
heap . :0.06s me: 4.0s (66.5x, -----)
heap trunk_untouched:0.06s me: 4.1s (68.7x, -3.3%)
-- heap_pdb4 --
heap_pdb4 . :0.07s me: 6.2s (89.1x, -----)
heap_pdb4 trunk_untouched:0.07s me: 6.6s (94.9x, -6.4%)
-- many-loss-records --
many-loss-records . :0.01s me: 1.2s (122.0x, -----)
many-loss-records trunk_untouched:0.01s me: 1.2s (125.0x, -2.5%)
-- many-xpts --
many-xpts . :0.03s me: 1.2s (41.7x, -----)
many-xpts trunk_untouched:0.03s me: 1.3s (43.7x, -4.8%)
-- memrw --
memrw . :0.06s me: 1.2s (19.8x, -----)
memrw trunk_untouched:0.06s me: 1.2s (20.2x, -1.7%)
-- sarp --
sarp . :0.02s me: 1.8s (91.5x, -----)
sarp trunk_untouched:0.02s me: 2.1s (103.5x,-13.1%)
-- tinycc --
tinycc . :0.11s me: 7.1s (64.4x, -----)
tinycc trunk_untouched:0.11s me: 7.1s (64.3x, 0.1%)
-- Finished tests in perf ----------------------------------------------
== 12 programs, 24 timings =================
2023-01-08 11:50:07 +01:00
Paul Floyd
2c93baf53a
Bug 433873 - openat2 syscall unimplemented on Linux
...
This syscall is not exposed via glibc, so there is only an
addition to the scalar test.
2023-01-06 21:27:01 +01:00
Julian Seward
394ca9b400
Remove a debugging line if (0) .. that mistakenly got landed in fa3a9cc43c22593c70796a99aff33bb9436ad448.
2023-01-04 17:43:21 +01:00
Julian Seward
1b8d0cbc81
Fix 64-bit uncleanness in VG_(get_bbs_translated)/VG_(get_bbs_discarded_or_dumped) ..
...
.. and some debug printing associated with them. I don't think this affects
anything apart from debug printing. Noticed when running a x86 (32-bit)
Firefox build.
2023-01-04 17:12:21 +01:00
Julian Seward
fe4e6578d4
amd64 and x86 front ends: add a few more spec rules.
...
amd64:
S and NS after LOGICQ (per comments from Eyal Soha on the dev list)
S after SHLQ
NZ after SHLL
x86:
NZ after SHRL
Z after SHLL
I would have liked to have added the inverse conditions in all cases (eg, both
S and NS, or both Z and NZ), but finding use cases for some of these is almost
impossible, hence they are sometimes omitted. All of the added cases have
been tested.
2023-01-04 17:06:01 +01:00
Julian Seward
d99a6f70e2
Memcheck: handle origin data for 8-/16-bit shadow stores a bit more accurately.
...
With origin tracking enabled, 8- and 16-bit stores could sometimes lose origin
info unnecessarily. This patch removes this avoidable lossage. (Since MC
only stores 1 origin value for each 32-bit word of address space, there is
still unavoidable lossage of origins in some cases; this patch does not help
in those cases since it's a fundamental design limitation.)
2023-01-04 16:32:03 +01:00
Julian Seward
fa3a9cc43c
DHAT: increase the size of the cache for find_Block_containing from 2 to 3.
...
In the hope of making DHAT a bit faster.
2023-01-04 15:38:12 +01:00
Paul Floyd
74e2000746
Bug 327548 - false positive while destroying mutex
2023-01-03 21:28:42 +01:00
Philippe Waroquiers
56971834a7
Small improvement to documentation.
2023-01-02 23:05:35 +01:00
Paul Floyd
8224cf37a9
Update none/tests/cmdline1 and 2 for non-linux
2022-12-31 10:13:19 +01:00
Philippe Waroquiers
f6fcc74a68
Allows to only output "new" loss records when doing a leak search.
...
In the memcheck monitor 'leak_search', add a "new" keyword corresponding
to the delta leak search mode LCD_New.
Add a new client request VALGRIND_DO_NEW_LEAK_CHECK.
When doing a delta leak search, new loss records are marked with "new"
(whatever the delta leak search mode).
Note that trailing white spaces were removed in mc_main.c.
A much small diff can be looked at by using the -w diff option.
2022-12-30 20:56:47 +01:00
Philippe Waroquiers
c8bb6a62ca
Add clo option -scheduling-quantum=<number> to control scheduler time slice.
...
This option can be useful when tracking race conditions which are sensitive
to thread scheduling.
2022-12-30 16:28:23 +01:00
Paul Floyd
ccbb75cf1d
FreeeBSD: Add Helgrind suppression for void __thread_specific_ptr<_Tp>::set_pointer(pointer __p)
2022-12-30 13:46:09 +01:00
Paul Floyd
5cfb0173ed
Add DRD shared_timed_mutex to Helgrind
...
This uses pthread_rwlock_timedrdlock / pthread_rwlock_timedwrlock
(see commit 6ffb70e650ee7cf4ada829557dd30ababb09e078)
2022-12-29 22:21:03 +01:00
Paul Floyd
d7c93d1f71
Add a variation of the Helgrind tls_threads test
...
This version uses GLIBC_TUNABLES in the environment so it checks
that glibc.pthread.stack_cache_size can be detected and modified.
2022-12-29 22:08:14 +01:00
Paul Floyd
6ffb70e650
Bug 400793 - pthread_rwlock_timedwrlock false positive
...
Add Helgrind intercepts for pthread_rwlock_timedwrlock
(and pthread_rwlock_timedrdlock)
Reuse the DRD trylock test
2022-12-29 22:02:47 +01:00
Paul Floyd
ab1eb2cb74
Update modified hg04 reference for DRD.
2022-12-29 20:59:25 +01:00
Philippe Waroquiers
a5b88a02d5
Add a test for helgrind --history-backtrace-size
...
Extend hg04_race to have more entries in the conflicting stacktrace,
and make another test hg04_race_h9 to test with one more entry than
the default of 8.
2022-12-29 16:19:24 +01:00
Philippe Waroquiers
3c916e4cbf
Fix typo in NEWS.
2022-12-29 13:18:27 +01:00
Philippe Waroquiers
29252c77bb
Add clo option the nr of entries in helgrind --history-level=full stack traces
...
The number of such entries was hardcoded to 8.
A new command line option -history-backtrace-size=number allows
to set the (max) number of entries to record.
Note that according
perl perf/vg_perf --tools=helgrind --vg=. --vg=../trunk_untouched perf
this change (unexpectedly) improves some tests:
- Running tests in perf ----------------------------------------------
-- bigcode1 --
bigcode1 . :0.08s he: 2.0s (25.5x, -----)
bigcode1 trunk_untouched:0.08s he: 2.1s (25.9x, -1.5%)
-- bigcode2 --
bigcode2 . :0.08s he: 4.2s (52.2x, -----)
bigcode2 trunk_untouched:0.08s he: 4.2s (52.0x, 0.5%)
-- bz2 --
bz2 . :0.40s he: 6.5s (16.3x, -----)
bz2 trunk_untouched:0.40s he: 7.4s (18.5x,-14.0%)
-- fbench --
fbench . :0.15s he: 2.0s (13.2x, -----)
fbench trunk_untouched:0.15s he: 2.3s (15.5x,-17.7%)
-- ffbench --
ffbench . :0.16s he: 3.7s (23.2x, -----)
ffbench trunk_untouched:0.16s he: 3.7s (23.4x, -0.8%)
-- heap --
heap . :0.05s he: 5.1s (102.8x, -----)
heap trunk_untouched:0.05s he: 5.2s (104.6x, -1.8%)
-- heap_pdb4 --
heap_pdb4 . :0.07s he: 5.8s (82.9x, -----)
heap_pdb4 trunk_untouched:0.07s he: 5.8s (83.3x, -0.5%)
-- many-loss-records --
many-loss-records . :0.01s he: 1.0s (96.0x, -----)
many-loss-records trunk_untouched:0.01s he: 0.9s (95.0x, 1.0%)
-- many-xpts --
many-xpts . :0.04s he: 1.6s (38.8x, -----)
many-xpts trunk_untouched:0.04s he: 1.5s (38.5x, 0.6%)
-- memrw --
memrw . :0.06s he: 2.5s (41.2x, -----)
memrw trunk_untouched:0.06s he: 2.5s (41.2x, 0.0%)
-- sarp --
sarp . :0.02s he: 4.0s (198.0x, -----)
sarp trunk_untouched:0.02s he: 3.9s (196.5x, 0.8%)
-- tinycc --
tinycc . :0.10s he: 7.1s (70.7x, -----)
tinycc trunk_untouched:0.10s he: 7.6s (75.8x, -7.2%)
-- Finished tests in perf ----------------------------------------------
== 12 programs, 24 timings =================
2022-12-29 11:14:05 +01:00
Paul Floyd
9acdd79b69
Disable some memcheck tests on FreeBSD
...
Fail due to differences in DWARF varinfo generated by clang
compared to GCC. No fix in perspective.
2022-12-26 11:06:32 +01:00
Paul Floyd
4dcfc05c20
Fixes related to Bug 392331
...
1. Added C++17 check to configure.ac
2. Needed Linux version of suppression
3. Added a filter for pthread_cond_signal
2022-12-26 09:04:17 +01:00
Paul Floyd
67bb7eeec9
Fix suppression file inconsistency from previous commit for Bug 392331
2022-12-25 22:31:55 +01:00
Paul Floyd
7d0389956e
Bug 392331 - Spurious lock not held error from inside pthread_cond_timedwait
...
Added a "Dubious" error category to cover this kind of error.
2022-12-25 21:43:36 +01:00
Paul Floyd
227fa1d53b
Cleanup for clangd, mostly FreeBSD
...
Consistently use braces. Make some bitwise expressions use unsigned.
Use some named variables for magic numbers.
2022-12-25 18:36:20 +01:00
Paul Floyd
d8cc70f6d5
FreeBSD only: fix 445743
...
Restart 3 of the umtx_op mutex operations if they are interrupted.
2022-12-25 10:18:51 +01:00
Paul Floyd
29cfa77b23
FreeBSD: enable PERF_FAST_LOADV for x86 and cleanup for clangd
...
clangd doesn't like asm, prefers __asm__
some hicpp-braces-around-statements fixes
2022-12-25 09:25:01 +01:00
Bart Van Assche
1845f51728
Revert "syscall"
...
Revert an incomplete commit that got published accidentally.
2022-12-24 16:49:56 -08:00
Bart Van Assche
72b556ab15
drd: Improve barrier support
...
Make test drd/tests/pth_barrier_thr_cr pass on Fedora 38.
2022-12-24 15:32:15 -08:00
Bart Van Assche
2bd7f70421
syscall
2022-12-24 08:18:01 -08:00
Paul Floyd
2de91d914c
Bug 444488 - Use glibc.pthread.stack_cache_size tunable
...
Try to use GLIBC_TUNABLES to disable the pthread stack
cache.
2022-12-23 16:51:15 +01:00
Philippe Waroquiers
7e03a15d8d
Pass a dummy process_option_state for dynamic options
...
The process_option_state is functionally needed during initial parsing
of CLO options. When later changing them, only changing the CLO
itself is good enough.
But the processing of option needs to have a state.
2022-12-23 16:15:23 +01:00
Paul Floyd
316282cd3b
Bug 463027 - broken check for MPX instruction support in assembler
2022-12-23 14:49:39 +01:00
Paul Floyd
8b0105ba63
Improve FreeBSD preadv/pwritev error messages
...
Also correct a copy paste error in generic readv.
2022-12-22 23:38:54 +01:00
Paul Floyd
5b52408406
Bug 462830 - WARNING: unhandled amd64-freebsd syscall: 474
...
Add syscall wrappers for sctp_generic_recvmsg and sctp_generic_sendmsg
on FreeBSD.
2022-12-22 23:08:45 +01:00
Paul Floyd
35bb01dd45
FreeBSD: make amd64 aspace max mem 128Gbytes
2022-12-22 09:30:45 +01:00
Paul Floyd
1c61a442b1
FreeBSD: add a check that the mqueuefs kernel module is loaded for the none/tests/mq regtest
2022-12-22 09:09:52 +01:00
Mark Wielaard
0811a612dd
Implicit int in none/tests/faultstatus.c
...
There is a definition in faultstatus.c that is not accepted by
C99 compilers (implicit ints were removed in that language revision).
https://bugs.kde.org/show_bug.cgi?id=462007
2022-11-18 20:12:06 +01:00
Paul Floyd
5ab1e53f07
Manual: add FreeBSD to section about Linux stack cache
...
Use macOS rather than Mac OS X
2022-11-13 07:41:25 +01:00
Paul Floyd
ac6d9faf4b
Bug 351857 - confusing error message about valid command line option
...
Added code to handle missing "=something".
2022-11-12 21:02:07 +01:00
Alexandra Petlanova Hajkova
ea91997394
vgdb: allow address reuse to avoid "address already in use" errors
...
https://bugs.kde.org/show_bug.cgi?id=459476
2022-11-12 13:03:46 +01:00
Paul Floyd
f2550057e1
Bug 170510 - Don't warn about ioctl of size 0 without direction hint
...
Apply this to generic and update the message on all platforms.
2022-11-10 22:31:07 +01:00
Carl Love
873f376695
Bug 444110 priv/guest_ppc_toIR.c: warning: duplicated 'if' condition
...
The compiler reported a duplicated condition in VEX/priv/guest_ppc_toIR.c
The handling of the plbz and xxpermx instructions have the same if/elseif
conditions. The else if condition for the plbz instruction was wrong. The
elseif statement should be checking for pType2 not pType1. The plbz
instruction was inadvertently being handled by the else statement for
the lbz instruction.
This patch fixes the checking for the plbz and lbz instructions.
2022-10-31 18:28:36 +00:00
Paul Floyd
6c9aae8f44
FreeBSD: more filtering for gdbserver_tests/nlvgdbsigqueue
...
Needed for FreeBSD 14 without debug info files.
2022-10-28 22:19:47 +02:00
Paul Floyd
aed1e501c8
FreeBSD: fix a typo in my previous commit for VKI_AT_USRSTACKLIM define.
2022-10-28 17:04:26 +02:00
Paul Floyd
4ff2185f45
FreeBSD: remove dependency on elf header and make VKI_ copies of AT defines
...
Also prepare NEWS and configure.ac for 3.21.0
2022-10-28 16:52:50 +02:00
Mark Wielaard
5147d671e4
-> 3.20.0 final
2022-10-24 13:59:17 +02:00
Paul Floyd
328ece8463
Fix DRD and Helgrind on Solaris.
...
It seems as though Solaris RW sections can also have the
execute flag set. Checking for RW and !X was causing the
debuginfo reading to fail. That meant that the helgrind and
drd preload shared libraries weren't processed, and also
the rtld bind function pointers not setup. Without the rtld bind
function an assert fires and Helgrind and DRD abort.
2022-10-23 15:29:40 +02:00
Mark Wielaard
206dbcfed9
{callgrind,callgrind}/tests/ann{1,2}.vgtest touch cgout-test
...
Both a.c and cgout-test are checked into the repository and
used in testcases. Make sure cgout-test is newer than a.c
before running the post script to prevent warnings liks:
@@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@ WARNING @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ Source file 'a.c' is more recent than input file
../../cachegrind/tests/cgout-test'.
@ Annotations may not be correct.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2022-10-22 17:31:58 +02:00
Paul Floyd
0ea3746e97
Fix build on macOS
...
A while back when I added support for split RW PT_LOAD sections
one instance in the macho code didn't get updated. Also
update the comment that refers to the old struct member that
got renamed.
2022-10-20 23:15:00 +02:00