Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2001 |
Jan
(1) |
Feb
|
Mar
(7) |
Apr
(3) |
May
(3) |
Jun
(7) |
Jul
(10) |
Aug
(1) |
Sep
(50) |
Oct
(74) |
Nov
(28) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(63) |
Feb
(27) |
Mar
(88) |
Apr
(21) |
May
(59) |
Jun
(41) |
Jul
(61) |
Aug
(89) |
Sep
(179) |
Oct
(152) |
Nov
(190) |
Dec
(92) |
2003 |
Jan
(140) |
Feb
(160) |
Mar
(193) |
Apr
(107) |
May
(84) |
Jun
(60) |
Jul
(97) |
Aug
(97) |
Sep
(42) |
Oct
(105) |
Nov
(99) |
Dec
(52) |
2004 |
Jan
(99) |
Feb
(97) |
Mar
(62) |
Apr
(73) |
May
(94) |
Jun
(37) |
Jul
(32) |
Aug
(89) |
Sep
(87) |
Oct
(72) |
Nov
(114) |
Dec
(35) |
2005 |
Jan
(25) |
Feb
(42) |
Mar
(120) |
Apr
(151) |
May
(71) |
Jun
(36) |
Jul
(35) |
Aug
(92) |
Sep
(19) |
Oct
(57) |
Nov
(77) |
Dec
(61) |
2006 |
Jan
(107) |
Feb
(114) |
Mar
(66) |
Apr
(101) |
May
(74) |
Jun
(64) |
Jul
(42) |
Aug
(51) |
Sep
(106) |
Oct
(118) |
Nov
(138) |
Dec
(162) |
2007 |
Jan
(148) |
Feb
(222) |
Mar
(73) |
Apr
(160) |
May
(166) |
Jun
(125) |
Jul
(184) |
Aug
(58) |
Sep
(41) |
Oct
(102) |
Nov
(111) |
Dec
(52) |
2008 |
Jan
(104) |
Feb
(67) |
Mar
(48) |
Apr
(125) |
May
(114) |
Jun
(98) |
Jul
(206) |
Aug
(89) |
Sep
(88) |
Oct
(163) |
Nov
(115) |
Dec
(113) |
2009 |
Jan
(131) |
Feb
(85) |
Mar
(157) |
Apr
(198) |
May
(202) |
Jun
(154) |
Jul
(156) |
Aug
(75) |
Sep
(80) |
Oct
(148) |
Nov
(88) |
Dec
(83) |
2010 |
Jan
(78) |
Feb
(59) |
Mar
(89) |
Apr
(54) |
May
(92) |
Jun
(66) |
Jul
(38) |
Aug
(73) |
Sep
(84) |
Oct
(91) |
Nov
(52) |
Dec
(62) |
2011 |
Jan
(86) |
Feb
(68) |
Mar
(129) |
Apr
(121) |
May
(154) |
Jun
(81) |
Jul
(55) |
Aug
(55) |
Sep
(58) |
Oct
(115) |
Nov
(88) |
Dec
(95) |
2012 |
Jan
(105) |
Feb
(62) |
Mar
(52) |
Apr
(54) |
May
(103) |
Jun
(89) |
Jul
(152) |
Aug
(73) |
Sep
(58) |
Oct
(60) |
Nov
(52) |
Dec
(90) |
2013 |
Jan
(102) |
Feb
(63) |
Mar
(68) |
Apr
(128) |
May
(82) |
Jun
(94) |
Jul
(87) |
Aug
(29) |
Sep
(24) |
Oct
(25) |
Nov
(40) |
Dec
(51) |
2014 |
Jan
(41) |
Feb
(60) |
Mar
(33) |
Apr
(22) |
May
(38) |
Jun
(23) |
Jul
(86) |
Aug
(113) |
Sep
(23) |
Oct
(22) |
Nov
(18) |
Dec
(13) |
2015 |
Jan
(40) |
Feb
(12) |
Mar
(28) |
Apr
(32) |
May
(53) |
Jun
(65) |
Jul
(27) |
Aug
(6) |
Sep
(13) |
Oct
(25) |
Nov
(48) |
Dec
(19) |
2016 |
Jan
(5) |
Feb
(10) |
Mar
(23) |
Apr
(31) |
May
(19) |
Jun
(28) |
Jul
(19) |
Aug
(2) |
Sep
(9) |
Oct
(18) |
Nov
(10) |
Dec
(4) |
2017 |
Jan
(23) |
Feb
(42) |
Mar
(13) |
Apr
(5) |
May
(7) |
Jun
(26) |
Jul
(13) |
Aug
(8) |
Sep
(1) |
Oct
(3) |
Nov
(27) |
Dec
(4) |
2018 |
Jan
(9) |
Feb
(22) |
Mar
(27) |
Apr
(10) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1
(5) |
2
|
3
|
4
(2) |
5
(4) |
6
|
7
|
8
(1) |
9
(2) |
10
|
11
(9) |
12
(1) |
13
(1) |
14
|
15
|
16
(4) |
17
|
18
|
19
(2) |
20
(3) |
21
(1) |
22
(3) |
23
(1) |
24
(5) |
25
(4) |
26
(7) |
27
(8) |
28
|
29
|
30
(1) |
31
(7) |
|
|
|
|
From: John Levon <levon@mo...> - 2005-05-04 18:53:06
|
As requested, here's a write-up on the problems with the current Java patch. Problems -------- - first off, the patch doesn't work - I get lots of sections in the ELF file, and the symbols look all off. I couldn't get it to work at all. - it requires you to run Java as root. This is a big deal, we shouldn't encourage this sort of thing. - it requires the opreport user to be root. Same deal. - the interface isn't acceptable; we can expect at least one other user and probably more. See my mail on libagent, and my comments below. - we could probably do more to detect Java, and install libopjan.so in the right place (also, I'd prefer a less obscure name - 'liboprofile.so' ? Then you'd have -Xrunoprofile) - as mentioned, the offsets are all wrong. See below. What we can do about it ----------------------- This is likely incomplete. These are just my thoughts, perhaps things could be done differently in some cases. Introduce agents/java/ - this just hooks into the JVM like opjan does now, and uses the libagent API. Pretty simple to modify the existing code, should only take a week maximum. Introduce libagent. This would have an API similar to the one I've already suggested. It would live in libagent/ in the sources, and it would be usable by non-root. This libagent would track the process's anon regions, as well as the mappings (symbols) that the agent tells us about. A written ELF file consists of a number of sections: each section corresponds to an anon mapping (*not* a symbol). It has a VMA corresponding to the VMA start of the anon mapping, and a suitable size. The pp tools already have code (now) that allows us to handle such ELF files correctly. Neither the pp tools nor oprofiled need modification. Of course, we would also write out the symbol table, and, later on, the machine code for each symbol. We would write the ELF files under the following circumstances: - class unload (probably) - explicit or implicit close of the agent handle - opcontrol --dump - others? Re-introduce the code to rewrite an anon sample file's image to the one in /var/lib/oprofile/samples/{anon}/... I've already got this small change in the BRANCH_ANON_MAPPING tree, please ask if you'd like to see it. There are still some troublesome security issues. My suggestion (which I've just thought of, and may have a fatal flaw or two) is as follows: 1) introduce a world-writable, sticky, /var/lib/oprofile/{exec}/. libagent writes the ELF files there. Then, to make a file 'live', it fires off a suid helper application. This application is passed the relevant ELF filename. It examines this to find the tgid of the Java process. Then, it does getppid() to get the tgid of the process that exec()'d the helper: iff the process is ancestor of the Java process, then a symbolic link from /var/lib/oprofile/{anon}/path/to/jit/<tgid> to /var/lib/oprofile/{exec}/path/to/jit/<tgid> for that ELF file is created. Thus: - the suid code is truly minimal - user file quotas are still observed (ok, you can flood the dir with lots of symlinks, but I don't see a way around that) - a process can't pretend to be an agent for a random Java process, only its children Note that this also lets us start a Java app /before/ oprofiled, and still get results. Comments? regards, john |
From: Carl Love <carll@us...> - 2005-05-04 15:24:32
|