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
(2) |
2
(8) |
3
(3) |
4
|
5
(1) |
6
|
7
|
|
8
|
9
|
10
(1) |
11
(4) |
12
(5) |
13
(1) |
14
(2) |
|
15
(1) |
16
|
17
(2) |
18
|
19
(1) |
20
(2) |
21
|
|
22
|
23
|
24
(1) |
25
(1) |
26
(1) |
27
(6) |
28
(1) |
|
29
|
30
|
31
(2) |
|
|
|
|
|
From: Rhys K. <rhy...@so...> - 2017-10-01 23:10:06
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=ed6ad13bc8f2b33c493a72db9915f3681002e8d0 commit ed6ad13bc8f2b33c493a72db9915f3681002e8d0 Author: Rhys Kidd <rhy...@gm...> Date: Sun Oct 1 18:56:05 2017 -0400 Fix missing workq_ops operations (macOS) Related to discussion in bz#383723. Patch based upon one provided by Andy Maloney. Diff: --- NEWS | 1 + coregrind/m_syswrap/syswrap-darwin.c | 69 +++++++++++++++++++++++++++--------- include/vki/vki-darwin.h | 21 ++++++----- 3 files changed, 67 insertions(+), 24 deletions(-) diff --git a/NEWS b/NEWS index eccbd19..4d6d840 100644 --- a/NEWS +++ b/NEWS @@ -55,6 +55,7 @@ where XXXXXX is the bug number as listed below. 384096 Mention AddrCheck at Memcheck's command line option --undef-value-errors=no 384526 reduce number of spill instructions generated by VEX register allocator v3 384584 Callee saved registers listed first for AMD64, X86, and PPC architectures +n-i-bz Fix missing workq_ops operations (macOS) Release 3.13.0 (15 June 2017) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c index 0670824..e8097e3 100644 --- a/coregrind/m_syswrap/syswrap-darwin.c +++ b/coregrind/m_syswrap/syswrap-darwin.c @@ -833,6 +833,7 @@ Bool ML_(sync_mappings)(const HChar* when, const HChar* where, UWord num) Bool where_iuct = STREQ(where, "iokit_user_client_trap"); Bool where_MwcN = STREQ(where, "ML_(wqthread_continue_NORETURN)"); Bool where_woQR = STREQ(where, "workq_ops(QUEUE_REQTHREADS)"); + Bool where_woQ2 = STREQ(where, "workq_ops(QUEUE_REQTHREADS2)"); Bool where_woTR = STREQ(where, "workq_ops(THREAD_RETURN)"); Bool where_ke64 = STREQ(where, "kevent64"); # undef STREQ @@ -840,8 +841,8 @@ Bool ML_(sync_mappings)(const HChar* when, const HChar* where, UWord num) vg_assert( 1 >= ( (where_mmr ? 1 : 0) + (where_mmrU ? 1 : 0) + (where_iuct ? 1 : 0) + (where_MwcN ? 1 : 0) - + (where_woQR ? 1 : 0) + (where_woTR ? 1 : 0) - + (where_ke64 ? 1 : 0) + + (where_woQR ? 1 : 0) + (where_woQ2 ? 1 : 0) + + (where_woTR ? 1 : 0) + (where_ke64 ? 1 : 0) )); // merely to stop gcc complaining of non-use in the case where // there's no filter: @@ -892,6 +893,11 @@ Bool ML_(sync_mappings)(const HChar* when, const HChar* where, UWord num) // upd 14434 diff 102+,0- check = CheckEvery20; } +/* if (when_after && where_woQ2 && num == 0x00000000) { + // after workq_ops(QUEUE_REQTHREADS2) 0x00000000 + // upd XXXX diff XX+,0- + check = CheckEvery20; + } */ else if (when_after && where_woTR && num == 0x00000000) { // after workq_ops(THREAD_RETURN) 0x00000000 @@ -954,6 +960,11 @@ Bool ML_(sync_mappings)(const HChar* when, const HChar* where, UWord num) // upd 1099 diff 37+,0- check = CheckEvery20; } +/* if (when_after && where_woQ2 && num == 0x00000000) { + // after workq_ops(QUEUE_REQTHREADS2) 0x00000000 + // upd XXXX diff XX+,0- + check = CheckEvery20; + } */ else if (when_after && where_woTR && num == 0x00000000) { // after workq_ops(THREAD_RETURN) 0x00000000 @@ -2089,12 +2100,17 @@ PRE(workq_open) static const HChar *workqop_name(int op) { switch (op) { - case VKI_WQOPS_QUEUE_ADD: return "QUEUE_ADD"; - case VKI_WQOPS_QUEUE_REMOVE: return "QUEUE_REMOVE"; - case VKI_WQOPS_THREAD_RETURN: return "THREAD_RETURN"; - case VKI_WQOPS_THREAD_SETCONC: return "THREAD_SETCONC"; - case VKI_WQOPS_QUEUE_NEWSPISUPP: return "QUEUE_NEWSPISUPP"; - case VKI_WQOPS_QUEUE_REQTHREADS: return "QUEUE_REQTHREADS"; + case VKI_WQOPS_QUEUE_ADD: return "QUEUE_ADD"; + case VKI_WQOPS_QUEUE_REMOVE: return "QUEUE_REMOVE"; + case VKI_WQOPS_THREAD_RETURN: return "THREAD_RETURN"; + case VKI_WQOPS_THREAD_SETCONC: return "THREAD_SETCONC"; + case VKI_WQOPS_QUEUE_NEWSPISUPP: return "QUEUE_NEWSPISUPP"; + case VKI_WQOPS_QUEUE_REQTHREADS: return "QUEUE_REQTHREADS"; + case VKI_WQOPS_QUEUE_REQTHREADS2: return "QUEUE_REQTHREADS2"; + case VKI_WQOPS_THREAD_KEVENT_RETURN: return "THREAD_KEVENT_RETURN"; + case VKI_WQOPS_SET_EVENT_MANAGER_PRIORITY: return "SET_EVENT_MANAGER_PRIORITY"; + case VKI_WQOPS_THREAD_WORKLOOP_RETURN: return "THREAD_WORKLOOP_RETURN"; + case VKI_WQOPS_SHOULD_NARROW: return "SHOULD_NARROW"; default: return "?"; } } @@ -2113,14 +2129,6 @@ PRE(workq_ops) // GrP fixme need anything here? // GrP fixme may block? break; - case VKI_WQOPS_QUEUE_NEWSPISUPP: - // JRS don't think we need to do anything here -- this just checks - // whether some newer functionality is supported - break; - case VKI_WQOPS_QUEUE_REQTHREADS: - // JRS uh, looks like it queues up a bunch of threads, or some such? - *flags |= SfMayBlock; // the kernel sources take a spinlock, so play safe - break; case VKI_WQOPS_THREAD_RETURN: { // The interesting case. The kernel will do one of two things: // 1. Return normally. We continue; libc proceeds to stop the thread. @@ -2137,6 +2145,32 @@ PRE(workq_ops) *flags |= SfMayBlock; // GrP fixme true? break; } + case VKI_WQOPS_THREAD_SETCONC: + // RK fixme need anything here? + // RK fixme may block? + break; + case VKI_WQOPS_QUEUE_NEWSPISUPP: + // JRS don't think we need to do anything here -- this just checks + // whether some newer functionality is supported + break; + case VKI_WQOPS_QUEUE_REQTHREADS: + case VKI_WQOPS_QUEUE_REQTHREADS2: + // JRS uh, looks like it queues up a bunch of threads, or some such? + *flags |= SfMayBlock; // the kernel sources take a spinlock, so play safe + break; + case VKI_WQOPS_THREAD_KEVENT_RETURN: + // RK fixme need anything here? + // perhaps similar to VKI_WQOPS_THREAD_RETURN above? + break; + case VKI_WQOPS_SET_EVENT_MANAGER_PRIORITY: + // RK fixme this just sets scheduling priorities - don't think we need + // to do anything here + break; + case VKI_WQOPS_THREAD_WORKLOOP_RETURN: + case VKI_WQOPS_SHOULD_NARROW: + // RK fixme need anything here? + // RK fixme may block? + break; default: VG_(printf)("UNKNOWN workq_ops option %ld\n", ARG1); break; @@ -2153,6 +2187,9 @@ POST(workq_ops) case VKI_WQOPS_QUEUE_REQTHREADS: ML_(sync_mappings)("after", "workq_ops(QUEUE_REQTHREADS)", 0); break; + case VKI_WQOPS_QUEUE_REQTHREADS2: + ML_(sync_mappings)("after", "workq_ops(QUEUE_REQTHREADS2)", 0); + break; default: break; } diff --git a/include/vki/vki-darwin.h b/include/vki/vki-darwin.h index 72b66bf..53d14f3 100644 --- a/include/vki/vki-darwin.h +++ b/include/vki/vki-darwin.h @@ -847,14 +847,19 @@ struct ByteRangeLockPB2 #define VKI_FSIOC_SYNC_VOLUME _IOW('A', 1, uint32_t) -// Libc/pthreads/pthread.c - -#define VKI_WQOPS_QUEUE_ADD 1 -#define VKI_WQOPS_QUEUE_REMOVE 2 -#define VKI_WQOPS_THREAD_RETURN 4 -#define VKI_WQOPS_THREAD_SETCONC 8 -#define VKI_WQOPS_QUEUE_NEWSPISUPP 16 /* check for newer SPI support */ -#define VKI_WQOPS_QUEUE_REQTHREADS 32 /* request number of threads of a prio */ +// libpthread/kern/workqueue_internal.h + +#define VKI_WQOPS_QUEUE_ADD 1 +#define VKI_WQOPS_QUEUE_REMOVE 2 +#define VKI_WQOPS_THREAD_RETURN 4 /* parks the thread back into the kernel */ +#define VKI_WQOPS_THREAD_SETCONC 8 +#define VKI_WQOPS_QUEUE_NEWSPISUPP 16 /* check for newer SPI support */ +#define VKI_WQOPS_QUEUE_REQTHREADS 32 /* request number of threads of a prio */ +#define VKI_WQOPS_QUEUE_REQTHREADS2 48 /* request a number of threads in a given priority bucket */ +#define VKI_WQOPS_THREAD_KEVENT_RETURN 64 /* parks the thread after delivering the passed kevent array */ +#define VKI_WQOPS_SET_EVENT_MANAGER_PRIORITY 128 /* max() in the provided priority in the the priority of the event manager */ +#define VKI_WQOPS_THREAD_WORKLOOP_RETURN 256 /* parks the thread after delivering the passed kevent array */ +#define VKI_WQOPS_SHOULD_NARROW 512 /* checks whether we should narrow our concurrency */ #include <sys/ttycom.h> |
|
From: Ivo R. <ir...@so...> - 2017-10-01 05:13:06
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=33053442153eabff2170bf5c862c57c10bc69071 commit 33053442153eabff2170bf5c862c57c10bc69071 Author: Ivo Raisr <iv...@iv...> Date: Sun Oct 1 07:12:05 2017 +0200 Register allocator: fix merging of Unallocated/Spilled vreg. Spilled vreg has no associated rreg to free. Diff: --- VEX/priv/host_generic_reg_alloc3.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/VEX/priv/host_generic_reg_alloc3.c b/VEX/priv/host_generic_reg_alloc3.c index 899fefe..81cf5c5 100644 --- a/VEX/priv/host_generic_reg_alloc3.c +++ b/VEX/priv/host_generic_reg_alloc3.c @@ -569,7 +569,7 @@ static inline HReg find_vreg_to_spill( incoming instruction stream as possible. An ideal rreg candidate is a callee-save register because it won't be used for parameter passing around helper function calls. */ -static Bool find_free_rreg( +static inline Bool find_free_rreg( const RegAllocChunk* chunk, RegAllocState* state, Short ii_chunk_current, HRegClass target_hregclass, Bool reserve_phase, const RegAllocControl* con, UInt* r_idx_found) @@ -1541,8 +1541,7 @@ static void merge_vreg_states(RegAllocChunk* chunk, case Unallocated: /* Good. Nothing to do. */ break; - case Assigned: /* fall through */ - case Spilled: + case Assigned: /* Should be dead by now. */ vassert(v2_src_state->dead_before <= chunk->next->ii_total_start); @@ -1550,6 +1549,12 @@ static void merge_vreg_states(RegAllocChunk* chunk, FREE_VREG(v2_src_state); FREE_RREG(&state2->rregs[hregIndex(rreg2)]); break; + case Spilled: + /* Should be dead by now. */ + vassert(v2_src_state->dead_before <= chunk->next->ii_total_start); + + FREE_VREG(v2_src_state); + break; default: vassert(0); } |