378 Commits

Author SHA1 Message Date
Josef Weidendorfer
3a5719678f Cachegrind/Callgrind: allow for cache sizes other than only powers of two
The number of sets, ie. number of cache lines divided by associativity,
and the cache line size still have to be powers of two.
This change is needed for default cache parameters used on some Intel
Core 2 and Atom processors.

Includes cachegrind manual update and explicit tests with 24KB D1/3MB L2
Reverts addition of 6MB warning to {cachegrind,callgrind}/tests/filter_stderr

Backporting to VALGRIND_3_4_BRANCH needs r8912

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9080
2009-01-26 22:56:14 +00:00
Nicholas Nethercote
ed322feb84 Rename all the arch/OS/platform-related variables in configure.in to make it
clearer what they mean:
- They all have VGCONF_ prefixes now, to indicate they come out of
  configure.in (and are clearly distinguished from the VGA_/VGO_/VGP_
  #defines passed in to C files).
- The ones that refer to the primary *or* secondary platform have _INCLUDES_
  in them.
- The ones that are in all-caps have a _CAPS suffix.

So, for example, what was VGP_X86_LINUX is now
VGCONF_PLATFORMS_INCLUDE_X86_LINUX, which is more verbose but also a lot
clearer.  The names of the #defines used in the C files (VGA_x86, VGO_linux,
etc) are unchanged.

cputest.c: changed to reflect the Valgrind installation's capabilities,
rather than the machine's capabilities.  In particular, if
--enable-only32bit is used on a 64-bit machine, then this program will claim
to only support 32-bits.  Also use the VGA/VGO/VGP macros which are clearer
than the __i386__ ones.  (This is partially merged from the DARWIN branch.)

configure.in: clean up the comments, distinguish different sections more
clearly, and generally make it more readable.

valgrind.pc.in: try to make this more accurate.  I doubt anyone's using it.
It doesn't appear to be set up to handle dual-architecture builds.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9031
2009-01-22 21:56:32 +00:00
Nicholas Nethercote
cace8b55cd - No longer using VG_ARCH_ALL to determine the DIST_SUBDIRS used for
arch/OS/platform-specific tool test dirs, instead writing it by hand.
  This is important because up until now if we had any arch-specific test
  dirs, we needed such dirs for all archs.  Now that we also have
  OS-specific and platform-specific test dirs, we don't want to have
  (mostly) empty dirs for every arch/OS/platform.

- Correspondingly, removed several empty directories under memcheck/tests/
  and cachegrind/tests that are no longer needed.

- Also removed VG_ARCH_ALL from configure.in.

- Also used an arch-specific guard rather than a platform-specific one where
  appropriate in cachegrind/tests/Makefile.am.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9017
2009-01-22 01:13:16 +00:00
Nicholas Nethercote
3592735add Replace some 4-space indents with 3-space indents. Merged from DARWIN.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9009
2009-01-21 22:19:26 +00:00
Nicholas Nethercote
dafa3d1d8c trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/vcpu_bz2.c
trunk/memcheck/tests/vcpu_bz2.vgtest
    vcpu_bz2.c was (I think) an "svn copy" of perf/bz2.c.  Because it's a
    copy, the two can get out of sync, which was a problem with Greg
    Parker's Darwin patch.  So we remove vcpu_bz2.c, and make
    vcpu_bz2.vgtest invoke perf/bz2 directly.

trunk/cachegrind/tests/wrap5.c
trunk/cachegrind/tests/Makefile.am
trunk/cachegrind/tests/wrap5.vgtest
    wrap5.c was likewise an "svn copy" of memcheck/tests/wrap5.c, so we do
    the equivalent thing with it.

trunk/Makefile.am
    Fix a typo.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8919
2009-01-08 06:07:05 +00:00
Nicholas Nethercote
2916a0d98f callgrind/tests/filter_stderr
cachegrind/tests/filter_stderr
    Filter out an additional warning, so the tests pass on machines with a
    6MB L2 cache.

cachegrind/cg-x86.c
cachegrind/cg-amd64.c
    These two files were almost identical.  cg-amd64.c now just #includes
    cg-x86.c.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8912
2009-01-07 02:34:06 +00:00
Tom Hughes
b78f9ac157 Add some more Intel cache configuration values needed for Atom
processors. These come from sandpile.org as the current version
of Intel's Application Note 485 doesn't have them yet.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8891
2009-01-02 11:07:18 +00:00
Tom Hughes
0572db7bf5 Remove spurious newlines from messages.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8890
2009-01-02 11:03:55 +00:00
Tom Hughes
2e9dd5c92f Add some more Intel L2 and L3 cache configuration values.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8889
2009-01-02 10:42:27 +00:00
Nicholas Nethercote
b766fb30aa A clarification.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8717
2008-10-30 02:41:13 +00:00
Julian Seward
335992d8fc Merge all remaining changes from branches/PTRCHECK. These are some
relatively minor extensions to m_debuginfo, a major overhaul of
m_debuginfo/readdwarf3.c to get its space usage under control, and
changes throughout the system to enable heap-use profiling.

