|
From: Philippe W. <phi...@sk...> - 2012-08-04 00:52:19
|
On Fri, 2012-08-03 at 16:59 +0200, Josef Weidendorfer wrote:
> Isn't this reduction worth the patch already?
> We can make this the default setting for none / cachegrind / callgrind /
> lackey.
Find attached a new version of the patch which puts allregs-at-sb-exits
as the default for callgrind and cachegrind.
Did not touch lackey.
For none, not too sure what is preferred: the none tool might
preferrably run with the default value for vex_control ?
There is one regression in cachegrind with this patch:
on a debian6/amd64 system, the test cachegrind/tests/x86/fpu-28-108
crashes with:
==20077== Process terminating with default action of signal 11 (SIGSEGV)
==20077== Access not within mapped region at address 0xFEFFCFBC
==20077== at 0x40061EB: _dl_map_object_from_fd (dl-load.c:917)
==20077== by 0x4007BD0: _dl_map_object (dl-load.c:2329)
==20077== by 0x40016CE: map_doit (rtld.c:633)
==20077== by 0x400E5D5: _dl_catch_error (dl-error.c:178)
==20077== by 0x4001586: do_preload (rtld.c:817)
==20077== by 0x4003B0F: dl_main (rtld.c:1683)
==20077== by 0x4014F26: _dl_sysdep_start (dl-sysdep.c:243)
==20077== by 0x4001237: _dl_start (rtld.c:338)
==20077== by 0x4000856: ??? (in /lib32/ld-2.11.3.so)
The same test does not crash with cachegrind with
--vex-iropt-register-updates=unwindregs-at-mem-access.
The same test does not crash with callgrind.
The same test does not crash on f12/x86 (callgrind or cachegrind).
On ppc64, it looks ok.
So, it looks like there are some subtilities on some distro
when not updating at least the unwind regs at each mem access.
Before we understand the subtility, it does not look a good idea
to put this in 3.8.0.
(or at least then without setting the default to allregs-at-sb-exits).
Philippe
|