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
(3) |
2
(2) |
3
(1) |
|
4
(1) |
5
|
6
(4) |
7
(3) |
8
|
9
(1) |
10
(1) |
|
11
(1) |
12
(9) |
13
|
14
(1) |
15
(6) |
16
(4) |
17
(2) |
|
18
|
19
(3) |
20
|
21
(1) |
22
(2) |
23
(2) |
24
(2) |
|
25
|
26
(1) |
27
(1) |
28
(1) |
29
(2) |
30
|
31
|
|
From: <sv...@va...> - 2015-10-15 04:18:19
|
Author: rhyskidd
Date: Thu Oct 15 05:18:12 2015
New Revision: 15703
Log:
Fix typo in malloc_get_zone_name() intercept. n-i-bz.
Modified:
trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
Modified: trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
==============================================================================
--- trunk/coregrind/m_replacemalloc/vg_replace_malloc.c (original)
+++ trunk/coregrind/m_replacemalloc/vg_replace_malloc.c Thu Oct 15 05:18:12 2015
@@ -1283,8 +1283,8 @@
return vg_default_zone.zone_name; \
}
-ZONE_SET_NAME(VG_Z_LIBC_SONAME, malloc_get_zone_name);
-ZONE_SET_NAME(SO_SYN_MALLOC, malloc_get_zone_name);
+ZONE_GET_NAME(VG_Z_LIBC_SONAME, malloc_get_zone_name);
+ZONE_GET_NAME(SO_SYN_MALLOC, malloc_get_zone_name);
#endif /* defined(VGO_darwin) */
|
|
From: Rhys K. <rhy...@gm...> - 2015-10-15 03:37:13
|
Hello Jeffrey, Thank you for the report. I'll take a look into it. Regards, Rhys On 3 October 2015 at 02:33, Jeffrey Walton <nol...@gm...> wrote: > I'm catching a finding on a call to localtime() on OS X 10.8. I'm > using Valgrind 3.11.0, and I compiled with -O1. > > I think Apple dynamically allocates the tm struct rather than making > it statically allocated. I see others have encountered the same issue > on OS X (cf., http://stackoverflow.com/q/10105181 and > http://stackoverflow.com/q/15613511). > > Please consider ignoring leak findings for localtime() under OS X. > > > ------------------------------------------------------------------------------ > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Sugizaki Y. <i.c...@gm...> - 2015-10-14 00:41:52
|
Hello. Sorry in advance if I'm wrong. I'm writing ioctl wrappers for Broadcom BCM2708/BCM2709 for valgrind. There are some headers from Broadcom which declare types, variables, etc., but I need to add VKI_ prefixes to all types, variables, etc. in the headers (such as _IOWR() -> _VKI_IOWR()). I think I can port them easily if I could use _IOWR() rather than _VKI_IOWR() in valgrind. Why does valgrind redefine the types, variables, etc. with VKI_ prefix? What are merits for this? Regards, Akane. |
|
From: <sv...@va...> - 2015-10-12 20:36:03
|
Author: florian
Date: Mon Oct 12 21:35:56 2015
New Revision: 15702
Log:
On a zEC12 or z13, a glibc with lock elision enabled infers from HWCAP
that the prerequisites for lock elision are met. Then it may use TBEGIN
and other transactional-execution instructions which are not implemented
by Valgrind. Likewise, the upcoming glibc 2.23 will exploit vector
instructions if they are advertised by HWCAP; and those are currently
not implemented by Valgrind either. In general, the increased use of
ifunc may lead to more such cases in the future.
This patch suppresses the advertising of those hardware features via
HWCAP which are either not known to Valgrind or currently unsupported.
Patch by Andreas Arnez (ar...@li...).
Fixes BZ #353680.
Modified:
trunk/NEWS
trunk/README.s390
trunk/coregrind/m_initimg/initimg-linux.c
trunk/include/vki/vki-s390x-linux.h
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Oct 12 21:35:56 2015
@@ -35,6 +35,7 @@
353084 arm64 doesn't support sigpending system call
353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
353398 WARNING: unhandled amd64-solaris syscall: 207
+353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN
Modified: trunk/README.s390
==============================================================================
--- trunk/README.s390 (original)
+++ trunk/README.s390 Mon Oct 12 21:35:56 2015
@@ -22,6 +22,9 @@
- Some gcc versions use mvc to copy 4/8 byte values. This will affect
certain debug messages. For example, memcheck will complain about
4 one-byte reads/writes instead of just a single read/write.
+- The transactional-execution facility is not supported; it is masked
+ off from HWCAP.
+- The vector facility is not supported; it is masked off from HWCAP.
Hardware facilities
Modified: trunk/coregrind/m_initimg/initimg-linux.c
==============================================================================
--- trunk/coregrind/m_initimg/initimg-linux.c (original)
+++ trunk/coregrind/m_initimg/initimg-linux.c Mon Oct 12 21:35:56 2015
@@ -701,6 +701,12 @@
in syswrap-arm-linux.c rather than to base this on
conditional compilation. */
}
+# elif defined(VGP_s390x_linux)
+ {
+ /* Advertise hardware features "below" TE only. TE and VXRS
+ (and anything above) are not supported by Valgrind. */
+ auxv->u.a_val &= VKI_HWCAP_S390_TE - 1;
+ }
# endif
break;
# if defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
Modified: trunk/include/vki/vki-s390x-linux.h
==============================================================================
--- trunk/include/vki/vki-s390x-linux.h (original)
+++ trunk/include/vki/vki-s390x-linux.h Mon Oct 12 21:35:56 2015
@@ -800,12 +800,15 @@
#define VKI_PTRACE_POKEUSR_AREA 0x5001
//----------------------------------------------------------------------
-// From linux-2.6.16.60/include/asm-s390/elf.h
+// From linux-3.18/include/asm-s390/elf.h
//----------------------------------------------------------------------
typedef vki_s390_fp_regs vki_elf_fpregset_t;
typedef vki_s390_regs vki_elf_gregset_t;
+#define VKI_HWCAP_S390_TE 1024
+#define VKI_HWCAP_S390_VXRS 2048
+
//----------------------------------------------------------------------
// From linux-2.6.16.60/include/asm-s390/ucontext.h
|
|
From: Florian K. <fl...@ei...> - 2015-10-12 20:16:12
|
Patch applied as r15701. I also fixed the mips part which had the same problem. Florian On 10.10.2015 13:56, Matthias Schwarzott wrote: > Hi! > > I found this patch in the gentoo package. > > it changes the inline asm in m_libcassert.c to use local labels instead > of global ones. > > If the compiler duplicates the code it will not link otherwise. > > The patch can be applied against latest trunk, but I could not test it > as I have no ppc. > > Regards > Matthias > > > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Mark W. <mj...@re...> - 2015-10-12 20:16:10
|
On Mon, Oct 12, 2015 at 10:04:00PM +0200, Florian Krohm wrote:
> On 12.10.2015 16:30, sv...@va... wrote:
> > @@ -13396,7 +13396,8 @@
> > case 0x5A:
> > /* 0F 5A = CVTPS2PD -- convert 2 x F32 in low half mem/xmm to 2 x
> > F64 in xmm(G). */
> > - if (haveNo66noF2noF3(pfx) && sz == 4) {
> > + if (haveNo66noF2noF3(pfx)
> > + && sz == 4 || /* ignore redundant REX.W */ sz == 8) {
>
> I'm seeing this with gcc (GCC) 4.9.2 20141101 (Red Hat 4.9.2-1):
>
> priv/guest_amd64_toIR.c: In function 'dis_ESC_0F__SSE2':
> priv/guest_amd64_toIR.c:13400:11: warning: suggest parentheses around
> '&&' within '||' [-Wparentheses]
> && sz == 4 || /* ignore redundant REX.W */ sz == 8) {
Smart GCC. Yes, it should have parentheses around the (sz == 4 || sz == 8).
Fixed in VEX svn r3199.
Thanks,
Mark
|
|
From: <sv...@va...> - 2015-10-12 20:15:18
|
Author: florian
Date: Mon Oct 12 21:15:12 2015
New Revision: 15701
Log:
Use local labels instead of global labels (ppc and mips
specific code).
Modified:
trunk/coregrind/m_libcassert.c
Modified: trunk/coregrind/m_libcassert.c
==============================================================================
--- trunk/coregrind/m_libcassert.c (original)
+++ trunk/coregrind/m_libcassert.c Mon Oct 12 21:15:12 2015
@@ -87,8 +87,8 @@
{ UInt cia, r1, lr; \
__asm__ __volatile__( \
"mflr 0;" /* r0 = lr */ \
- "bl m_libcassert_get_ip;" /* lr = pc */ \
- "m_libcassert_get_ip:\n" \
+ "bl 0f;" /* lr = pc */ \
+ "0:\n" \
"mflr %0;" /* %0 = pc */ \
"mtlr 0;" /* restore lr */ \
"mr %1,1;" /* %1 = r1 */ \
@@ -106,8 +106,8 @@
{ ULong cia, r1, lr; \
__asm__ __volatile__( \
"mflr 0;" /* r0 = lr */ \
- "bl .m_libcassert_get_ip;" /* lr = pc */ \
- ".m_libcassert_get_ip:\n" \
+ "bl 0f;" /* lr = pc */ \
+ "0:\n" \
"mflr %0;" /* %0 = pc */ \
"mtlr 0;" /* restore lr */ \
"mr %1,1;" /* %1 = r1 */ \
@@ -180,8 +180,8 @@
# define GET_STARTREGS(srP) \
{ UInt pc, sp, fp, ra, gp; \
asm("move $8, $31;" /* t0 = ra */ \
- "bal m_libcassert_get_ip;" /* ra = pc */ \
- "m_libcassert_get_ip:\n" \
+ "bal 0f;" /* ra = pc */ \
+ "0:\n" \
"move %0, $31;" \
"move $31, $8;" /* restore lr */ \
"move %1, $29;" \
@@ -203,10 +203,10 @@
}
#elif defined(VGP_mips64_linux)
# define GET_STARTREGS(srP) \
- { ULong pc, sp, fp, ra, gp; \
+ { ULong pc, sp, fp, ra, gp; \
asm("move $8, $31;" /* t0 = ra */ \
- "bal m_libcassert_get_ip;" /* ra = pc */ \
- "m_libcassert_get_ip:\n" \
+ "bal 0f;" /* ra = pc */ \
+ "0:\n" \
"move %0, $31;" \
"move $31, $8;" /* restore lr */ \
"move %1, $29;" \
|
|
From: <sv...@va...> - 2015-10-12 20:14:56
|
Author: mjw
Date: Mon Oct 12 21:14:48 2015
New Revision: 3199
Log:
Bug 278744 cvtps2pd with redundant RexW followup.
Add correct parentheses as pointed out by GCC 4.9.2 -Wparentheses.
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Mon Oct 12 21:14:48 2015
@@ -13397,7 +13397,7 @@
/* 0F 5A = CVTPS2PD -- convert 2 x F32 in low half mem/xmm to 2 x
F64 in xmm(G). */
if (haveNo66noF2noF3(pfx)
- && sz == 4 || /* ignore redundant REX.W */ sz == 8) {
+ && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
delta = dis_CVTPS2PD_128( vbi, pfx, delta, False/*!isAvx*/ );
goto decode_success;
}
|
|
From: Florian K. <fl...@ei...> - 2015-10-12 20:04:10
|
On 12.10.2015 16:30, sv...@va... wrote:
> Author: mjw
> Date: Mon Oct 12 15:30:58 2015
> New Revision: 3198
>
> Log:
> Bug 278744 cvtps2pd with redundant RexW
>
> Modified:
> trunk/priv/guest_amd64_toIR.c
>
> Modified: trunk/priv/guest_amd64_toIR.c
> ==============================================================================
> --- trunk/priv/guest_amd64_toIR.c (original)
> +++ trunk/priv/guest_amd64_toIR.c Mon Oct 12 15:30:58 2015
> @@ -13396,7 +13396,8 @@
> case 0x5A:
> /* 0F 5A = CVTPS2PD -- convert 2 x F32 in low half mem/xmm to 2 x
> F64 in xmm(G). */
> - if (haveNo66noF2noF3(pfx) && sz == 4) {
> + if (haveNo66noF2noF3(pfx)
> + && sz == 4 || /* ignore redundant REX.W */ sz == 8) {
I'm seeing this with gcc (GCC) 4.9.2 20141101 (Red Hat 4.9.2-1):
priv/guest_amd64_toIR.c: In function 'dis_ESC_0F__SSE2':
priv/guest_amd64_toIR.c:13400:11: warning: suggest parentheses around
'&&' within '||' [-Wparentheses]
&& sz == 4 || /* ignore redundant REX.W */ sz == 8) {
Florian
|
Author: iraisr
Date: Mon Oct 12 20:10:42 2015
New Revision: 15700
Log:
Solaris syscall: Add support for pset family (207).
Provide scalar tests as well.
Fixes BZ #353398.
Modified:
trunk/NEWS
trunk/configure.ac
trunk/coregrind/m_syswrap/syswrap-solaris.c
trunk/include/vki/vki-scnums-solaris.h
trunk/include/vki/vki-solaris.h
trunk/memcheck/tests/solaris/scalar.c
trunk/memcheck/tests/solaris/scalar.stderr.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Oct 12 20:10:42 2015
@@ -34,6 +34,7 @@
353083 arm64 doesn't implement various xattr system calls
353084 arm64 doesn't support sigpending system call
353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
+353398 WARNING: unhandled amd64-solaris syscall: 207
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Mon Oct 12 20:10:42 2015
@@ -3142,6 +3142,30 @@
AM_CONDITIONAL(SOLARIS_TSOL_CLEARANCE, test x$solaris_tsol_clearance = xyes)
+# Solaris-specific check determining if the new pset() syscall subcode
+# PSET_GET_NAME is available. This subcode was added in Solaris 12 but
+# is missing on illumos and Solaris 11.
+#
+# C-level symbol: SOLARIS_PSET_GET_NAME
+# Automake-level symbol: SOLARIS_PSET_GET_NAME
+#
+AC_MSG_CHECKING([for PSET_GET_NAME (Solaris-specific)])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/pset.h>
+]], [[
+ return !(PSET_GET_NAME);
+]])], [
+solaris_pset_get_name=yes
+AC_MSG_RESULT([yes])
+AC_DEFINE([SOLARIS_PSET_GET_NAME], 1,
+ [Define to 1 if you have the `PSET_GET_NAME' constants.])
+], [
+solaris_pset_get_name=no
+AC_MSG_RESULT([no])
+])
+AM_CONDITIONAL(SOLARIS_PSET_GET_NAME, test x$solaris_pset_get_name = xyes)
+
+
# Solaris-specific check determining if the utimesys() syscall is
# available (on illumos and older Solaris).
#
@@ -3450,6 +3474,7 @@
AM_CONDITIONAL(SOLARIS_UUIDSYS_SYSCALL, false)
AM_CONDITIONAL(SOLARIS_TNDB_GET_TNIP, false)
AM_CONDITIONAL(SOLARIS_TSOL_CLEARANCE, false)
+AM_CONDITIONAL(SOLARIS_PSET_GET_NAME, false)
AM_CONDITIONAL(SOLARIS_UTIMESYS_SYSCALL, false)
AM_CONDITIONAL(SOLARIS_UTIMENSAT_SYSCALL, false)
AM_CONDITIONAL(SOLARIS_SPAWN_SYSCALL, false)
Modified: trunk/coregrind/m_syswrap/syswrap-solaris.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-solaris.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-solaris.c Mon Oct 12 20:10:42 2015
@@ -1035,6 +1035,7 @@
DECL_TEMPLATE(solaris, sys_facl);
DECL_TEMPLATE(solaris, sys_door);
DECL_TEMPLATE(solaris, sys_schedctl);
+DECL_TEMPLATE(solaris, sys_pset);
DECL_TEMPLATE(solaris, sys_resolvepath);
DECL_TEMPLATE(solaris, sys_lwp_mutex_timedlock);
DECL_TEMPLATE(solaris, sys_lwp_rwlock_sys);
@@ -9115,6 +9116,210 @@
POST_MEM_WRITE(a, sizeof(struct vki_sc_shared));
}
+PRE(sys_pset)
+{
+ /* Kernel: int pset(int subcode, long arg1, long arg2, long arg3,
+ long arg4); */
+ switch (ARG1 /* subcode */) {
+ case VKI_PSET_CREATE:
+ /* Libc: int pset_create(psetid_t *newpset); */
+ PRINT("sys_pset ( %ld, %#lx )", SARG1, ARG2);
+ PRE_REG_READ2(long, SC2("pset", "create"), int, subcode,
+ vki_psetid_t *, newpset);
+ PRE_MEM_WRITE("pset(newpset)", ARG2, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_DESTROY:
+ /* Libc: int pset_destroy(psetid_t pset); */
+ PRINT("sys_pset ( %ld, %ld )", SARG1, SARG2);
+ PRE_REG_READ2(long, SC2("pset", "destroy"), int, subcode,
+ vki_psetid_t, pset);
+ break;
+ case VKI_PSET_ASSIGN:
+ /* Libc: int pset_assign(psetid_t pset, processorid_t cpu,
+ psetid_t *opset); */
+ PRINT("sys_pset ( %ld, %ld, %ld, %#lx )", SARG1, SARG2, SARG3, ARG4);
+ PRE_REG_READ4(long, SC2("pset", "assign"), int, subcode,
+ vki_psetid_t, pset, vki_processorid_t, cpu,
+ vki_psetid_t *, opset);
+ if (ARG4 != 0)
+ PRE_MEM_WRITE("pset(opset)", ARG4, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_INFO:
+ /* Libc: int pset_info(psetid_t pset, int *type, uint_t *numcpus,
+ processorid_t *cpulist); */
+ PRINT("sys_pset ( %ld, %ld, %#lx, %#lx, %#lx )", SARG1, SARG2, ARG3,
+ ARG4, ARG5);
+ PRE_REG_READ5(long, SC2("pset", "info"), int, subcode, vki_psetid_t, pset,
+ int *, type, vki_uint_t *, numcpus,
+ vki_processorid_t *, cpulist);
+ if (ARG3 != 0)
+ PRE_MEM_WRITE("pset(type)", ARG3, sizeof(int));
+ if (ARG4 != 0)
+ PRE_MEM_WRITE("pset(numcpus)", ARG4, sizeof(vki_uint_t));
+ if ((ARG4 != 0) && (ARG5 != 0)) {
+ vki_uint_t *numcpus = (vki_uint_t *) ARG4;
+ if (ML_(safe_to_deref(numcpus, sizeof(vki_uint_t)))) {
+ PRE_MEM_WRITE("pset(cpulist)", ARG5,
+ *numcpus * sizeof(vki_processorid_t));
+ /* If cpulist buffer is not large enough, it will hold only as many
+ entries as fit in the buffer. However numcpus will contain the
+ real number of cpus which will be greater than originally passed
+ in. Stash the original value in unused ARG6. */
+ ARG6 = *numcpus;
+ }
+ }
+ break;
+ case VKI_PSET_BIND:
+ /* Libc: int pset_bind(psetid_t pset, idtype_t idtype, id_t id,
+ psetid_t *opset); */
+ PRINT("sys_pset ( %ld, %ld, %ld, %ld, %#lx )", SARG1, SARG2, SARG3,
+ SARG4, ARG5);
+ PRE_REG_READ5(long, SC2("pset", "bind"), int, subcode, vki_psetid_t, pset,
+ vki_idtype_t, idtype, vki_id_t, id, vki_psetid_t *, opset);
+ if (ARG5 != 0)
+ PRE_MEM_WRITE("pset(opset)", ARG5, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_BIND_LWP:
+ /* Libc: int pset_bind_lwp(psetid_t pset, id_t id, pid_t pid,
+ psetid_t *opset); */
+ PRINT("sys_pset ( %ld, %ld, %ld, %ld, %#lx )", SARG1, SARG2, SARG3,
+ SARG4, ARG5);
+ PRE_REG_READ5(long, SC2("pset", "bind_lwp"), int, subcode,
+ vki_psetid_t, pset, vki_id_t, id, vki_pid_t, pid,
+ vki_psetid_t *, opset);
+ if (ARG5 != 0)
+ PRE_MEM_WRITE("pset(opset)", ARG5, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_GETLOADAVG:
+ /* Libc: int pset_getloadavg(psetid_t pset, double loadavg[],
+ int nelem); */
+ PRINT("sys_pset ( %ld, %ld, %#lx, %ld )", SARG1, SARG2, ARG3, SARG4);
+ PRE_REG_READ4(long, SC2("pset", "getloadavg"), int, subcode,
+ vki_psetid_t, pset, double, loadavg[], int, nelem);
+ if (ARG3 != 0)
+ PRE_MEM_WRITE("pset(loadavg)", ARG3, SARG4 * sizeof(double));
+ break;
+ case VKI_PSET_LIST:
+ /* Libc: int pset_list(psetid_t *psetlist, uint_t *numpsets); */
+ PRINT("sys_pset ( %ld, %#lx, %#lx )", SARG1, ARG2, ARG3);
+ PRE_REG_READ3(long, SC2("pset", "list"), int, subcode,
+ vki_psetid_t *, psetlist, vki_uint_t *, numpsets);
+ if (ARG3 != 0)
+ PRE_MEM_WRITE("pset(numpsets)", ARG3, sizeof(vki_uint_t));
+ if ((ARG2 != 0) && (ARG3 != 0)) {
+ vki_uint_t *numpsets = (vki_uint_t *) ARG3;
+ if (ML_(safe_to_deref(numpsets, sizeof(vki_uint_t)))) {
+ PRE_MEM_WRITE("pset(psetlist)", ARG2,
+ *numpsets * sizeof(vki_psetid_t));
+ /* If psetlist buffer is not large enough, it will hold only as many
+ entries as fit in the buffer. However numpsets will contain the
+ real number of processor sets which will be greater than
+ originally passed in. Stash the original value in unused ARG6. */
+ ARG6 = *numpsets;
+ }
+ }
+ break;
+# if defined(SOLARIS_PSET_GET_NAME)
+ case VKI_PSET_GET_NAME:
+ /* Libc: int pset_get_name(psetid_t psetid, char *buf, uint_t len); */
+ PRINT("sys_pset ( %ld, %ld, %#lx, %ld )", SARG1, SARG2, ARG3, SARG4);
+ PRE_REG_READ4(long, SC2("pset", "get_name"), int, subcode,
+ vki_psetid_t, pset, char *, buf, vki_uint_t, len);
+ PRE_MEM_WRITE("pset(buf)", ARG3, ARG4);
+ break;
+# endif /* SOLARIS_PSET_GET_NAME */
+ case VKI_PSET_SETATTR:
+ /* Libc: int pset_setattr(psetid_t pset, uint_t attr); */
+ PRINT("sys_pset ( %ld, %ld, %ld )", SARG1, SARG2, ARG3);
+ PRE_REG_READ3(long, SC2("pset", "setattr"), int, subcode,
+ vki_psetid_t, pset, vki_uint_t, attr);
+ break;
+ case VKI_PSET_GETATTR:
+ /* Libc: int pset_getattr(psetid_t pset, uint_t *attr); */
+ PRINT("sys_pset ( %ld, %ld, %#lx )", SARG1, SARG2, ARG3);
+ PRE_REG_READ3(long, SC2("pset", "getattr"), int, subcode,
+ vki_psetid_t, pset, vki_uint_t *, attr);
+ PRE_MEM_WRITE("pset(attr)", ARG3, sizeof(vki_uint_t));
+ break;
+ case VKI_PSET_ASSIGN_FORCED:
+ /* Libc: int pset_assign_forced(psetid_t pset, processorid_t cpu,
+ psetid_t *opset); */
+ PRINT("sys_pset ( %ld, %ld, %ld, %#lx )", SARG1, SARG2, SARG3, ARG4);
+ PRE_REG_READ4(long, SC2("pset", "assign_forced"), int, subcode,
+ vki_psetid_t, pset, vki_processorid_t, cpu,
+ vki_psetid_t *, opset);
+ if (ARG4 != 0)
+ PRE_MEM_WRITE("pset(opset)", ARG4, sizeof(vki_psetid_t));
+ break;
+ default:
+ VG_(unimplemented)("Syswrap of pset syscall with subcode %ld.", SARG1);
+ /*NOTREACHED*/
+ break;
+ }
+}
+
+POST(sys_pset)
+{
+ switch (ARG1 /*subcode*/) {
+ case VKI_PSET_CREATE:
+ POST_MEM_WRITE(ARG2, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_DESTROY:
+ break;
+ case VKI_PSET_ASSIGN:
+ if (ARG4 != 0)
+ POST_MEM_WRITE(ARG4, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_INFO:
+ if (ARG3 != 0)
+ POST_MEM_WRITE(ARG3, sizeof(int));
+ if (ARG4 != 0)
+ POST_MEM_WRITE(ARG4, sizeof(vki_uint_t));
+ if ((ARG4 != 0) && (ARG5 != 0)) {
+ vki_uint_t *numcpus = (vki_uint_t *) ARG4;
+ POST_MEM_WRITE(ARG5, MIN(*numcpus, ARG6) * sizeof(vki_processorid_t));
+ }
+ break;
+ case VKI_PSET_BIND:
+ if (ARG5 != 0)
+ POST_MEM_WRITE(ARG5, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_BIND_LWP:
+ if (ARG5 != 0)
+ POST_MEM_WRITE(ARG5, sizeof(vki_psetid_t));
+ break;
+ case VKI_PSET_GETLOADAVG:
+ if (ARG3 != 0)
+ POST_MEM_WRITE(ARG3, MIN(SARG4, VKI_LOADAVG_NSTATS) * sizeof(double));
+ break;
+ case VKI_PSET_LIST:
+ if (ARG3 != 0)
+ POST_MEM_WRITE(ARG3, sizeof(vki_uint_t));
+ if ((ARG2 != 0) && (ARG3 != 0)) {
+ vki_uint_t *numpsets = (vki_uint_t *) ARG3;
+ POST_MEM_WRITE(ARG2, MIN(*numpsets, ARG6) * sizeof(vki_psetid_t));
+ }
+ break;
+# if defined(SOLARIS_PSET_GET_NAME)
+ case VKI_PSET_GET_NAME:
+ POST_MEM_WRITE(ARG3, VG_(strlen)((HChar *) ARG3) + 1);
+ break;
+# endif /* SOLARIS_PSET_GET_NAME */
+ case VKI_PSET_SETATTR:
+ break;
+ case VKI_PSET_GETATTR:
+ POST_MEM_WRITE(ARG3, sizeof(vki_uint_t));
+ break;
+ case VKI_PSET_ASSIGN_FORCED:
+ if (ARG4 != 0)
+ POST_MEM_WRITE(ARG4, sizeof(vki_psetid_t));
+ break;
+ default:
+ vg_assert(0);
+ break;
+ }
+}
+
PRE(sys_resolvepath)
{
/* int resolvepath(const char *path, char *buf, size_t bufsiz); */
@@ -9408,7 +9613,7 @@
break;
case VKI_ZONE_LOOKUP:
/* Libc: zoneid_t zone_lookup(const char *name); */
- PRINT("sys_zone ( %ld, %#lx )", SARG1, ARG2);
+ PRINT("sys_zone ( %ld, %#lx(%s) )", SARG1, ARG2, (HChar *) ARG2);
PRE_REG_READ2(long, SC2("zone", "lookup"), int, cmd,
const char *, name);
if (ARG2)
@@ -10197,6 +10402,7 @@
GENX_(__NR_setreuid, sys_setreuid), /* 202 */
GENX_(__NR_setregid, sys_setregid), /* 202 */
SOLXY(__NR_schedctl, sys_schedctl), /* 206 */
+ SOLXY(__NR_pset, sys_pset), /* 207 */
SOLXY(__NR_resolvepath, sys_resolvepath), /* 209 */
SOLXY(__NR_lwp_mutex_timedlock, sys_lwp_mutex_timedlock), /* 210 */
SOLXY(__NR_lwp_sema_timedwait, sys_lwp_sema_timedwait), /* 211 */
Modified: trunk/include/vki/vki-scnums-solaris.h
==============================================================================
--- trunk/include/vki/vki-scnums-solaris.h (original)
+++ trunk/include/vki/vki-scnums-solaris.h Mon Oct 12 20:10:42 2015
@@ -262,7 +262,7 @@
//#define __NR_install_utrap SYS_install_utrap
//#define __NR_signotify SYS_signotify
#define __NR_schedctl SYS_schedctl
-//#define __NR_pset SYS_pset
+#define __NR_pset SYS_pset
//#define SYS_sparc_utrap_install
#define __NR_resolvepath SYS_resolvepath
#define __NR_lwp_mutex_timedlock SYS_lwp_mutex_timedlock
Modified: trunk/include/vki/vki-solaris.h
==============================================================================
--- trunk/include/vki/vki-solaris.h (original)
+++ trunk/include/vki/vki-solaris.h Mon Oct 12 20:10:42 2015
@@ -581,6 +581,10 @@
#define vki_semid64_ds semid_ds64
+#include <sys/loadavg.h>
+#define VKI_LOADAVG_NSTATS LOADAVG_NSTATS
+
+
#include <sys/lwp.h>
#define VKI_LWP_DAEMON LWP_DAEMON
#define VKI_LWP_FSBASE _LWP_FSBASE
@@ -770,6 +774,24 @@
#define vki_procset_t procset_t
+#include <sys/pset.h>
+#define VKI_PSET_CREATE PSET_CREATE
+#define VKI_PSET_DESTROY PSET_DESTROY
+#define VKI_PSET_ASSIGN PSET_ASSIGN
+#define VKI_PSET_INFO PSET_INFO
+#define VKI_PSET_BIND PSET_BIND
+#define VKI_PSET_GETLOADAVG PSET_GETLOADAVG
+#define VKI_PSET_LIST PSET_LIST
+#define VKI_PSET_SETATTR PSET_SETATTR
+#define VKI_PSET_GETATTR PSET_GETATTR
+#define VKI_PSET_ASSIGN_FORCED PSET_ASSIGN_FORCED
+#define VKI_PSET_BIND_LWP PSET_BIND_LWP
+#if defined(SOLARIS_PSET_GET_NAME)
+#define VKI_PSET_GET_NAME PSET_GET_NAME
+#endif /* SOLARIS_PSET_GET_NAME */
+#define vki_psetid_t psetid_t
+
+
#include <sys/regset.h>
#define vki_prgregset_t prgregset_t
Modified: trunk/memcheck/tests/solaris/scalar.c
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.c (original)
+++ trunk/memcheck/tests/solaris/scalar.c Mon Oct 12 20:10:42 2015
@@ -1188,6 +1188,102 @@
SY(SYS_door, x0, x0 + ¶ms, x0, x0, x0, x0 + DOOR_CALL); FAIL;
}
+__attribute__((noinline))
+static void sys_pset(void)
+{
+ GO(SYS_pset, "(CREATE) 2s 1m");
+ SY(SYS_pset, x0 + PSET_CREATE, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset2(void)
+{
+ GO(SYS_pset, "(DESTROY) 2s 0m");
+ SY(SYS_pset, x0 + PSET_DESTROY, x0); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset3(void)
+{
+ GO(SYS_pset, "(ASSIGN) 4s 1m");
+ SY(SYS_pset, x0 + PSET_ASSIGN, x0 + 1, x0 + 1, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset4(void)
+{
+ GO(SYS_pset, "(INFO) 5s 3m");
+ SY(SYS_pset, x0 + PSET_INFO, x0 + 1, x0 + 1, x0 + 1, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset5(void)
+{
+ int type;
+ uint_t numcpus = x0 + 1;
+
+ GO(SYS_pset, "(INFO) 5s 1m");
+ SY(SYS_pset, x0 + PSET_INFO, x0 + 1, x0 + &type, x0 + &numcpus,
+ x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset6(void)
+{
+ GO(SYS_pset, "(BIND) 5s 1m");
+ SY(SYS_pset, x0 + PSET_BIND, x0 + 1, x0 + 1, x0 + 1, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset7(void)
+{
+ GO(SYS_pset, "(BIND_LWP) 5s 1m");
+ SY(SYS_pset, x0 + PSET_BIND_LWP, x0 + 1, x0 + 1, x0 + 1, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset8(void)
+{
+ GO(SYS_pset, "(GETLOADAVG) 4s 1m");
+ SY(SYS_pset, x0 + PSET_GETLOADAVG, x0 + 1, x0 + 1, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset9(void)
+{
+ GO(SYS_pset, "(LIST) 3s 1m");
+ SY(SYS_pset, x0 + PSET_LIST, x0 + 1, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset10(void)
+{
+ uint_t numpsets = x0 + 1;
+
+ GO(SYS_pset, "(LIST) 3s 1m");
+ SY(SYS_pset, x0 + PSET_LIST, x0 + 1, x0 + &numpsets);
+}
+
+__attribute__((noinline))
+static void sys_pset11(void)
+{
+ GO(SYS_pset, "(SETATTR) 3s 0m");
+ SY(SYS_pset, x0 + PSET_SETATTR, x0, x0); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset12(void)
+{
+ GO(SYS_pset, "(GETATTR) 3s 1m");
+ SY(SYS_pset, x0 + PSET_GETATTR, x0, x0 + 1); FAIL;
+}
+
+__attribute__((noinline))
+static void sys_pset13(void)
+{
+ GO(SYS_pset, "(ASSIGN_FORCED) 4s 1m");
+ SY(SYS_pset, x0 + PSET_ASSIGN_FORCED, x0 + 1, x0 + 1, x0 + 1); FAIL;
+}
__attribute__((noinline))
static void sys_lwp_rwlock(void)
@@ -2204,7 +2300,19 @@
SY(SYS_schedctl); SUCC;
/* SYS_pset 207 */
- /* XXX Missing wrapper. */
+ sys_pset();
+ sys_pset2();
+ sys_pset3();
+ sys_pset4();
+ sys_pset5();
+ sys_pset6();
+ sys_pset7();
+ sys_pset8();
+ sys_pset9();
+ sys_pset10();
+ sys_pset11();
+ sys_pset12();
+ sys_pset13();
/* SYS_sparc_utrap_install 208 */
/* XXX Missing wrapper. */
Modified: trunk/memcheck/tests/solaris/scalar.stderr.exp
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.stderr.exp (original)
+++ trunk/memcheck/tests/solaris/scalar.stderr.exp Mon Oct 12 20:10:42 2015
@@ -4142,6 +4142,237 @@
206: SYS_schedctl 0s 0m
---------------------------------------------------------
---------------------------------------------------------
+207: SYS_pset (CREATE) 2s 1m
+---------------------------------------------------------
+Syscall param pset_create(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_create(newpset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(newpset) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (DESTROY) 2s 0m
+---------------------------------------------------------
+Syscall param pset_destroy(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_destroy(pset) contains uninitialised byte(s)
+ ...
+
+---------------------------------------------------------
+207: SYS_pset (ASSIGN) 4s 1m
+---------------------------------------------------------
+Syscall param pset_assign(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_assign(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_assign(cpu) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_assign(opset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(opset) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (INFO) 5s 3m
+---------------------------------------------------------
+Syscall param pset_info(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(type) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(numcpus) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(cpulist) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(type) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param pset(numcpus) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (INFO) 5s 1m
+---------------------------------------------------------
+Syscall param pset_info(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(type) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(numcpus) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_info(cpulist) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(cpulist) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (BIND) 5s 1m
+---------------------------------------------------------
+Syscall param pset_bind(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind(idtype) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind(id) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind(opset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(opset) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (BIND_LWP) 5s 1m
+---------------------------------------------------------
+Syscall param pset_bind_lwp(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind_lwp(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind_lwp(id) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind_lwp(pid) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_bind_lwp(opset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(opset) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (GETLOADAVG) 4s 1m
+---------------------------------------------------------
+Syscall param pset_getloadavg(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_getloadavg(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_getloadavg(loadavg[]) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_getloadavg(nelem) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(loadavg) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (LIST) 3s 1m
+---------------------------------------------------------
+Syscall param pset_list(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_list(psetlist) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_list(numpsets) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(numpsets) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (LIST) 3s 1m
+---------------------------------------------------------
+Syscall param pset_list(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_list(psetlist) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_list(numpsets) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(psetlist) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (SETATTR) 3s 0m
+---------------------------------------------------------
+Syscall param pset_setattr(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_setattr(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_setattr(attr) contains uninitialised byte(s)
+ ...
+
+---------------------------------------------------------
+207: SYS_pset (GETATTR) 3s 1m
+---------------------------------------------------------
+Syscall param pset_getattr(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_getattr(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_getattr(attr) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(attr) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
+207: SYS_pset (ASSIGN_FORCED) 4s 1m
+---------------------------------------------------------
+Syscall param pset_assign_forced(subcode) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_assign_forced(pset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_assign_forced(cpu) contains uninitialised byte(s)
+ ...
+
+Syscall param pset_assign_forced(opset) contains uninitialised byte(s)
+ ...
+
+Syscall param pset(opset) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
209: SYS_resolvepath 3s 2m
---------------------------------------------------------
Syscall param resolvepath(path) contains uninitialised byte(s)
|
|
From: <sv...@va...> - 2015-10-12 14:32:10
|
Author: mjw
Date: Mon Oct 12 15:32:03 2015
New Revision: 15699
Log:
Bug #278744 cvtps2pd with redundant RexW.
Add testcase for VEX svn r3198.
Modified:
trunk/NEWS
trunk/none/tests/amd64/redundantRexW.c
trunk/none/tests/amd64/redundantRexW.stdout.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Oct 12 15:32:03 2015
@@ -30,6 +30,7 @@
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
where XXXXXX is the bug number as listed below.
+278744 cvtps2pd with redundant RexW
353083 arm64 doesn't implement various xattr system calls
353084 arm64 doesn't support sigpending system call
353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
Modified: trunk/none/tests/amd64/redundantRexW.c
==============================================================================
--- trunk/none/tests/amd64/redundantRexW.c (original)
+++ trunk/none/tests/amd64/redundantRexW.c Mon Oct 12 15:32:03 2015
@@ -596,6 +596,23 @@
after_test( "rex.WB subsd -0x8(%r13),%xmm1", regs, mem );
}
+ /* cvtps2pd mem, reg 48 0f 5a 07 rex.W cvtps2pd (%rdi),%xmm0 */
+ {
+ before_test( regs, mem );
+ __asm__ __volatile__(
+ "movq %0, %%r14\n"
+ "\tmovq %1, %%r15\n"
+ LOAD_XMMREGS_from_r14
+ "\tmovq %%r15, %%rdi\n"
+ "\t.byte 0x48,0x0f,0x5a,0x07\n"
+ SAVE_XMMREGS_to_r14
+ : /*out*/ : /*in*/ "r"(regs), "r"( -0 + (char*)&mem->dqw[2] )
+ : /*trash*/ "r14","r15","memory", XMMREGS,
+ "rdi"
+ );
+ after_test( "rex.W cvtps2pd (%rdi),%xmm0", regs, mem );
+ }
+
free(regs);
free(mem);
return 0;
Modified: trunk/none/tests/amd64/redundantRexW.stdout.exp
==============================================================================
--- trunk/none/tests/amd64/redundantRexW.stdout.exp (original)
+++ trunk/none/tests/amd64/redundantRexW.stdout.exp Mon Oct 12 15:32:03 2015
@@ -648,3 +648,29 @@
%xmm15 ................................
}
+after "rex.W cvtps2pd (%rdi),%xmm0" (dqws in order [15 .. 0]) {
+ [0] ................................
+ [1] ................................
+ [2] ................................
+ [3] ................................
+ [4] ................................
+}
+after "rex.W cvtps2pd (%rdi),%xmm0" (xmms in order [15..0]) {
+ %xmm 0 113a1c7d5554535213bd9cffd4535251
+ %xmm 1 ................................
+ %xmm 2 ................................
+ %xmm 3 ................................
+ %xmm 4 ................................
+ %xmm 5 ................................
+ %xmm 6 ................................
+ %xmm 7 ................................
+ %xmm 8 ................................
+ %xmm 9 ................................
+ %xmm10 ................................
+ %xmm11 ................................
+ %xmm12 ................................
+ %xmm13 ................................
+ %xmm14 ................................
+ %xmm15 ................................
+}
+
|
|
From: <sv...@va...> - 2015-10-12 14:31:07
|
Author: mjw
Date: Mon Oct 12 15:30:58 2015
New Revision: 3198
Log:
Bug 278744 cvtps2pd with redundant RexW
Modified:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c
==============================================================================
--- trunk/priv/guest_amd64_toIR.c (original)
+++ trunk/priv/guest_amd64_toIR.c Mon Oct 12 15:30:58 2015
@@ -13396,7 +13396,8 @@
case 0x5A:
/* 0F 5A = CVTPS2PD -- convert 2 x F32 in low half mem/xmm to 2 x
F64 in xmm(G). */
- if (haveNo66noF2noF3(pfx) && sz == 4) {
+ if (haveNo66noF2noF3(pfx)
+ && sz == 4 || /* ignore redundant REX.W */ sz == 8) {
delta = dis_CVTPS2PD_128( vbi, pfx, delta, False/*!isAvx*/ );
goto decode_success;
}
|
|
From: Ivo R. <ivo...@gm...> - 2015-10-11 20:39:25
|
Hi developers,
Please could you review my change in the Valgrind ELF debug info reader:
https://bugs.kde.org/show_bug.cgi?id=353802
Although I found the problem on Solaris, any platform could benefit from
this fix.
Therefore I ask for code review first.
Kind regards,
I.
|
|
From: Matthias S. <zz...@ge...> - 2015-10-10 11:57:20
|
Hi! I found this patch in the gentoo package. it changes the inline asm in m_libcassert.c to use local labels instead of global ones. If the compiler duplicates the code it will not link otherwise. The patch can be applied against latest trunk, but I could not test it as I have no ppc. Regards Matthias |
|
From: Victor R. <vm....@gm...> - 2015-10-09 16:11:51
|
On Wed, Oct 7, 2015 at 6:29 AM, Mark Wielaard <mj...@re...> wrote: > On Tue, 2015-10-06 at 19:17 -0500, Victor Rodriguez wrote: >> On Tue, Oct 6, 2015 at 5:53 PM, Rhys Kidd <rhy...@gm...> wrote: >> > What platform (OS, architecture) and Valgrind release version are you >> > running 'make regtest' on there? >> >> I am running it on Clear Linux OS ( https://clearlinux.org/) in a >> Haswell machine ( 4th generation x86) >> >> Any clue ? >> >> What does this test do ? > > The test (or actually the whole group) tests the interaction between > valgrind and gdb. It it probably a good idea to first see whether the > "basic" tools tests look sane with: make nonexp-regtest > > If those look sane then it will help to run tests that seem to hang > individually with > perl tests/vg_regtest gdbserver_tests/mcblocklistsearch.vgtest > > So try running that first outside mock and see if you can see where the > script seems to stall. > > Cheers, > > Mark Thanks a lot Mark That works just fine i had to split the test a bit caus etwo of them are hanging I remove the memcheck and none because of that reason . So my spec now looks like : 48 %build 49 # -fexceptions causes memcheck link command to fail when built with GCC 5.1 50 export CFLAGS=`echo $CFLAGS | sed s,-fexceptions,,g | sed s:-Wp,-D_FORTIFY_SOURCE=2::g | sed s:-fstack-protector::g ` 51 ./autogen.sh 52 %configure --disable-static --enable-only64bit --enable-tls 53 make V=1 %{?_smp_mflags} 54 55 %check 56 make VERBOSE=1 V=1 %{?_smp_mflags} check 57 /usr/bin/perl tests/vg_regtest cachegrind ||: 58 /usr/bin/perl tests/vg_regtest callgrind ||: 59 /usr/bin/perl tests/vg_regtest massif ||: 60 /usr/bin/perl tests/vg_regtest lackey ||: 61 /usr/bin/perl tests/vg_regtest helgrind ||: 62 /usr/bin/perl tests/vg_regtest drd ||: In the mean time we will debug what is worn and why they are hanging or failing Best Regards Victor Rodriguez |
|
From: Mark W. <mj...@re...> - 2015-10-07 11:29:50
|
On Tue, 2015-10-06 at 19:17 -0500, Victor Rodriguez wrote: > On Tue, Oct 6, 2015 at 5:53 PM, Rhys Kidd <rhy...@gm...> wrote: > > What platform (OS, architecture) and Valgrind release version are you > > running 'make regtest' on there? > > I am running it on Clear Linux OS ( https://clearlinux.org/) in a > Haswell machine ( 4th generation x86) > > Any clue ? > > What does this test do ? The test (or actually the whole group) tests the interaction between valgrind and gdb. It it probably a good idea to first see whether the "basic" tools tests look sane with: make nonexp-regtest If those look sane then it will help to run tests that seem to hang individually with perl tests/vg_regtest gdbserver_tests/mcblocklistsearch.vgtest So try running that first outside mock and see if you can see where the script seems to stall. Cheers, Mark |
|
From: Victor R. <vm....@gm...> - 2015-10-07 00:26:07
|
Also I forgot to add that I am building using mock :) Regards Victor Rodriguez On Tue, Oct 6, 2015 at 7:17 PM, Victor Rodriguez <vm....@gm...> wrote: > On Tue, Oct 6, 2015 at 5:53 PM, Rhys Kidd <rhy...@gm...> wrote: >> Hello Victor, >> >> What platform (OS, architecture) and Valgrind release version are you >> running 'make regtest' on there? > > Hi Rhys > > I am running it on Clear Linux OS ( https://clearlinux.org/) in a > Haswell machine ( 4th generation x86) > > Any clue ? > > What does this test do ? > > I really appreciate all the help > > >> Regards, >> Rhys >> >> >> On Wednesday, 7 October 2015, Victor Rodriguez <vm....@gm...> wrote: >>> >>> On Tue, Oct 6, 2015 at 12:01 PM, Tom Hughes <to...@co...> wrote: >>> > On 06/10/15 17:49, Victor Rodriguez wrote: >>> > >>> >> I had the idea that I was running the make check of valgrind: >>> >> >>> >> # make check >>> >> >>> >> But apparently and in my build.log there is something wrong like if >>> >> the tests are not executed >>> >> >>> >> >>> >> I can see that the tests are generated well: >>> >> >>> >> check_headers_and_includes >>> >> check_makefile_consistency >>> >> [...] >>> >> >>> >> I wonder if there is any requirement I am missing ( any package that >>> >> are necessary for this) or how can I run them manually >>> > >>> > >>> > You want "make regtest" not "make check". The latter only builds the >>> > tests >>> > while the former runs them as well. >>> >>> Yea now I see , thanks a lot Tom it really help us ;) >>> >>> However now it get hang here : >>> >>> -- Running tests in gdbserver_tests ----------------------------------- >>> hginfo: (skipping, prereq failed: test -e gdb.eval) >>> hgtls: valgrind --tool=helgrind --vgdb=yes --vgdb-error=0 >>> --vgdb-prefix=./vgdb-prefix-hgtls -q ./../none/tests/tls (progB: >>> ./gdb --quiet -l 60 --nx ../none/tests/tls) >>> >>> We will check and see why this is happening . The good part is that >>> now we are actually running some tests :) >>> >>> Regards >>> >>> Victor >>> >>> > Tom >>> > >>> > -- >>> > Tom Hughes (to...@co...) >>> > http://compton.nu/ >>> >>> >>> ------------------------------------------------------------------------------ >>> _______________________________________________ >>> Valgrind-developers mailing list >>> Val...@li... >>> https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: Victor R. <vm....@gm...> - 2015-10-07 00:18:02
|
On Tue, Oct 6, 2015 at 5:53 PM, Rhys Kidd <rhy...@gm...> wrote: > Hello Victor, > > What platform (OS, architecture) and Valgrind release version are you > running 'make regtest' on there? Hi Rhys I am running it on Clear Linux OS ( https://clearlinux.org/) in a Haswell machine ( 4th generation x86) Any clue ? What does this test do ? I really appreciate all the help > Regards, > Rhys > > > On Wednesday, 7 October 2015, Victor Rodriguez <vm....@gm...> wrote: >> >> On Tue, Oct 6, 2015 at 12:01 PM, Tom Hughes <to...@co...> wrote: >> > On 06/10/15 17:49, Victor Rodriguez wrote: >> > >> >> I had the idea that I was running the make check of valgrind: >> >> >> >> # make check >> >> >> >> But apparently and in my build.log there is something wrong like if >> >> the tests are not executed >> >> >> >> >> >> I can see that the tests are generated well: >> >> >> >> check_headers_and_includes >> >> check_makefile_consistency >> >> [...] >> >> >> >> I wonder if there is any requirement I am missing ( any package that >> >> are necessary for this) or how can I run them manually >> > >> > >> > You want "make regtest" not "make check". The latter only builds the >> > tests >> > while the former runs them as well. >> >> Yea now I see , thanks a lot Tom it really help us ;) >> >> However now it get hang here : >> >> -- Running tests in gdbserver_tests ----------------------------------- >> hginfo: (skipping, prereq failed: test -e gdb.eval) >> hgtls: valgrind --tool=helgrind --vgdb=yes --vgdb-error=0 >> --vgdb-prefix=./vgdb-prefix-hgtls -q ./../none/tests/tls (progB: >> ./gdb --quiet -l 60 --nx ../none/tests/tls) >> >> We will check and see why this is happening . The good part is that >> now we are actually running some tests :) >> >> Regards >> >> Victor >> >> > Tom >> > >> > -- >> > Tom Hughes (to...@co...) >> > http://compton.nu/ >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Valgrind-developers mailing list >> Val...@li... >> https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: Rhys K. <rhy...@gm...> - 2015-10-06 22:53:33
|
Hello Victor, What platform (OS, architecture) and Valgrind release version are you running 'make regtest' on there? Regards, Rhys On Wednesday, 7 October 2015, Victor Rodriguez <vm....@gm...> wrote: > On Tue, Oct 6, 2015 at 12:01 PM, Tom Hughes <to...@co... <javascript:;>> > wrote: > > On 06/10/15 17:49, Victor Rodriguez wrote: > > > >> I had the idea that I was running the make check of valgrind: > >> > >> # make check > >> > >> But apparently and in my build.log there is something wrong like if > >> the tests are not executed > >> > >> > >> I can see that the tests are generated well: > >> > >> check_headers_and_includes > >> check_makefile_consistency > >> [...] > >> > >> I wonder if there is any requirement I am missing ( any package that > >> are necessary for this) or how can I run them manually > > > > > > You want "make regtest" not "make check". The latter only builds the > tests > > while the former runs them as well. > > Yea now I see , thanks a lot Tom it really help us ;) > > However now it get hang here : > > -- Running tests in gdbserver_tests ----------------------------------- > hginfo: (skipping, prereq failed: test -e gdb.eval) > hgtls: valgrind --tool=helgrind --vgdb=yes --vgdb-error=0 > --vgdb-prefix=./vgdb-prefix-hgtls -q ./../none/tests/tls (progB: > ./gdb --quiet -l 60 --nx ../none/tests/tls) > > We will check and see why this is happening . The good part is that > now we are actually running some tests :) > > Regards > > Victor > > > Tom > > > > -- > > Tom Hughes (to...@co... <javascript:;>) > > http://compton.nu/ > > > ------------------------------------------------------------------------------ > _______________________________________________ > Valgrind-developers mailing list > Val...@li... <javascript:;> > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Victor R. <vm....@gm...> - 2015-10-06 19:56:27
|
On Tue, Oct 6, 2015 at 12:01 PM, Tom Hughes <to...@co...> wrote: > On 06/10/15 17:49, Victor Rodriguez wrote: > >> I had the idea that I was running the make check of valgrind: >> >> # make check >> >> But apparently and in my build.log there is something wrong like if >> the tests are not executed >> >> >> I can see that the tests are generated well: >> >> check_headers_and_includes >> check_makefile_consistency >> [...] >> >> I wonder if there is any requirement I am missing ( any package that >> are necessary for this) or how can I run them manually > > > You want "make regtest" not "make check". The latter only builds the tests > while the former runs them as well. Yea now I see , thanks a lot Tom it really help us ;) However now it get hang here : -- Running tests in gdbserver_tests ----------------------------------- hginfo: (skipping, prereq failed: test -e gdb.eval) hgtls: valgrind --tool=helgrind --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-hgtls -q ./../none/tests/tls (progB: ./gdb --quiet -l 60 --nx ../none/tests/tls) We will check and see why this is happening . The good part is that now we are actually running some tests :) Regards Victor > Tom > > -- > Tom Hughes (to...@co...) > http://compton.nu/ |
|
From: Tom H. <to...@co...> - 2015-10-06 17:01:48
|
On 06/10/15 17:49, Victor Rodriguez wrote: > I had the idea that I was running the make check of valgrind: > > # make check > > But apparently and in my build.log there is something wrong like if > the tests are not executed > > > I can see that the tests are generated well: > > check_headers_and_includes > check_makefile_consistency > [...] > > I wonder if there is any requirement I am missing ( any package that > are necessary for this) or how can I run them manually You want "make regtest" not "make check". The latter only builds the tests while the former runs them as well. Tom -- Tom Hughes (to...@co...) http://compton.nu/ |
|
From: Victor R. <vm....@gm...> - 2015-10-06 16:49:14
|
Hi team I had the idea that I was running the make check of valgrind: # make check But apparently and in my build.log there is something wrong like if the tests are not executed I can see that the tests are generated well: check_headers_and_includes check_makefile_consistency [...] I wonder if there is any requirement I am missing ( any package that are necessary for this) or how can I run them manually Best regards Victor Rodriguez |
|
From: <sv...@va...> - 2015-10-04 09:23:15
|
Author: rhyskidd
Date: Sun Oct 4 10:23:07 2015
New Revision: 15698
Log:
Plumb malloc_zone_memalign() through malloc_zone_t struct on OS X. No regressions.
Modified:
trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
Modified: trunk/coregrind/m_replacemalloc/vg_replace_malloc.c
==============================================================================
--- trunk/coregrind/m_replacemalloc/vg_replace_malloc.c (original)
+++ trunk/coregrind/m_replacemalloc/vg_replace_malloc.c Sun Oct 4 10:23:07 2015
@@ -1181,7 +1181,7 @@
NULL, // batch_free
NULL, // GrP fixme: introspect
2, // version (GrP fixme 3?)
- NULL, /* memalign */ // DDD: this field exists in Mac OS 10.6, but not 10.5.
+ (void*)VG_REPLACE_FUNCTION_EZU(10100,VG_Z_LIBC_SONAME,malloc_zone_memalign), // DDD: this field exists in Mac OS 10.6+
NULL, /* free_definite_size */
NULL, /* pressure_relief */
};
|
|
From: <sv...@va...> - 2015-10-03 04:47:12
|
Author: rhyskidd
Date: Sat Oct 3 05:47:04 2015
New Revision: 15697
Log:
Follow up to r15628, properly guard none/tests/ansi and fix a typo. n-i-bz.
Modified:
trunk/none/tests/Makefile.am
trunk/none/tests/ansi.vgtest
Modified: trunk/none/tests/Makefile.am
==============================================================================
--- trunk/none/tests/Makefile.am (original)
+++ trunk/none/tests/Makefile.am Sat Oct 3 05:47:04 2015
@@ -250,7 +250,7 @@
check_PROGRAMS += rlimit64_nofile
endif
-# clang does now know -ansi
+# clang does not know -ansi
if ! COMPILER_IS_CLANG
check_PROGRAMS += ansi
endif
Modified: trunk/none/tests/ansi.vgtest
==============================================================================
--- trunk/none/tests/ansi.vgtest (original)
+++ trunk/none/tests/ansi.vgtest Sat Oct 3 05:47:04 2015
@@ -1 +1,2 @@
prog: ansi
+prereq: test -x ansi
|
|
From: <sv...@va...> - 2015-10-02 16:45:09
|
Author: iraisr
Date: Fri Oct 2 17:45:01 2015
New Revision: 15696
Log:
Explicitly mark the stack as non-executable for Solaris
binaries (Valgrind launcher and tools).
Follow-up for r15692. n-i-bz
Modified:
trunk/Makefile.tool.am
trunk/coregrind/Makefile.am
Modified: trunk/Makefile.tool.am
==============================================================================
--- trunk/Makefile.tool.am (original)
+++ trunk/Makefile.tool.am Fri Oct 2 17:45:01 2015
@@ -37,7 +37,8 @@
TOOL_LDFLAGS_COMMON_DARWIN = \
-nodefaultlibs -nostartfiles -Wl,-u,__start -Wl,-e,__start
TOOL_LDFLAGS_COMMON_SOLARIS = \
- -static -nodefaultlibs -nostartfiles -u _start
+ -static -nodefaultlibs -nostartfiles -u _start \
+ -Wl,-M,/usr/lib/ld/map.noexstk
TOOL_LDFLAGS_X86_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
Modified: trunk/coregrind/Makefile.am
==============================================================================
--- trunk/coregrind/Makefile.am (original)
+++ trunk/coregrind/Makefile.am Fri Oct 2 17:45:01 2015
@@ -66,6 +66,9 @@
valgrind_CFLAGS += -static
valgrind_LDFLAGS += -Wl,-z,noexecstack
endif
+if VGCONF_OS_IS_SOLARIS
+valgrind_LDFLAGS += -Wl,-M,/usr/lib/ld/map.noexstk
+endif
vgdb_SOURCES = vgdb.c
|