You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(12) |
2
(11) |
3
(8) |
|
4
(9) |
5
(10) |
6
(18) |
7
(8) |
8
(12) |
9
(23) |
10
(14) |
|
11
(15) |
12
(31) |
13
(45) |
14
(28) |
15
(20) |
16
(16) |
17
(9) |
|
18
(18) |
19
(26) |
20
(49) |
21
(14) |
22
(18) |
23
(24) |
24
(28) |
|
25
(39) |
26
(17) |
27
(27) |
28
(27) |
29
(14) |
30
(44) |
|
|
From: <sv...@va...> - 2005-09-30 16:09:17
|
Author: tom
Date: 2005-09-30 17:09:12 +0100 (Fri, 30 Sep 2005)
New Revision: 4840
Log:
Document mmap insanity in a comment.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 13:43:52 UTC (=
rev 4839)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 16:09:12 UTC (=
rev 4840)
@@ -1713,6 +1713,31 @@
Generic handler for mmap
------------------------------------------------------------------ */
=20
+/*
+ * Although mmap is specified by POSIX and the argument are generally
+ * consistent across platforms the precise details of the low level
+ * argument passing conventions differ. For example:
+ *
+ * - On x86-linux there is mmap (aka old_mmap) which takes the
+ * arguments in a memory block and the offset in bytes; and
+ * mmap2 (aka sys_mmap2) which takes the arguments in the normal
+ * way and the offset in pages.
+ *
+ * - On ppc32-linux there is mmap (aka sys_mmap) which takes the
+ * arguments in the normal way and the offset in bytes; and
+ * mmap2 (aka sys_mmap2) which takes the arguments in the normal
+ * way and the offset in pages.
+ *
+ * - On amd64-linux everything is simple and there is just the one
+ * call, mmap (aka sys_mmap) which takes the arguments in the
+ * normal way and the offset in bytes.
+ *
+ * To cope with all this we provide a generic handler function here
+ * and then each platform implements one or more system call handlers
+ * which call this generic routine after extracting and normalising
+ * the arguments.
+ */
+
SysRes
ML_(generic_PRE_sys_mmap) ( ThreadId tid,
UWord arg1, UWord arg2, UWord arg3,
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-30 15:20:24
|
On Fri, 30 Sep 2005, Julian Seward wrote: > Interestingly this is the first time the new regtest-diff-er really drew > itself to my attention. So to speak. I think the diff should go first for this reason. N |
|
From: <sv...@va...> - 2005-09-30 15:19:15
|
Author: njn
Date: 2005-09-30 16:19:10 +0100 (Fri, 30 Sep 2005)
New Revision: 207
Log:
I am a pedant.
Modified:
trunk/gallery/users.html
Modified: trunk/gallery/users.html
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/gallery/users.html 2005-09-30 15:04:49 UTC (rev 206)
+++ trunk/gallery/users.html 2005-09-30 15:19:10 UTC (rev 207)
@@ -165,7 +165,7 @@
and <a href=3D"http://cmsinfo.cern.ch/Welcome.html">CMS</a>=20
experiments at <a href=3D"http://www.cern.ch/">CERN's</a>=20
<a href=3D"http://lhc-new-homepage.web.cern.ch/lhc-new-homepage/">L=
arge=20
- Hadron Collider</a> Data acquisition, reconstruction,
+ Hadron Collider:</a> Data acquisition, reconstruction,
analysis, visualisation and simulation software.</li>
=20
<li><a href=3D"http://root.cern.ch/home/">ROOT:</a>
@@ -228,11 +228,11 @@
=20
<ul>
=20
- <li><a href=3D"http://renderman.pixar.com/">RenderMan</a>
+ <li><a href=3D"http://renderman.pixar.com/">RenderMan:</a>
Rendering package used all of Pixar's movies, The Lord of the Rings,
The Matrix Trilogy, the Star Wars prequels, etc.</li>
=20
- <li><a href=3D"http://www.gimp.org/">The GIMP</a>
+ <li><a href=3D"http://www.gimp.org/">The GIMP:</a>
The GNU Image Manipulation Program.</li>
=20
<li><a href=3D"http://www.opensg.org/">OpenSG:</a>
@@ -267,7 +267,7 @@
<li><a href=3D"http://www.3delight.com/">3Delight:</a> A fast
RenderMan-compliant renderer.</li>
=20
- <li><a href=3D"http://www.leptonica.com/">Leptonica: </a> An open
+ <li><a href=3D"http://www.leptonica.com/">Leptonica:</a> An open
source C library for efficient image processing and image
analysis operations.</li>
=20
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-30 15:15:48
|
On Fri, 30 Sep 2005, Julian Seward wrote: > Ehm .. could we not just use ULong? We know that's reliably 64 bits; > LOffT gives another type for which to remember the meaning and it > took me long enough to get my head around SizeT, OffT, Addr, Word > all being word-sized things. > > Alternatively .. if you really want to have a new type .. could we > call it Off64T, to be more in accordance with eg Addr/Addr32/Addr64 > conventions? I find the 'long' qualifier ambiguous (one long means "word > sized", which isn't what you mean here) and try to avoid it as much as > possible. Off64T is good, the kernel has off64_t also. N |
|
From: Julian S. <js...@ac...> - 2005-09-30 15:12:16
|
On Friday 30 September 2005 15:46, Tom Hughes wrote: > In message <Pin...@ch...> > > Nicholas Nethercote <nj...@cs...> wrote: > > On Fri, 30 Sep 2005, Tom Hughes wrote: > >> ! == 188 tests, 9 stderr failures, 2 stdout failures ================= > >> memcheck/tests/leak-tree (stderr) > >> + memcheck/tests/leakotron (stdout) > >> memcheck/tests/mempool (stderr) > >> *************** > >> *** 16,17 **** > >> --- 17,20 ---- > >> none/tests/faultstatus (stderr) > >> + none/tests/x86/badseg (stdout) > >> + none/tests/x86/badseg (stderr) > >> none/tests/x86/int (stderr) > > > > Any ideas what caused these? > > No - they don't seem to be failing in current builds on that machine. Ah well, let's see what happens tonight. Interestingly this is the first time the new regtest-diff-er really drew itself to my attention. So to speak. J |
|
From: Julian S. <js...@ac...> - 2005-09-30 15:09:56
|
On Friday 30 September 2005 15:28, Nicholas Nethercote wrote: > On Fri, 30 Sep 2005, Tom Hughes wrote: > > Absolutely, and that is the current situation, modulo changing the > > type of the offset argument and the question of whether or not we want > > to rely on mmap2. Let's just do mmap2 .. if we get borkage it's easy to Plan-B it. > I think OffT should stay as word-sized, since it's meant to be a drop-in > replacement for off_t which is word-sized. Absolutely totally definitely. It'll all go to hell if OffT changes its meaning. > We could introduce LOffT (in pub_core_basics.h) which would be 64 bits. Ehm .. could we not just use ULong? We know that's reliably 64 bits; LOffT gives another type for which to remember the meaning and it took me long enough to get my head around SizeT, OffT, Addr, Word all being word-sized things. Alternatively .. if you really want to have a new type .. could we call it Off64T, to be more in accordance with eg Addr/Addr32/Addr64 conventions? I find the 'long' qualifier ambiguous (one long means "word sized", which isn't what you mean here) and try to avoid it as much as possible. J |
|
From: <sv...@va...> - 2005-09-30 15:04:58
|
Author: njn Date: 2005-09-30 16:04:49 +0100 (Fri, 30 Sep 2005) New Revision: 206 Log: Added RenderMan, w00t! Modified: trunk/gallery/users.html Modified: trunk/gallery/users.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/gallery/users.html 2005-09-30 02:48:52 UTC (rev 205) +++ trunk/gallery/users.html 2005-09-30 15:04:49 UTC (rev 206) @@ -4,7 +4,7 @@ OpenOffice, StarOffice, AbiWord, Mozilla, Opera, KDE, GNOME, Evolution, MySQL, PostgreSQL, Perl, PHP, Mono, Samba, Nasa Mars Lander software, SAS, The GIMP, Ogg Vorbis, Unreal Tournament, -Medal of Honour ...</p> +Medal of Honour, RenderMan ...</p> =20 <p>Contact <?php echo vgemail( 'valgrind' ); ?> if you are happy to have your project added to this list. Please provide a URL and @@ -228,6 +228,10 @@ =20 <ul> =20 + <li><a href=3D"http://renderman.pixar.com/">RenderMan</a> + Rendering package used all of Pixar's movies, The Lord of the Rings, + The Matrix Trilogy, the Star Wars prequels, etc.</li> + <li><a href=3D"http://www.gimp.org/">The GIMP</a> The GNU Image Manipulation Program.</li> =20 |
|
From: Tom H. <to...@co...> - 2005-09-30 14:46:52
|
In message <Pin...@ch...>
Nicholas Nethercote <nj...@cs...> wrote:
> On Fri, 30 Sep 2005, Tom Hughes wrote:
>
>> ! == 188 tests, 9 stderr failures, 2 stdout failures =================
>> memcheck/tests/leak-tree (stderr)
>> + memcheck/tests/leakotron (stdout)
>> memcheck/tests/mempool (stderr)
>> ***************
>> *** 16,17 ****
>> --- 17,20 ----
>> none/tests/faultstatus (stderr)
>> + none/tests/x86/badseg (stdout)
>> + none/tests/x86/badseg (stderr)
>> none/tests/x86/int (stderr)
>
> Any ideas what caused these?
No - they don't seem to be failing in current builds on that machine.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-30 14:34:38
|
On Fri, 30 Sep 2005, Tom Hughes wrote: > ! == 188 tests, 9 stderr failures, 2 stdout failures ================= > memcheck/tests/leak-tree (stderr) > + memcheck/tests/leakotron (stdout) > memcheck/tests/mempool (stderr) > *************** > *** 16,17 **** > --- 17,20 ---- > none/tests/faultstatus (stderr) > + none/tests/x86/badseg (stdout) > + none/tests/x86/badseg (stderr) > none/tests/x86/int (stderr) Any ideas what caused these? Nick |
|
From: Nicholas N. <nj...@cs...> - 2005-09-30 14:28:38
|
On Fri, 30 Sep 2005, Tom Hughes wrote: > Absolutely, and that is the current situation, modulo changing the > type of the offset argument and the question of whether or not we want > to rely on mmap2. I think OffT should stay as word-sized, since it's meant to be a drop-in replacement for off_t which is word-sized. We could introduce LOffT (in pub_core_basics.h) which would be 64 bits. Nick |
Author: tom Date: 2005-09-30 14:43:52 +0100 (Fri, 30 Sep 2005) New Revision: 4839 Log: Update ignore lists. Modified: trunk/ trunk/cachegrind/ trunk/coregrind/ trunk/lackey/ trunk/massif/ trunk/massif/tests/ trunk/memcheck/ trunk/memcheck/tests/ trunk/none/ trunk/none/tests/ trunk/none/tests/amd64/ trunk/none/tests/ppc32/ Property changes on: trunk ___________________________________________________________________ Name: svn:ignore - acinclude.m4 aclocal.m4 autom4te-*.cache autom4te.cache bin cachegrind cachegrind.out.* compile config.guess config.h* config.log config.status config.sub configure default.supp depcomp include .in_place install-sh lib Makefile Makefile.in missing mkinstalldirs share stamp-h* svn-commit.tmp svn-commit.2.tmp valgrind valgrind.pc valgrind.spec vg_annotate vg_cachegen + acinclude.m4 aclocal.m4 autom4te-*.cache autom4te.cache bin cachegrind cachegrind.out.* compile config.guess config.h* config.log config.status config.sub configure default.supp depcomp include .in_place install-sh lib Makefile Makefile.in missing mkinstalldirs share stamp-h* svn-commit.tmp svn-commit.2.tmp valgrind valgrind.pc valgrind.spec valt_load_address.lds vg_annotate vg_cachegen Property changes on: trunk/cachegrind ___________________________________________________________________ Name: svn:ignore - cg_annotate .deps Makefile Makefile.in *.so + cachegrind cg_annotate .deps Makefile Makefile.in *.so Property changes on: trunk/coregrind ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in *.so stage2 stage2.lds valgrind vg_intercept.c vg_replace_malloc.c vg_toolint.c vg_toolint.h + .deps Makefile Makefile.in *.a *.so stage2 stage2.lds valgrind vg_intercept.c vg_replace_malloc.c vg_toolint.c vg_toolint.h Property changes on: trunk/lackey ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in *.so + .deps lackey Makefile Makefile.in *.so Property changes on: trunk/massif ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in *.so + .deps Makefile Makefile.in massif *.so Property changes on: trunk/massif/tests ___________________________________________________________________ Name: svn:ignore - Makefile.in Makefile massif.*.hp massif.*.aux massif.*.ps massif.*.txt massif.*.html *.stdout.diff *.stderr.diff *.stdout.out *.stderr.out + basic_malloc .deps Makefile.in Makefile massif.*.hp massif.*.aux massif.*.ps massif.*.txt massif.*.html *.stdout.diff *.stderr.diff *.stdout.out *.stderr.out Property changes on: trunk/memcheck ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in *.so + .deps Makefile Makefile.in memcheck *.so Property changes on: trunk/memcheck/tests ___________________________________________________________________ Name: svn:ignore - addressable badaddrvalue badfree badjump badjump2 badloop badpoll badrw brk brk2 buflen_check clientperm clientstackperm custom_alloc .deps describe-block dir doublefree erringfds error_counts errs1 execve execve2 exitprog filter_leak_check_size filter_stderr fprw fwrite hello inits inline leak-0 leak-cycle leakotron leak-regroot leak-tree Makefile Makefile.in malloc1 malloc2 malloc3 malloc_usable manuel1 manuel2 manuel3 match-overrun memalign2 memalign_test memcmptest mempool metadata mismatches mmaptest nanoleak new_nothrow new_override null_socket oset_test overlap partiallydefinedeq pointer-trace post-syscall realloc1 realloc2 realloc3 scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork sigaltstack sigkill signal2 sigprocmask stack_changes *.stderr.diff* *.stderr.out *.stdout.diff *.stdout.out strchr str_tester supp1 supp2 suppfree supp_unknown threadederrno trivialleak vgtest_ume weirdioctl with space writev xml1 zeropage + addressable badaddrvalue badfree badjump badjump2 badloop badpoll badrw brk brk2 buflen_check clientperm clientstackperm custom_alloc .deps describe-block dir doublefree erringfds error_counts errs1 execve execve2 exitprog filter_leak_check_size filter_stderr fprw fwrite hello inits inline leak-0 leak-cycle leakotron leak-regroot leak-tree Makefile Makefile.in malloc1 malloc2 malloc3 malloc_usable manuel1 manuel2 manuel3 match-overrun memalign2 memalign_test memcmptest mempool metadata mismatches mmaptest nanoleak new_nothrow new_override null_socket oset_test overlap partiallydefinedeq pipe pointer-trace post-syscall realloc1 realloc2 realloc3 scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork sigaltstack sigkill signal2 sigprocmask stack_changes *.stderr.diff* *.stderr.out *.stdout.diff *.stdout.out strchr str_tester supp1 supp2 suppfree supp_unknown threadederrno trivialleak vgtest_ume weirdioctl with space writev xml1 zeropage Property changes on: trunk/none ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in *.so + .deps Makefile Makefile.in none *.so Property changes on: trunk/none/tests ___________________________________________________________________ Name: svn:ignore - ansi args as_mmap as_shm async-sigs bitfield1 blockfault closeall coolo_sigaction coolo_strlen .deps discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip gxx304 insn_basic insn_basic.c insn_cmov insn_cmov.c insn_fpu insn_fpu.c insn_mmx insn_mmx.c insn_mmxext insn_mmxext.c insn_sse insn_sse2 insn_sse2.c insn_sse.c Makefile Makefile.in manythreads map_unaligned map_unmap mq mremap munmap_exe nestedfns pending pluto pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_semaphore1 pth_simple_mutex pth_simple_threads pth_specific pth_stackalign pth_yield rcrl readline1 resolv res_search rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts sigstackgrowth smc1 *.so stackgrowth *.stderr.diff *.stderr.out *.stdout.diff *.stdout.out susphello syscall-restart1 syscall-restart2 system threadederrno threaded-fork thread-exits tls vgprintf yield + ansi args as_mmap as_shm async-sigs bitfield1 blockfault closeall coolo_sigaction coolo_strlen .deps discard exec-sigmask execve faultstatus fcntl_setown fdleak_cmsg fdleak_creat fdleak_dup fdleak_dup2 fdleak_fcntl fdleak_ipv4 fdleak_open fdleak_pipe fdleak_socketpair floored fork fucomip gxx304 insn_basic insn_basic.c insn_cmov insn_cmov.c insn_fpu insn_fpu.c insn_mmx insn_mmx.c insn_mmxext insn_mmxext.c insn_sse insn_sse2 insn_sse2.c insn_sse.c Makefile Makefile.in manythreads map_unaligned map_unmap mq mremap mremap2 munmap_exe nestedfns pending pluto pth_atfork1 pth_blockedsig pth_cancel1 pth_cancel2 pth_cvsimple pth_empty pth_exit pth_exit2 pth_mutexspeed pth_once pth_rwlock pth_semaphore1 pth_simple_mutex pth_simple_threads pth_specific pth_stackalign pth_yield rcrl readline1 resolv res_search rlimit_nofile selfrun sem semlimit sha1_test shortpush shorts sigstackgrowth smc1 *.so stackgrowth *.stderr.diff* *.stderr.out *.stdout.diff *.stdout.out susphello syscall-restart1 syscall-restart2 system threadederrno threaded-fork thread-exits tls vgprintf yield Property changes on: trunk/none/tests/amd64 ___________________________________________________________________ Name: svn:ignore - .deps insn_fpu insn_fpu.c insn_mmx insn_mmx.c insn_sse insn_sse.c insn_sse2 insn_sse2.c smc1 Makefile Makefile.in + .deps insn_fpu insn_fpu.c insn_mmx insn_mmx.c insn_sse insn_sse.c insn_sse2 insn_sse2.c looper smc1 Makefile Makefile.in Property changes on: trunk/none/tests/ppc32 ___________________________________________________________________ Name: svn:ignore - Makefile Makefile.in + .deps Makefile Makefile.in |
|
From: Tom H. <to...@co...> - 2005-09-30 13:37:51
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
>> > - on x86/ppc32, if < 2^32, do the obvious thing (sys_mmap/old_mmap)
>> > else if it's of the form 0xFFFFFFFF << PAGE_SHIFT then use
>> > mmap2
>> > else return a failure SysRes, since we have no way to express that
>> > offset to the kernel.
>>
>> What is the point of this - offsets that are not page aligned are
>> always invalid (though we should probably check that in the generic
>> wrapper) and I think mmap2 has been around long enough that we're
>> not likely to encounter a kernel that doesn't have it - or do you
>> think we might?
>
> Let me rephrase that. 64-bit offsets everywhere, including
> last arg to VG_(am_do_mmap_NO_NOTIFY). That fn then communicates
> the mmap to the kernel using whatever variant of sys_mmap it feels
> like. The important thing is that VG_(am_do_mmap_NO_NOTIFY) insulates
> the rest of aspacem from those details.
Absolutely, and that is the current situation, modulo changing the
type of the offset argument and the question of whether or not we want
to rely on mmap2.
> I don't want to lose support for 2.4 kernels, so if mmap2 predates
> 2.4.0 then we may as well just use that. Do you know when it
> appeared? Ah, 2.3.31 according to man mmap2.
Does that mean you're happy to assume that mmap2 exists or should we
add a fallback to use mmap if mmap2 fails?
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-09-30 10:48:32
|
Author: sewardj
Date: 2005-09-30 11:48:27 +0100 (Fri, 30 Sep 2005)
New Revision: 4838
Log:
ML_(generic_PRE_sys_mmap): reject non-page-aligned offsets.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 10:34:06 UTC (=
rev 4837)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 10:48:27 UTC (=
rev 4838)
@@ -1736,6 +1736,14 @@
return VG_(mk_SysRes_Error)( VKI_EINVAL );
}
=20
+ if (!VG_IS_PAGE_ALIGNED(arg6)) {
+ /* zap any misaligned offsets. */
+ /* SuSV3 says: The off argument is constrained to be aligned and
+ sized according to the value returned by sysconf() when
+ passed _SC_PAGESIZE or _SC_PAGE_SIZE. */
+ return VG_(mk_SysRes_Error)( VKI_EINVAL );
+ }
+
/* Figure out what kind of allocation constraints there are
(fixed/hint/any), and ask aspacem what we should do. */
mreq.start =3D arg1;
|
|
From: <sv...@va...> - 2005-09-30 10:34:13
|
Author: sewardj
Date: 2005-09-30 11:34:06 +0100 (Fri, 30 Sep 2005)
New Revision: 4837
Log:
When a sector is full, debug-print TC/TT loading for it, so as to give
better info on sizing decisions.
Modified:
trunk/coregrind/m_transtab.c
Modified: trunk/coregrind/m_transtab.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_transtab.c 2005-09-30 10:32:39 UTC (rev 4836)
+++ trunk/coregrind/m_transtab.c 2005-09-30 10:34:06 UTC (rev 4837)
@@ -428,6 +428,15 @@
used before, in which case it will get its tt/tc allocated
now, or it has been used before, in which case it is set to be
empty, hence throwing out the oldest sector. */
+ vg_assert(tc_sector_szQ > 0);
+ VG_(debugLog)(1,"transtab",=20
+ "declare sector %d full "
+ "(TT loading %2d%%, TC loading %2d%%)\n",
+ y,
+ (100 * sectors[y].tt_n_inuse)=20
+ / N_TTES_PER_SECTOR,
+ (100 * (tc_sector_szQ - tcAvailQ))=20
+ / tc_sector_szQ);
youngest_sector++;
if (youngest_sector >=3D N_SECTORS)
youngest_sector =3D 0;
@@ -589,7 +598,7 @@
=20
vg_assert(init_done);
=20
- VG_(debugLog)(1, "transtab",
+ VG_(debugLog)(2, "transtab",
"discard_translations(0x%llx, %lld) req by %s\n",
guest_start, range, who );
=20
|
|
From: <sv...@va...> - 2005-09-30 10:32:42
|
Author: sewardj
Date: 2005-09-30 11:32:39 +0100 (Fri, 30 Sep 2005)
New Revision: 4836
Log:
Placate gcc.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 08:12:54 UTC (=
rev 4835)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 10:32:39 UTC (=
rev 4836)
@@ -4712,7 +4712,7 @@
* /proc/<pid>/exe.
*/
VG_(sprintf)(name, "/proc/%d/exe", VG_(getpid)());
- if (ML_(safe_to_deref)(ARG1, 1)
+ if (ML_(safe_to_deref)((void*)ARG1, 1)
&& (VG_(strcmp)((Char *)ARG1, name) =3D=3D 0=20
|| VG_(strcmp)((Char *)ARG1, "/proc/self/exe") =3D=3D 0)) {
VG_(sprintf)(name, "/proc/self/fd/%d", VG_(cl_exec_fd));
|
|
From: Julian S. <js...@ac...> - 2005-09-30 10:26:34
|
> Julian Seward <js...@ac...> wrote: > > How about this: store offsets consistently 64-bit throughout aspacem, > > and change the type of VG_(am_do_mmap_NO_NOTIFY)'s last arg accordingly. > > > > Then make VG_(am_do_mmap_NO_NOTIFY) examine that last arg: > > > > - on amd64, no change from now > > > > - on x86/ppc32, if < 2^32, do the obvious thing (sys_mmap/old_mmap) > > else if it's of the form 0xFFFFFFFF << PAGE_SHIFT then use > > mmap2 > > else return a failure SysRes, since we have no way to express that > > offset to the kernel. > > What is the point of this - offsets that are not page aligned are > always invalid (though we should probably check that in the generic > wrapper) and I think mmap2 has been around long enough that we're > not likely to encounter a kernel that doesn't have it - or do you > think we might? Let me rephrase that. 64-bit offsets everywhere, including last arg to VG_(am_do_mmap_NO_NOTIFY). That fn then communicates the mmap to the kernel using whatever variant of sys_mmap it feels like. The important thing is that VG_(am_do_mmap_NO_NOTIFY) insulates the rest of aspacem from those details. I don't want to lose support for 2.4 kernels, so if mmap2 predates 2.4.0 then we may as well just use that. Do you know when it appeared? Ah, 2.3.31 according to man mmap2. J |
|
From: Tom H. <to...@co...> - 2005-09-30 09:46:17
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
> How about this: store offsets consistently 64-bit throughout aspacem,
> and change the type of VG_(am_do_mmap_NO_NOTIFY)'s last arg accordingly.
>
> Then make VG_(am_do_mmap_NO_NOTIFY) examine that last arg:
>
> - on amd64, no change from now
>
> - on x86/ppc32, if < 2^32, do the obvious thing (sys_mmap/old_mmap)
> else if it's of the form 0xFFFFFFFF << PAGE_SHIFT then use
> mmap2
> else return a failure SysRes, since we have no way to express that
> offset to the kernel.
What is the point of this - offsets that are not page aligned are
always invalid (though we should probably check that in the generic
wrapper) and I think mmap2 has been around long enough that we're
not likely to encounter a kernel that doesn't have it - or do you
think we might?
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Julian S. <js...@ac...> - 2005-09-30 09:36:05
|
> Rationalise the mmap system call handling Excellent. This is long overdue. > There is still an issue of OffT truncating offsets as we go through > the address space manager that will need to be addressed. How about this: store offsets consistently 64-bit throughout aspacem, and change the type of VG_(am_do_mmap_NO_NOTIFY)'s last arg accordingly. Then make VG_(am_do_mmap_NO_NOTIFY) examine that last arg: - on amd64, no change from now - on x86/ppc32, if < 2^32, do the obvious thing (sys_mmap/old_mmap) else if it's of the form 0xFFFFFFFF << PAGE_SHIFT then use mmap2 else return a failure SysRes, since we have no way to express that offset to the kernel. J |
|
From: <sv...@va...> - 2005-09-30 08:13:00
|
Author: tom
Date: 2005-09-30 09:12:54 +0100 (Fri, 30 Sep 2005)
New Revision: 4835
Log:
Removed surplus parenthesis.
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr.c
Modified: trunk/coregrind/m_aspacemgr/aspacemgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-09-30 08:07:53 UTC (rev =
4834)
+++ trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-09-30 08:12:54 UTC (rev =
4835)
@@ -230,7 +230,7 @@
SysRes res;
# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
res =3D VG_(do_syscall6)(__NR_mmap2, (UWord)start, length,
- prot, flags, fd, offset / VKI_PAGE_SIZE));
+ prot, flags, fd, offset / VKI_PAGE_SIZE);
# elif defined(VGP_amd64_linux)
res =3D VG_(do_syscall6)(__NR_mmap, (UWord)start, length,=20
prot, flags, fd, offset);
|
|
From: Tom H. <to...@co...> - 2005-09-30 08:11:48
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
>> On x86 and ppc32 the offset argument to mmap2 is specified in pages
>> not bytes. This is a horrible kludge of a fix and it should probably
>> be fixed properly with a separate sys_mmap for amd64.
>
>> + OffT offset;
>
> Nice but .. there's kind of an awkward hole here. On x86, OffT is
> 32 bits and so if ARG6 >= 2^20 then offset is going to be wrong.
> Implication is that all mmap offsets should be represented in 64
> bits regardless of the platform. (sigh)
Well maybe OffT should always be 64 bits - even 32 bit platforms
support large files and can have 64 bit offsets.
>> +#if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
>> + offset = ARG6 * VKI_PAGE_SIZE;
>
> Also .. utterly illogically .. on ppc32 multiplying by page size
> causes everything to crash horribly. So on ppc32 I guess it's
> byte-indexed; but the implication is you can't do offsets of
> more than 4G on ppc32. /me mystified.
I had checked the kernel, and noted that ppc32 was passing the offset
to mmap2 as pages which is why I did what I did.
It turns out however that we were trying to use the sys_mmap2 handler
for both mmap and mmap2 on ppc32 which is wrong - they both pass the
arguments in the normal way (unlike x86) but one passes the offset in
bytes and one in pages.
I have attempted to rationalise all this and have committed a fix...
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2005-09-30 08:07:59
|
Author: tom
Date: 2005-09-30 09:07:53 +0100 (Fri, 30 Sep 2005)
New Revision: 4834
Log:
Rationalise the mmap system call handling - after examining the kernel
source it turns out that there are five different versions of mmap for
the three platforms we currently support:
- On x86-linux there is mmap (aka old_mmap) which takes the
arguments in a memory block and the offset in bytes; and
mmap2 (aka sys_mmap2) which takes the arguments in the normal
way and the offset in pages.
- On ppc32-linux there is mmap (aka sys_mmap) which takes the
arguments in the normal way and the offset in bytes; and
mmap2 (aka sys_mmap2) which takes the arguments in the normal
way and the offset in pages.
- On amd64-linux everything is simple and there is just the one
call, mmap (aka sys_mmap) which takes the arguments in the normal
way and the offset in bytes.
To reconcile all this I have created a generic handler and then
written five platform specific wrappers which normalise all the
arguments and then call the generic handler.
I have also modified the address space manager to use mmap2 rather
than mmap on x86 and ppc32 so that large offsets can be correctly
handled.
There is still an issue of OffT truncating offsets as we go through
the address space manager that will need to be addressed.
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr.c
trunk/coregrind/m_syswrap/priv_syswrap-generic.h
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_aspacemgr/aspacemgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-09-30 02:17:40 UTC (rev =
4833)
+++ trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-09-30 08:07:53 UTC (rev =
4834)
@@ -228,23 +228,12 @@
UInt flags, UInt fd, OffT offset)
{
SysRes res;
-# if defined(VGP_x86_linux)
- {=20
- UWord args[6];
- args[0] =3D (UWord)start;
- args[1] =3D length;
- args[2] =3D prot;
- args[3] =3D flags;
- args[4] =3D fd;
- args[5] =3D offset;
- res =3D VG_(do_syscall1)(__NR_mmap, (UWord)args );
- }
+# if defined(VGP_x86_linux) || defined(VGP_ppc32_linux)
+ res =3D VG_(do_syscall6)(__NR_mmap2, (UWord)start, length,
+ prot, flags, fd, offset / VKI_PAGE_SIZE));
# elif defined(VGP_amd64_linux)
res =3D VG_(do_syscall6)(__NR_mmap, (UWord)start, length,=20
prot, flags, fd, offset);
-# elif defined(VGP_ppc32_linux)
- res =3D VG_(do_syscall6)(__NR_mmap, (UWord)(start), (length),
- prot, flags, fd, offset);
# else
# error Unknown platform
# endif
Modified: trunk/coregrind/m_syswrap/priv_syswrap-generic.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-09-30 02:17:40 =
UTC (rev 4833)
+++ trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2005-09-30 08:07:53 =
UTC (rev 4834)
@@ -242,6 +242,8 @@
extern void ML_(generic_PRE_sys_shmctl) ( TId, UW, UW, UW );
extern void ML_(generic_POST_sys_shmctl) ( TId, UW, UW, UW, UW );
=20
+extern SysRes ML_(generic_PRE_sys_mmap) ( TId, UW, UW, UW, UW, U=
W, UW );
+
#undef TId
#undef UW
#undef SR
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-09-30 02:17:40 UT=
C (rev 4833)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-09-30 08:07:53 UT=
C (rev 4834)
@@ -66,7 +66,6 @@
DECL_TEMPLATE(linux, sys_sendfile);
DECL_TEMPLATE(linux, sys_sendfile64);
DECL_TEMPLATE(linux, sys_futex);
-DECL_TEMPLATE(linux, sys_mmap2);
=20
DECL_TEMPLATE(linux, sys_epoll_create);
DECL_TEMPLATE(linux, sys_epoll_ctl);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-09-30 02:17:40 U=
TC (rev 4833)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-09-30 08:07:53 U=
TC (rev 4834)
@@ -569,6 +569,7 @@
DECL_TEMPLATE(amd64_linux, sys_pread64);
DECL_TEMPLATE(amd64_linux, sys_pwrite64);
DECL_TEMPLATE(amd64_linux, sys_fadvise64);
+DECL_TEMPLATE(amd64_linux, sys_mmap);
=20
=20
PRE(sys_clone)
@@ -1136,6 +1137,21 @@
int, fd, vki_loff_t, offset, vki_size_t, len, int, advi=
ce);
}
=20
+PRE(sys_mmap)
+{
+ SysRes r;
+
+ PRINT("sys_mmap ( %p, %llu, %d, %d, %d, %d )",
+ ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
+ PRE_REG_READ6(long, "mmap",
+ unsigned long, start, unsigned long, length,
+ unsigned long, prot, unsigned long, flags,
+ unsigned long, fd, unsigned long, offset);
+
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 );
+ SET_STATUS_from_SysRes(r);
+}
+
#undef PRE
#undef POST
=20
@@ -1167,7 +1183,7 @@
GENXY(__NR_lstat, sys_newlstat), // 6=20
GENXY(__NR_poll, sys_poll), // 7=20
LINX_(__NR_lseek, sys_lseek), // 8=20
- LINX_(__NR_mmap, sys_mmap2), // 9=20
+ PLAX_(__NR_mmap, sys_mmap), // 9=20
=20
GENXY(__NR_mprotect, sys_mprotect), // 10=20
GENXY(__NR_munmap, sys_munmap), // 11=20
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 02:17:40 UTC (=
rev 4833)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-09-30 08:07:53 UTC (=
rev 4834)
@@ -1710,6 +1710,79 @@
=20
=20
/* ---------------------------------------------------------------------
+ Generic handler for mmap
+ ------------------------------------------------------------------ */
+
+SysRes
+ML_(generic_PRE_sys_mmap) ( ThreadId tid,
+ UWord arg1, UWord arg2, UWord arg3,
+ UWord arg4, UWord arg5, UWord arg6 )
+{
+ Addr advised;
+ SysRes sres;
+ MapRequest mreq;
+ Bool mreq_ok;
+
+ if (arg2 =3D=3D 0) {
+ /* SuSV3 says: If len is zero, mmap() shall fail and no mapping
+ shall be established. */
+ return VG_(mk_SysRes_Error)( VKI_EINVAL );
+ }
+
+ if (!VG_IS_PAGE_ALIGNED(arg1)) {
+ /* zap any misaligned addresses. */
+ /* SuSV3 says misaligned addresses only cause the MAP_FIXED case
+ to fail. Here, we catch them all. */
+ return VG_(mk_SysRes_Error)( VKI_EINVAL );
+ }
+
+ /* Figure out what kind of allocation constraints there are
+ (fixed/hint/any), and ask aspacem what we should do. */
+ mreq.start =3D arg1;
+ mreq.len =3D arg2;
+ if (arg4 & VKI_MAP_FIXED) {
+ mreq.rkind =3D MFixed;
+ } else
+ if (arg1 !=3D 0) {
+ mreq.rkind =3D MHint;
+ } else {
+ mreq.rkind =3D MAny;
+ }
+
+ /* Enquire ... */
+ advised =3D VG_(am_get_advisory)( &mreq, True/*client*/, &mreq_ok );
+ if (!mreq_ok) {
+ /* Our request was bounced, so we'd better fail. */
+ return VG_(mk_SysRes_Error)( VKI_EINVAL );
+ }
+
+ /* Otherwise we're OK (so far). Install aspacem's choice of
+ address, and let the mmap go through. */
+ sres =3D VG_(am_do_mmap_NO_NOTIFY)(advised, arg2, arg3,
+ arg4 | VKI_MAP_FIXED,
+ arg5, arg6);
+
+ if (!sres.isError) {
+ /* Notify aspacem and the tool. */
+ ML_(notify_aspacem_and_tool_of_mmap)(=20
+ (Addr)sres.val, /* addr kernel actually assigned */
+ arg2, arg3,=20
+ arg4, /* the original flags value */
+ arg5, arg6=20
+ );
+ /* Load symbols? */
+ VG_(di_notify_mmap)( (Addr)sres.val );
+ }
+
+ /* Stay sane */
+ if (!sres.isError && (arg4 & VKI_MAP_FIXED))
+ vg_assert(sres.val =3D=3D arg1);
+
+ return sres;
+}
+
+
+/* ---------------------------------------------------------------------
The Main Entertainment ... syscall wrappers
------------------------------------------------------------------ */
=20
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2005-09-30 02:17:40 UTC (re=
v 4833)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2005-09-30 08:07:53 UTC (re=
v 4834)
@@ -548,98 +548,7 @@
}
}
=20
-PRE(sys_mmap2)
-{
- Addr advised;
- SysRes sres;
- OffT offset;
- MapRequest mreq;
- Bool mreq_ok;
=20
- // Exactly like old_mmap() in x86-linux except:
- // - all 6 args are passed in regs, rather than in a memory-block.
- // - on x86-linux, the file offset is specified in pagesize units
- // rather than bytes, so that it can be used for files bigger=20
- // than 2^32 bytes. On amd64-linux and ppc32-linux it appears
- // to be in bytes.
- PRINT("sys_mmap2 ( %p, %llu, %d, %d, %d, %d )",
- ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
- PRE_REG_READ6(long, "mmap2",
- unsigned long, start, unsigned long, length,
- unsigned long, prot, unsigned long, flags,
- unsigned long, fd, unsigned long, offset);
-
- if (ARG2 =3D=3D 0) {
- /* SuSV3 says: If len is zero, mmap() shall fail and no mapping
- shall be established. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
-
- if (!VG_IS_PAGE_ALIGNED(ARG1)) {
- /* zap any misaligned addresses. */
- /* SuSV3 says misaligned addresses only cause the MAP_FIXED case
- to fail. Here, we catch them all. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
-
- /* Figure out what kind of allocation constraints there are
- (fixed/hint/any), and ask aspacem what we should do. */
- mreq.start =3D ARG1;
- mreq.len =3D ARG2;
- if (ARG4 & VKI_MAP_FIXED) {
- mreq.rkind =3D MFixed;
- } else
- if (ARG1 !=3D 0) {
- mreq.rkind =3D MHint;
- } else {
- mreq.rkind =3D MAny;
- }
-
- /* Enquire ... */
- advised =3D VG_(am_get_advisory)( &mreq, True/*client*/, &mreq_ok );
- if (!mreq_ok) {
- /* Our request was bounced, so we'd better fail. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
-
- vg_assert(! FAILURE);
-
-# if defined(VGP_x86_linux)
- offset =3D ARG6 * VKI_PAGE_SIZE;
-# elif defined(VGP_amd64_linux) || defined(VGP_ppc32_linux)
- offset =3D ARG6;
-# else
-# error Unknown platform
-# endif
-
- /* Otherwise we're OK (so far). Install aspacem's choice of
- address, and let the mmap go through. */
- sres =3D VG_(am_do_mmap_NO_NOTIFY)(advised, ARG2, ARG3,
- ARG4 | VKI_MAP_FIXED,
- ARG5, offset);
- SET_STATUS_from_SysRes(sres);
-
- if (!sres.isError) {
- /* Notify aspacem and the tool. */
- ML_(notify_aspacem_and_tool_of_mmap)(=20
- (Addr)sres.val, /* addr kernel actually assigned */
- ARG2, ARG3,=20
- ARG4, /* the original flags value */
- ARG5, offset
- );
- /* Load symbols? */
- VG_(di_notify_mmap)( (Addr)sres.val );
- }
-
- /* Stay sane */
- if (SUCCESS && (ARG4 & VKI_MAP_FIXED))
- vg_assert(RES =3D=3D ARG1);
-}
-
-
/* ---------------------------------------------------------------------
epoll_* wrappers
------------------------------------------------------------------ */
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-09-30 02:17:40 U=
TC (rev 4833)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-09-30 08:07:53 U=
TC (rev 4834)
@@ -592,6 +592,8 @@
magic. */
=20
DECL_TEMPLATE(ppc32_linux, sys_socketcall);
+DECL_TEMPLATE(ppc32_linux, sys_mmap);
+DECL_TEMPLATE(ppc32_linux, sys_mmap2);
DECL_TEMPLATE(ppc32_linux, sys_stat64);
DECL_TEMPLATE(ppc32_linux, sys_lstat64);
DECL_TEMPLATE(ppc32_linux, sys_fstat64);
@@ -856,6 +858,39 @@
# undef ARG2_5
}
=20
+PRE(sys_mmap)
+{
+ SysRes r;
+
+ PRINT("sys_mmap ( %p, %llu, %d, %d, %d, %d )",
+ ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
+ PRE_REG_READ6(long, "mmap",
+ unsigned long, start, unsigned long, length,
+ unsigned long, prot, unsigned long, flags,
+ unsigned long, fd, unsigned long, offset);
+
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 );
+ SET_STATUS_from_SysRes(r);
+}
+
+PRE(sys_mmap2)
+{
+ SysRes r;
+
+ // Exactly like old_mmap() except:
+ // - the file offset is specified in pagesize units rather than byte=
s,
+ // so that it can be used for files bigger than 2^32 bytes.
+ PRINT("sys_mmap2 ( %p, %llu, %d, %d, %d, %d )",
+ ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
+ PRE_REG_READ6(long, "mmap2",
+ unsigned long, start, unsigned long, length,
+ unsigned long, prot, unsigned long, flags,
+ unsigned long, fd, unsigned long, offset);
+
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 * VKI_PAGE_SIZE );
+ SET_STATUS_from_SysRes(r);
+}
+
// XXX: lstat64/fstat64/stat64 are generic, but not necessarily
// applicable to every architecture -- I think only to 32-bit archs.
// We're going to need something like linux/core_os32.h for such
@@ -1725,7 +1760,7 @@
//.. // (__NR_reboot, sys_reboot), // 88 */Li=
nux
//.. // (__NR_readdir, old_readdir), // 89 -- s=
uperseded
=20
- LINX_(__NR_mmap, sys_mmap2), // 90
+ PLAX_(__NR_mmap, sys_mmap), // 90
GENXY(__NR_munmap, sys_munmap), // 91
//.. GENX_(__NR_truncate, sys_truncate), // 92
GENX_(__NR_ftruncate, sys_ftruncate), // 93
@@ -1851,7 +1886,7 @@
GENX_(__NR_vfork, sys_fork), // 189
GENXY(__NR_ugetrlimit, sys_getrlimit), // 190
//__NR_readahead // 191 ppc/Linux only?
- LINX_(__NR_mmap2, sys_mmap2), // 192
+ PLAX_(__NR_mmap2, sys_mmap2), // 192
//.. GENX_(__NR_truncate64, sys_truncate64), // 193
//.. GENX_(__NR_ftruncate64, sys_ftruncate64), // 194
//.. =20
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-09-30 02:17:40 UTC=
(rev 4833)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-09-30 08:07:53 UTC=
(rev 4834)
@@ -966,6 +966,7 @@
DECL_TEMPLATE(x86_linux, sys_lstat64);
DECL_TEMPLATE(x86_linux, sys_clone);
DECL_TEMPLATE(x86_linux, old_mmap);
+DECL_TEMPLATE(x86_linux, sys_mmap2);
DECL_TEMPLATE(x86_linux, sys_sigreturn);
DECL_TEMPLATE(x86_linux, sys_ipc);
DECL_TEMPLATE(x86_linux, sys_rt_sigreturn);
@@ -1466,10 +1467,7 @@
unsigned long offset;
}; */
UWord a1, a2, a3, a4, a5, a6;
- Addr advised;
- SysRes sres;
- MapRequest mreq;
- Bool mreq_ok;
+ SysRes r;
=20
UWord* args =3D (UWord*)ARG1;
PRE_REG_READ1(long, "old_mmap", struct mmap_arg_struct *, args);
@@ -1485,65 +1483,27 @@
PRINT("old_mmap ( %p, %llu, %d, %d, %d, %d )",
a1, (ULong)a2, a3, a4, a5, a6 );
=20
- if (a2 =3D=3D 0) {
- /* SuSV3 says: If len is zero, mmap() shall fail and no mapping
- shall be established. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
+ r =3D ML_(generic_PRE_sys_mmap)( tid, a1, a2, a3, a4, a5, a6 );
+ SET_STATUS_from_SysRes(r);
+}
=20
- if (!VG_IS_PAGE_ALIGNED(a1)) {
- /* zap any misaligned addresses. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
+PRE(sys_mmap2)
+{
+ SysRes r;
=20
- /* Figure out what kind of allocation constraints there are
- (fixed/hint/any), and ask aspacem what we should do. */
- mreq.start =3D a1;
- mreq.len =3D a2;
- if (a4 & VKI_MAP_FIXED) {
- mreq.rkind =3D MFixed;
- } else
- if (a1 !=3D 0) {
- mreq.rkind =3D MHint;
- } else {
- mreq.rkind =3D MAny;
- }
+ // Exactly like old_mmap() except:
+ // - all 6 args are passed in regs, rather than in a memory-block.
+ // - the file offset is specified in pagesize units rather than byte=
s,
+ // so that it can be used for files bigger than 2^32 bytes.
+ PRINT("sys_mmap2 ( %p, %llu, %d, %d, %d, %d )",
+ ARG1, (ULong)ARG2, ARG3, ARG4, ARG5, ARG6 );
+ PRE_REG_READ6(long, "mmap2",
+ unsigned long, start, unsigned long, length,
+ unsigned long, prot, unsigned long, flags,
+ unsigned long, fd, unsigned long, offset);
=20
- /* Enquire ... */
- advised =3D VG_(am_get_advisory)( &mreq, True/*client*/, &mreq_ok );
- if (!mreq_ok) {
- /* Our request was bounced, so we'd better fail. */
- SET_STATUS_Failure( VKI_EINVAL );
- return;
- }
-
- /* Otherwise we're OK (so far). Install aspacem's choice of
- address, and let the mmap go through. */
- a1 =3D advised;
- a4 |=3D VKI_MAP_FIXED;
-
- vg_assert(! FAILURE);
-
- sres =3D VG_(am_do_mmap_NO_NOTIFY)(a1, a2, a3, a4, a5, a6);
- SET_STATUS_from_SysRes(sres);
-
- if (!sres.isError) {
- /* Notify aspacem and the tool. */
- ML_(notify_aspacem_and_tool_of_mmap)(=20
- (Addr)sres.val, /* addr kernel actually assigned */
- a2, a3,=20
- args[4-1], /* the original flags value */
- a5, a6=20
- );
- /* Load symbols? */
- VG_(di_notify_mmap)( (Addr)sres.val );
- }
-
- /* Stay sane */
- if (SUCCESS && (args[4-1] & VKI_MAP_FIXED))
- vg_assert(RES =3D=3D args[0]);
+ r =3D ML_(generic_PRE_sys_mmap)( tid, ARG1, ARG2, ARG3, ARG4, ARG5, A=
RG6 * VKI_PAGE_SIZE );
+ SET_STATUS_from_SysRes(r);
}
=20
// XXX: lstat64/fstat64/stat64 are generic, but not necessarily
@@ -2170,7 +2130,7 @@
// Nb: we treat vfork as fork
GENX_(__NR_vfork, sys_fork), // 190
GENXY(__NR_ugetrlimit, sys_getrlimit), // 191
- LINX_(__NR_mmap2, sys_mmap2), // 192
+ PLAX_(__NR_mmap2, sys_mmap2), // 192
GENX_(__NR_truncate64, sys_truncate64), // 193
GENX_(__NR_ftruncate64, sys_ftruncate64), // 194
=20
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-30 04:32:36
|
Dear Valgrind user, We're extending the September 2005 survey by a week, because we're still getting a good number of responses each day. If you haven't already participated, please visit http://www.valgrind.org/gallery/surveys.html and fill out a survey. It will only take a couple of minutes and it will help us greatly. The original survey notice is included below for reference. Thanks for your help. The Valgrind Team. ---------- Forwarded message ---------- Date: Thu, 22 Sep 2005 16:08:12 -0500 (CDT) From: Nicholas Nethercote <nj...@cs...> To: Valgrind Announce <val...@li...>, Valgrind Users <val...@li...>, Valgrind Developers <val...@li...> Subject: [Valgrind-announce] Valgrind September 2005 survey Dear Valgrind User, We'd like you to participate in the second official Valgrind survey. It can be found at: http://www.valgrind.org/gallery/surveys.html Our first survey was in November 2003. It was very useful and we made a number of changes to how we do things as a result (the above page links to a list of some of these changes). Valgrind has changed a lot since then. This is your chance to let us know what you think about Valgrind and how it can be improved. This survey is shorter and better focused than the 2003 survey. We'd like you to respond, even if you filled out the 2003 survey, or filled out an intermediate survey on the website in the time between now and then -- the survey evolved over that time, and we'd like all the responses to be from the same time period. If you know a Valgrind user who doesn't read the lists, please forward this message to them. If you are worried about privacy: the survey can be taken anonymously, although the survey explains why we prefer that you include your name and email address. You don't have to answer any question you don't want to, but we encourage you to answer all of them. We won't reveal your name or email address to anyone outside the Valgrind team. Your response is confidential; we won't make raw data public, only summaries (which may include anonymous quotes). The only exception to this is if you answer "yes" to question 16 about mentioning your project on the Valgrind website. We will collect up the responses about one week from now (the exact time depends on the response rate, we'll keep it open longer if responses are still coming in), and post the analysis and results some time afterwards. Thank you for your participation. The Valgrind Team ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ Valgrind-announce mailing list Val...@li... https://lists.sourceforge.net/lists/listinfo/valgrind-announce |
|
From: <js...@ac...> - 2005-09-30 03:02:46
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-09-30 03:30:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 186 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: <sv...@va...> - 2005-09-30 02:48:55
|
Author: njn Date: 2005-09-30 03:48:52 +0100 (Fri, 30 Sep 2005) New Revision: 205 Log: We have users in China and Iceland. Modified: trunk/info/about.html Modified: trunk/info/about.html =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/info/about.html 2005-09-30 01:27:44 UTC (rev 204) +++ trunk/info/about.html 2005-09-30 02:48:52 UTC (rev 205) @@ -59,10 +59,10 @@ =20 <li>Valgrind is widely used. Valgrind has been used by thousands of programmers across the world. We have received feedback from -users in over 25 countries, including: Belgium, Czech Republic, -Denmark, Finland, France, Germany, Greece, Hungary, Italy, The +users in over 30 countries, including: Belgium, Czech Republic, +Denmark, Finland, France, Germany, Greece, Hungary, Iceland, Italy, The Netherlands, Norway, Poland, Portugal, Russia, Sweden, Switzerland, UK, -Argentina, Brazil, Canada, USA, Australia, India, Japan, New Zealand, +Argentina, Brazil, Canada, USA, Australia, China, India, Japan, New Zeal= and, Singapore, South Africa and Israel.</li> =20 <li>Valgrind works with programs written in any language. Because |
|
From: Tom H. <to...@co...> - 2005-09-30 02:40:33
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-09-30 03:30:04 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 188 tests, 9 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/badseg (stdout) none/tests/x86/badseg (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 188 tests, 8 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Sep 30 03:35:19 2005 --- new.short Fri Sep 30 03:40:29 2005 *************** *** 8,11 **** ! == 188 tests, 8 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) --- 8,12 ---- ! == 188 tests, 9 stderr failures, 2 stdout failures ================= memcheck/tests/leak-tree (stderr) + memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) *************** *** 16,17 **** --- 17,20 ---- none/tests/faultstatus (stderr) + none/tests/x86/badseg (stdout) + none/tests/x86/badseg (stderr) none/tests/x86/int (stderr) |