The patches to valgrind-3.3.0 which enable User Mode Linux (UML) to run
under memcheck for x86 on x86 have been separated into logical groups,
updated with test cases and documentation, reviewed once, and updated
to svn version 7358.  ("Extra" patches to some Makefile.in have been
left for the benefit of those who start with the released tarball of
valgrind-3.3.0.)

Please consider these patches for inclusion into valgrind:
 23KB  http://bitwagon.com/valgrind+uml/vg330-patches-jreiser0127.tgz

Here is a brief description of each of the 6 submitted patches:
-----
clone-1-childSP.patch
  This patch implements setting the child stack pointer on a fork-like clone().

clone-2-flags.patch
  This patch handles more combinations of flag arguments to clone(),
  specifically for VKI_CLONE_FS and VKI_CLONE_FILES.

clone-3-letgo.patch
  This patch implements a new flag which allows clone() to request
  that the new child run natively (not be virtualized.)

sigframe.patch
  This patch gives a memory map when an attempt to extend the stack fails,
  allows the stack to be in a mmapped file, and detects an obscure failure
  of sigprocmask() that hindered work on UserModeLinux.

stacks.patch
  This patch adds two new client commands:
    VALGRIND_STACK_DEREGADDR  de-register a stack by address (instead of by id)
    VALGRIND_STACK_SWITCH  so that user-level threading can co-operate

use-without-install.patch
  This patch gives more literal directions on how to run newly-built
  software without requiring "make install".
-----

The .tgz file also contains two additional patches which so far have
proved to be useful to this developer, but the reviewer suggested
that they be held for further work:
-----
bogey.patch
  This patch adds a VALGRIND_SET_BOGEY client command which allows tracing the
  changes to the accounting information for one specific dynamic address.
  VALGRIND_SET_BOGEY is a debugging tool that can be turned off and on
  by changing one macro definition.

complain-asap.patch
  This patch implements a new command-line option
     --complain-asap=yes  [default: no]
  which causes memcheck to complain immediately upon any fetch from memory
  that contains uninitialized bits.  This is useful when tracking down
  the cause of "Conditional jump or move depends on uninitialised data";
  however, be prepared for a blizzard of "false positive" warnings
  for holes in structures, various "don't care" conditions, etc.
  The corresponding error types are Load1, Load2, Load4, Load8, Load16
  and they may be suppressed.
-----

The patches compile on x86(i686) and x86_64, and should compile on
other suppored platforms.  Regression testing shows the same failures
as vanilla valgrind-3.3.0 when run on Fedora 7 for i686.
When run on svn 7358 there are additional failures for the new testcases
because tracebacks have regressed under svn 7358.  [An example is:
   ==7664== Syscall param write(buf) points to uninitialised byte(s)
   ==7664==    at 0xC88353: __write_nocancel (in /lib/libc-2.6.so)
   ==7664==  Address 0x300fa4 is on thread 1's stack
Notice that the traceback omits the caller of __write_nocancel,
which is present and available.  This difference cascades in ways
which matter to the test case.]

Performance testing shows no discernible difference for the 6 patches
being submitted against valgrind-3.3.0 or svn 7358.  The two patches
being held for further work have slight slowdowns: about 1% or less.

Please consider the 6 submitted patches for merging into valgrind.

-- 
John Reiser, [EMAIL PROTECTED]


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to