The majority of the merged changes were committed into
branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and
8161.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621
2008-09-18 18:12:50 +00:00
Bart Van Assche
8e96150945 Merged FORMATCHECK branch (r8368) to trunk.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8369
2008-07-07 06:49:24 +00:00
Nicholas Nethercote
bb0819a3bb Fix a bug in Massif and Cachegrind, whereby if program's forked, the child
wrote into the parent's output file even if %p was specified.

Josef, I think Callgrind does not have this bug, but you might want to say
something about forking in the manual, as I have done for Massif and
Cachegrind.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8154
2008-05-29 23:09:52 +00:00
Julian Seward
5679a22410 Update copyright dates ("200X-2007" --> "200X-2008").
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398
2008-02-11 11:34:59 +00:00
Tom Hughes
3f4849d83f Add const qualifiers to appropriate arguments of OSet routines.
Patch from Bart Van Assche <bart.vanassche@gmail.com>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7308
2007-12-30 12:28:26 +00:00
Nicholas Nethercote
d6b40a390d Fixed up the log file mess throughout, including the docs. This killed
--log-file-qualifier and --log-file-exactly.

Updated NEWS some in preparation for 3.3.0.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7202
2007-11-23 01:41:32 +00:00
Julian Seward
9101880b1f Update documents in preparation for 3.3.0, and restructure them
somewhat to move less relevant material out of the way to some extent.
The main changes are:

* Update date and version info

* Mention other tools in the quick-start guide

* Document --child-silent-after-fork

* Rearrange order of sections in the Valgrind Core chapter, to move
  advanced stuff (client requests) to the end, and compact stuff
  relevant to the majority of users towards the front

* Move MPI debugging stuff from the Core manual (a nonsensical place
  for it) to the Memcheck chapter

* Update the manual's introductory chapter a bit

* Connect up new tech docs summary page, and disconnect old and
  very out of date valgrind/memcheck tech docs

