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
|
3
(1) |
|
4
(3) |
5
(5) |
6
(1) |
7
(3) |
8
(1) |
9
|
10
|
|
11
|
12
|
13
(1) |
14
|
15
|
16
|
17
|
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
|
25
|
26
(5) |
27
(1) |
28
|
29
|
30
|
31
(1) |
|
From: Julian S. <js...@ac...> - 2003-05-04 13:01:44
|
> Anyways, how is translation done in valgrind? Or, what is > translated? What terminates a basic block? The first branch > insn that is encountered, or when the first final (non-cond) > branch insn is hit? If the basic block is terminated on the > first final insn, is inner block loops resolved and optimized? It translates and optimised a basic block at a time. There is no cross-block optimisation. Your main problem is going to be how to provide high performance and at the same provide precise exceptions. I assume that guss will need precise exceptions because it is simulating the entire machine, including its MMUs, and so (for example) when you get a simulated TLB miss (STC miss, is that what you call it?) you need to be able to have the precise state of the machine available. In contrast user-mode code doesn't generally rely on precise exceptions (I think POSIX signal handling semantics more or less gives us this) so valgrind only has a precise machine state in between basic blocks. If we were to generalise the translator to be cross architecture, we'd probably do cross-block liveness analysis, and so would even lose precise exceptions in between bbs. The exceptions problem is the really difficult one in dynamic BT; all other problems are pretty much already solved one way or the other by established, published, compiler technology. > Second, how is chaining done when the basic block has more than > one exit (ie is terminated with a conditional cti insn). May > a basic block have more than one place that can be patched to > chain the block to another block? Yes, we do chaining for bbs which have one or two known destinations; this covers unconditional and conditional branches. For indirect jumps there is no attempt at (speculative) chaining. JeremyF did try this once, but we weren't convinced that the performance improvement justified the added complexity. > Third, how does V handle the problems with self-modifying code? > Or is this a non-problem when it comes to running normal > user-land programs. Seems to be a non problem and is not automatically supported. Programs which do do s-m-c can pass hints to V via a trapdoor mechanism, telling it to invalidate translations in some address range, but they have to do that explicitly, it is not automatic. A long time ago there was automatic support for it (all writes were checked) but this is expensive and usually pointless. But surely not a problem with guss since you have STCs. So you mark all pages containing a translation as unwritable, which means writes to code areas are detected for free, and then you can have some finer-grained mechanism which can be more expensive but rarely used, to decide if you really have written on translated code. Sounds like we're all trying to solve similar problems: you want dyn-bt for GUSS, Fabrice has an x86-to-whatever user-space dyn-bt system (qemu), and we've done some design studies for cross-arch translation with the additional complication of supporting the kind of fine-grained instrumentation that V does. I think it is useful for us to combine our design experiences. J |
|
From: Nicholas N. <nj...@ca...> - 2003-05-04 12:45:21
|
On Mon, 28 Apr 2003, Adam Gundy wrote: > there are three places where if a thread switches stack, valgrind doesn't > keep its idea of the highest word in the stack in sync. This causes backtraces > with only one function in them, and sometimes causes valgrind to quit. > > The attached patch fixes all three cases. Do you have some small example programs which exhibit the bugs -- too-small backtraces and early quitting? Thanks. N |
|
From: Nicholas N. <nj...@ca...> - 2003-05-04 12:28:07
|
On Sun, 4 May 2003, Johan Rydberg wrote: > Anyways, how is translation done in valgrind? Or, what is > translated? What terminates a basic block? The first branch > insn that is encountered, or when the first final (non-cond) > branch insn is hit? If the basic block is terminated on the > first final insn, is inner block loops resolved and optimized? Basic blocks are terminated on any branch instruction. > Second, how is chaining done when the basic block has more than > one exit (ie is terminated with a conditional cti insn). May > a basic block have more than one place that can be patched to > chain the block to another block? I don't know much about the chaining, I'll let others answer that... > Third, how does V handle the problems with self-modifying code? > Or is this a non-problem when it comes to running normal > user-land programs. It used to handle it, but the support was removed because it was a pain and it's rarely an issue. Howver, Valgrind does have a client request VALGRIND_DISCARD_TRANSLATIONS which you can embed in any program that generates/modifies code. It's mostly used, AFAICT, for JITters and the like. N |