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
(7) |
|
2
(13) |
3
(14) |
4
(11) |
5
(10) |
6
|
7
(5) |
8
(12) |
|
9
(14) |
10
(19) |
11
(16) |
12
(13) |
13
(11) |
14
(4) |
15
(5) |
|
16
(11) |
17
(10) |
18
(4) |
19
(15) |
20
(12) |
21
(11) |
22
|
|
23
|
24
|
25
|
26
(1) |
27
(6) |
28
(10) |
29
(10) |
|
30
(1) |
31
|
|
|
|
|
|
|
From: <sv...@va...> - 2014-03-18 23:03:45
|
Author: sewardj
Date: Tue Mar 18 23:03:38 2014
New Revision: 13879
Log:
Update.
Modified:
trunk/README.aarch64
Modified: trunk/README.aarch64
==============================================================================
--- trunk/README.aarch64 (original)
+++ trunk/README.aarch64 Tue Mar 18 23:03:38 2014
@@ -7,7 +7,7 @@
instructions and can run almost anything generated by gcc-4.8.2 -O2.
The port is under active development.
-Current limitations, as of mid-Feb 2014.
+Current limitations, as of mid-March 2014.
* limited support of vector (SIMD) instructions. Initial target is
support for instructions created by gcc-4.8.2 -O3 (via vectorisation).
@@ -29,10 +29,10 @@
small examples. Other tools appear to at least not crash when running
/bin/date.
-Enough syscalls are supported for /bin/ssh and /bin/bash to work. In
-particular that means that programs that create and use TCP sockets
-are likely to work.
-
+Enough syscalls and instructions are supported for substantial
+programs to work. Firefox 26 is able to start up and quit. The noise
+level from Memcheck is low enough to make it practical to use for real
+debugging.
Building
|
|
From: <sv...@va...> - 2014-03-18 23:03:08
|
Author: sewardj
Date: Tue Mar 18 23:02:59 2014
New Revision: 13878
Log:
Make Helgrind test cases build on arm64-linux.
Modified:
trunk/helgrind/tests/annotate_hbefore.c
trunk/helgrind/tests/tc07_hbl1.c
trunk/helgrind/tests/tc08_hbl2.c
trunk/helgrind/tests/tc11_XCHG.c
Modified: trunk/helgrind/tests/annotate_hbefore.c
==============================================================================
--- trunk/helgrind/tests/annotate_hbefore.c (original)
+++ trunk/helgrind/tests/annotate_hbefore.c Tue Mar 18 23:02:59 2014
@@ -167,6 +167,39 @@
return success;
}
+#elif defined(VGA_arm64)
+
+// arm64
+/* return 1 if success, 0 if failure */
+UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
+{
+ UWord old, success;
+ UWord block[2] = { (UWord)addr, nyu };
+
+ /* Fetch the old value, and set the reservation */
+ __asm__ __volatile__ (
+ "ldxr %0, [%1]" "\n"
+ : /*out*/ "=r"(old)
+ : /*in*/ "r"(addr)
+ );
+
+ /* If the old value isn't as expected, we've had it */
+ if (old != expected) return 0;
+
+ /* otherwise try to stuff the new value in */
+ __asm__ __volatile__(
+ "ldr x4, [%1, #0]" "\n\t"
+ "ldr x5, [%1, #8]" "\n\t"
+ "stxr w6, x5, [x4, #0]" "\n\t"
+ "eor %0, x6, #1" "\n\t"
+ : /*out*/ "=r"(success)
+ : /*in*/ "r"(&block[0])
+ : /*trash*/ "x4","x5","x6","memory"
+ );
+ assert(success == 0 || success == 1);
+ return success;
+}
+
#elif defined(VGA_s390x)
// s390x
Modified: trunk/helgrind/tests/tc07_hbl1.c
==============================================================================
--- trunk/helgrind/tests/tc07_hbl1.c (original)
+++ trunk/helgrind/tests/tc07_hbl1.c Tue Mar 18 23:02:59 2014
@@ -13,6 +13,7 @@
#undef PLAT_ppc32_linux
#undef PLAT_ppc64_linux
#undef PLAT_arm_linux
+#undef PLAT_arm64_linux
#undef PLAT_s390x_linux
#undef PLAT_mips32_linux
@@ -28,8 +29,10 @@
# define PLAT_ppc32_linux 1
#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__)
# define PLAT_ppc64_linux 1
-#elif defined(__linux__) && defined(__arm__)
+#elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
# define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__aarch64__) && !defined(__arm__)
+# define PLAT_arm64_linux 1
#elif defined(__linux__) && defined(__s390x__)
# define PLAT_s390x_linux 1
#elif defined(__linux__) && defined(__mips__)
@@ -64,6 +67,18 @@
: /*out*/ : /*in*/ "r"(&(_lval)) \
: /*trash*/ "r8", "r9", "cc", "memory" \
);
+#elif defined(PLAT_arm64_linux)
+# define INC(_lval,_lqual) \
+ __asm__ __volatile__( \
+ "1:\n" \
+ " ldxr w8, [%0, #0]\n" \
+ " add w8, w8, #1\n" \
+ " stxr w9, w8, [%0, #0]\n" \
+ " cmp w9, #0\n" \
+ " bne 1b\n" \
+ : /*out*/ : /*in*/ "r"(&(_lval)) \
+ : /*trash*/ "x8", "x9", "cc", "memory" \
+ );
#elif defined(PLAT_s390x_linux)
# define INC(_lval,_lqual) \
__asm__ __volatile__( \
Modified: trunk/helgrind/tests/tc08_hbl2.c
==============================================================================
--- trunk/helgrind/tests/tc08_hbl2.c (original)
+++ trunk/helgrind/tests/tc08_hbl2.c Tue Mar 18 23:02:59 2014
@@ -29,6 +29,7 @@
#undef PLAT_ppc32_linux
#undef PLAT_ppc64_linux
#undef PLAT_arm_linux
+#undef PLAT_arm64_linux
#undef PLAT_s390x_linux
#undef PLAT_mips32_linux
#undef PLAT_mips64_linux
@@ -45,8 +46,10 @@
# define PLAT_ppc32_linux 1
#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__)
# define PLAT_ppc64_linux 1
-#elif defined(__linux__) && defined(__arm__)
+#elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
# define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__aarch64__) && !defined(__arm__)
+# define PLAT_arm64_linux 1
#elif defined(__linux__) && defined(__s390x__)
# define PLAT_s390x_linux 1
#elif defined(__linux__) && defined(__mips__)
@@ -86,6 +89,18 @@
: /*out*/ : /*in*/ "r"(&(_lval)) \
: /*trash*/ "r8", "r9", "cc", "memory" \
);
+#elif defined(PLAT_arm64_linux)
+# define INC(_lval,_lqual) \
+ __asm__ __volatile__( \
+ "1:\n" \
+ " ldxr w8, [%0, #0]\n" \
+ " add w8, w8, #1\n" \
+ " stxr w9, w8, [%0, #0]\n" \
+ " cmp w9, #0\n" \
+ " bne 1b\n" \
+ : /*out*/ : /*in*/ "r"(&(_lval)) \
+ : /*trash*/ "x8", "x9", "cc", "memory" \
+ );
#elif defined(PLAT_s390x_linux)
# define INC(_lval,_lqual) \
__asm__ __volatile__( \
Modified: trunk/helgrind/tests/tc11_XCHG.c
==============================================================================
--- trunk/helgrind/tests/tc11_XCHG.c (original)
+++ trunk/helgrind/tests/tc11_XCHG.c Tue Mar 18 23:02:59 2014
@@ -31,8 +31,10 @@
# define PLAT_ppc32_linux 1
#elif defined(__linux__) && defined(__powerpc__) && defined(__powerpc64__)
# define PLAT_ppc64_linux 1
-#elif defined(__linux__) && defined(__arm__)
+#elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
# define PLAT_arm_linux 1
+#elif defined(__linux__) && defined(__aarch64__) && !defined(__arm__)
+# define PLAT_arm64_linux 1
#elif defined(__linux__) && defined(__s390x__)
# define PLAT_s390x_linux 1
#elif defined(__linux__) && defined(__mips__)
@@ -91,7 +93,7 @@
XCHG_M_R(_addr,_lval)
#elif defined(PLAT_ppc32_linux) || defined(PLAT_ppc64_linux) \
- || defined(PLAT_arm_linux)
+ || defined(PLAT_arm_linux) || defined(PLAT_arm64_linux)
# if defined(HAVE_BUILTIN_ATOMIC)
# define XCHG_M_R(_addr,_lval) \
do { \
|
|
From: <sv...@va...> - 2014-03-18 17:54:08
|
Author: bart
Date: Tue Mar 18 17:53:56 2014
New Revision: 13877
Log:
drd: Fix pthread_rwlock_timed{rd,wr}lock intercepts (#332263)
From: Ivo Raisr <iv...@iv...>
Modified:
trunk/drd/drd_pthread_intercepts.c
Modified: trunk/drd/drd_pthread_intercepts.c
==============================================================================
--- trunk/drd/drd_pthread_intercepts.c (original)
+++ trunk/drd/drd_pthread_intercepts.c Tue Mar 18 17:53:56 2014
@@ -1162,14 +1162,15 @@
(pthread_rwlock_t* rwlock), (rwlock));
static __always_inline
-int pthread_rwlock_timedrdlock_intercept(pthread_rwlock_t* rwlock)
+int pthread_rwlock_timedrdlock_intercept(pthread_rwlock_t* rwlock,
+ const struct timespec *timeout)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_RWLOCK_RDLOCK,
rwlock, 0, 0, 0, 0);
- CALL_FN_W_W(ret, fn, rwlock);
+ CALL_FN_W_WW(ret, fn, rwlock, timeout);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_RWLOCK_RDLOCK,
rwlock, ret == 0, 0, 0, 0);
return ret;
@@ -1177,17 +1178,19 @@
PTH_FUNCS(int,
pthreadZurwlockZutimedrdlock, pthread_rwlock_timedrdlock_intercept,
- (pthread_rwlock_t* rwlock), (rwlock));
+ (pthread_rwlock_t* rwlock, const struct timespec *timeout),
+ (rwlock, timeout));
static __always_inline
-int pthread_rwlock_timedwrlock_intercept(pthread_rwlock_t* rwlock)
+int pthread_rwlock_timedwrlock_intercept(pthread_rwlock_t* rwlock,
+ const struct timespec *timeout)
{
int ret;
OrigFn fn;
VALGRIND_GET_ORIG_FN(fn);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_RWLOCK_WRLOCK,
rwlock, 0, 0, 0, 0);
- CALL_FN_W_W(ret, fn, rwlock);
+ CALL_FN_W_WW(ret, fn, rwlock, timeout);
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_RWLOCK_WRLOCK,
rwlock, ret == 0, 0, 0, 0);
return ret;
@@ -1195,7 +1198,8 @@
PTH_FUNCS(int,
pthreadZurwlockZutimedwrlock, pthread_rwlock_timedwrlock_intercept,
- (pthread_rwlock_t* rwlock), (rwlock));
+ (pthread_rwlock_t* rwlock, const struct timespec *timeout),
+ (rwlock, timeout));
static __always_inline
int pthread_rwlock_tryrdlock_intercept(pthread_rwlock_t* rwlock)
|
|
From: <sv...@va...> - 2014-03-18 08:46:03
|
Author: bart
Date: Tue Mar 18 08:45:51 2014
New Revision: 13876
Log:
drd/tests/atomic_var: Avoid that platform-specific code can trigger a false negative
Modified:
trunk/drd/tests/atomic_var.c
trunk/drd/tests/atomic_var.stderr.exp
trunk/drd/tests/atomic_var.vgtest
Modified: trunk/drd/tests/atomic_var.c
==============================================================================
--- trunk/drd/tests/atomic_var.c (original)
+++ trunk/drd/tests/atomic_var.c Tue Mar 18 08:45:51 2014
@@ -23,6 +23,8 @@
has built-in functions for atomic memory access.
#endif
+static pthread_barrier_t s_barrier;
+
static __inline__
int sync_add_and_fetch(int* p, int i)
{
@@ -36,6 +38,7 @@
static void* thread_func_1(void* arg)
{
+ pthread_barrier_wait(&s_barrier);
s_y = 1;
(void) sync_add_and_fetch(&s_x, 1);
return 0;
@@ -43,6 +46,7 @@
static void* thread_func_2(void* arg)
{
+ pthread_barrier_wait(&s_barrier);
while (sync_add_and_fetch(&s_x, 0) == 0)
;
fprintf(stderr, "y = %d\n", s_y);
@@ -56,10 +60,12 @@
pthread_t tid[n_threads];
fprintf(stderr, "Start of test.\n");
+ pthread_barrier_init(&s_barrier, 0, 2);
pthread_create(&tid[0], 0, thread_func_1, 0);
pthread_create(&tid[1], 0, thread_func_2, 0);
for (i = 0; i < n_threads; i++)
pthread_join(tid[i], 0);
+ pthread_barrier_destroy(&s_barrier);
fprintf(stderr, "Test finished.\n");
return 0;
Modified: trunk/drd/tests/atomic_var.stderr.exp
==============================================================================
--- trunk/drd/tests/atomic_var.stderr.exp (original)
+++ trunk/drd/tests/atomic_var.stderr.exp Tue Mar 18 08:45:51 2014
@@ -4,7 +4,7 @@
at 0x........: thread_func_2 (atomic_var.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Location 0x........ is 0 bytes inside global var "s_y"
-declared at atomic_var.c:35
+declared at atomic_var.c:37
y = 1
Test finished.
Modified: trunk/drd/tests/atomic_var.vgtest
==============================================================================
--- trunk/drd/tests/atomic_var.vgtest (original)
+++ trunk/drd/tests/atomic_var.vgtest Tue Mar 18 08:45:51 2014
@@ -1,4 +1,4 @@
prereq: test -e atomic_var && ./supported_libpthread
-vgopts: --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=2
+vgopts: --fair-sched=yes --read-var-info=yes --check-stack-var=yes --show-confl-seg=no --num-callers=2
prog: atomic_var
stderr_filter: filter_stderr_and_thread_no
|