* Add section tags to the Cachegrind manual, to stop xsltproc
  complaining about their absence



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7199
2007-11-22 01:21:56 +00:00
Julian Seward
5e290312a0 Track vex r1793: make all tools able to handle the new IR memory bus
event statement (Ist_MBE).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7119
2007-11-09 23:06:35 +00:00
Nicholas Nethercote
7cb817e078 Fix various format string errors, courtesy of Florian Krohm.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6902
2007-09-23 00:51:24 +00:00
Nicholas Nethercote
c7a4bb81a5 Add a section to the cachegrind manual suggesting how to act on the results.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6853
2007-09-17 22:28:21 +00:00
Nicholas Nethercote
5771d4fcc6 Add section on how to use Cachegrind's results.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6852
2007-09-17 22:19:01 +00:00
Nicholas Nethercote
8cdbb6e02f minor tweak
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6851
2007-09-17 22:01:14 +00:00
Nicholas Nethercote
0974a299f5 Split the OSet interface into two parts: "OSetGen_", which is the existing
interface and provides full power;  and "OSetWord_", which is an
easier-to-use interface for if you just want to store words.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6841
2007-09-17 05:30:48 +00:00
Nicholas Nethercote
f4e68cda86 Add directory-reading of debug info to cachegrind.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6839
2007-09-17 00:41:07 +00:00
Julian Seward
32a6fb4fec Get rid of VG_(getcwd) and replace it with a pair of functions,
VG_(record_startup_wd) which records the working directory at startup,
and VG_(get_startup_wd) which later tells you what value was recorded.
This works because all uses of VG_(getcwd) serve only to record the
directory at process start anyway.  The motivation is that AIX does
not support sys_getcwd directly, so it's easier for the launcher to
ship in the required value using an environment variable.  On Linux
sys_getcwd is used as before.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6764
2007-07-09 23:13:07 +00:00
Julian Seward
466b2ab809 Apparently 'index' shadows a global decl on some targets; therefore rename.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6759
2007-06-05 20:48:54 +00:00
Julian Seward
b91b51b42b Merge (from 3.2 branch) r6743 (Edit the manual to bring it up to date
and make some of the wording a bit more professional sounding.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6745
2007-05-23 21:58:33 +00:00
Julian Seward
e16417ddf7 Add branch-misprediction profiling to Cachegrind. When the (new) flag
--branch-sim=yes is specified, Cachegrind simulates a simple indirect
branch predictor and a conditional branch predictor.  The latter
considers both the branch instruction's address and the behaviour of
the last few conditional branches.  Return stack prediction is not
modelled.

The new counted events are: conditional branches (Bc), mispredicted
conditional branches (Bcm), indirect branches (Bi) and mispredicted
indirect branches (Bim).  Postprocessing tools (cg_annotate, cg_merge)
handle the new events as you would expect.  Note that branch
simulation is not enabled by default as it gives a 20%-25% slowdown,
so you need to ask for it explicitly using --branch-sim=yes.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6733
2007-05-08 09:20:25 +00:00
Nicholas Nethercote
802b418634 Fix some copyright notices:
- extend some to 2007
- use njn@valgrind.org instead of njn25@cam.ac.uk
- use "tool" instead of "skin"


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6703
2007-04-15 22:15:57 +00:00
Nicholas Nethercote
9dae2dbbdf Explicitly zero CCs. It's already being done by VG_(OSet_AllocNode), but
that's more by chance than design.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6691
2007-04-02 03:11:41 +00:00
Julian Seward
b7302d9258 Get rid of the type XArrayStrings in m_clientstate and use new generic
equivalents in module m_xarray instead.  A suprisingly pervasive
change.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6616
2007-02-25 15:08:24 +00:00
Julian Seward
db5018c18d Add cg_merge, a program for merging (adding) cachegrind output files,
and associated documentation.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6574
2007-02-08 11:31:03 +00:00
Julian Seward
5748ebe527 Add a new flag --cachegrind-log-file to cg_annotate, which tells it
precisely the name of the profile data file it should use (instead of
assuming cachegrind.out.<pid> where <pid> is specified by the --<pid>
flag).  The old mechanism is still supported though.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6573
2007-02-08 06:47:19 +00:00
Julian Seward
1e55d37448 * Add new flag --cachegrind-out-file to specify the output file
basename to be something other than "cachegrind.out".

* Observe the core-supplied --log-file-qualifier, if specified,
  in creation of output file names.

* To make the above work, move most of the stuff in cg_pre_clo_init
  into cg_post_clo_init, so that the core's determination of the
  log file qualifier, if any, is done by the time cachegrind comes
  to process its arguments.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6572
2007-02-07 19:55:30 +00:00
Nicholas Nethercote
93d2f6d24b Add missing item.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6542
2007-01-22 03:21:27 +00:00
Julian Seward
172505c978 Update copyright dates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488
2007-01-08 06:01:59 +00:00
Julian Seward
1083ded7e2 Non-functional commit: track IR renaming in vex r1689.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6416
2006-12-24 02:24:11 +00:00
Julian Seward
62d6f5c373 Fix 'make html-docs' and 'make print-docs'.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6389
2006-12-10 02:59:16 +00:00
Nicholas Nethercote
2c3a6359bb Use the newly-added dopyIRBBExceptStmts() in tools.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6372
2006-11-25 22:38:11 +00:00
Josef Weidendorfer
cbe9835fa9 Cachegrind/Callgrind: Fix cache parameter detection
On Intel processors, CPUIDs cache parameter code 0x49 is
reused both for L2 and L3 parameters.
Thanks to Ulrich Drepper.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6369
2006-11-23 13:04:30 +00:00
Nicholas Nethercote
38011f7248 Fix obscure bug in cache simulation, found by Ulrich Drepper.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6365
2006-11-22 11:38:07 +00:00
Nicholas Nethercote
49597e705c Update for recent removal of Cachegrind tech docs.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6336
2006-10-21 23:18:57 +00:00
Nicholas Nethercote
df0cb32d94 Link to dissertation with a proper link.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6334
2006-10-21 23:00:59 +00:00
Nicholas Nethercote
525ca8b1ee Removed the file format description from cg_annotate.in, because it's in the
Cachegrind docs.

Removed the Cachegrind tech docs, because they're so out of date to be
useless.  My PhD dissertation gives a much better description of how
Cachegrind works.  (I mentioned this in the Cachegrind user manual.)  The
only still-useful part of Cachegrind's tech docs, the output file format
description, I moved into the Cachegrind user manual.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6332
2006-10-21 22:22:59 +00:00
Nicholas Nethercote
f280fb47d2 - Update comments about Cachegrind file format.
- Be slightly more strict in accepting Cachegrind input files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6330
2006-10-21 18:22:35 +00:00
Julian Seward
12ef34f623 Track SysRes change.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6294
2006-10-17 02:15:17 +00:00
Julian Seward
713b2d46c0 Merge r6086:
Makefile.am changes for AIX5.  Almost all boilerplate stuff fitting in
with the existing factorisation scheme.  The only change of interest
is that configure.in now generates automake symbols of name
VGP_platform and VGO_os, whereas previously it just made VG_platform
which was a bit inconsistent with the VGP/VGO/VGA scheme used in C
code.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6242
2006-10-17 00:56:43 +00:00
Julian Seward
f4560d1332 Move functions which deal with bad command line options from m_main
into m_options.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6233
2006-10-15 01:25:13 +00:00
Julian Seward
ae8215b3ac Create a new module, m_vki, and move all knowledge about the kernel
interface, except for the syscall numbers, into that.  Mostly this
means moving include/vki-*.h to include/vki/vki-*.h.

include/pub_tool_basics.h previously dragged in the entire kernel
interface.  I've done away with that, so that modules which need to
see the kernel interface now have to include pub_{core,tool}_vki.h
explicitly.  This is why there are many modified .c files -- they have
all acquired an extra #include line.

This certainly breaks all platforms except x86.  Will fix shortly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6225
2006-10-14 19:26:10 +00:00
Josef Weidendorfer
fd997073d2 Cachegrind: Update cache parameter detection
This updates the automatic detection of cache parameters
for x86 and amd64 according to revision 21 of
Intels x86 Architecture Software Developer Manual, Volume 2a.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6211
2006-10-12 14:23:38 +00:00