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
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(7) |
Aug
(50) |
Sep
(210) |
Oct
(93) |
Nov
(99) |
Dec
(101) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(283) |
Feb
(42) |
Mar
(148) |
Apr
(94) |
May
(256) |
Jun
(206) |
Jul
(101) |
Aug
(28) |
Sep
(159) |
Oct
(102) |
Nov
(216) |
Dec
(159) |
2003 |
Jan
(112) |
Feb
(149) |
Mar
(332) |
Apr
(261) |
May
(528) |
Jun
(270) |
Jul
(231) |
Aug
(231) |
Sep
(338) |
Oct
(445) |
Nov
(212) |
Dec
(26) |
2004 |
Jan
(179) |
Feb
(109) |
Mar
(20) |
Apr
(20) |
May
(55) |
Jun
(11) |
Jul
(38) |
Aug
(13) |
Sep
(28) |
Oct
(13) |
Nov
(41) |
Dec
(30) |
2005 |
Jan
(17) |
Feb
(4) |
Mar
(62) |
Apr
(176) |
May
(44) |
Jun
(13) |
Jul
(16) |
Aug
(154) |
Sep
(6) |
Oct
(13) |
Nov
(4) |
Dec
(6) |
2006 |
Jan
(12) |
Feb
(11) |
Mar
(9) |
Apr
(1) |
May
(10) |
Jun
(6) |
Jul
(10) |
Aug
(10) |
Sep
(27) |
Oct
(25) |
Nov
(40) |
Dec
(18) |
2007 |
Jan
(13) |
Feb
(25) |
Mar
(6) |
Apr
(14) |
May
(52) |
Jun
(22) |
Jul
(20) |
Aug
(8) |
Sep
(2) |
Oct
(138) |
Nov
(152) |
Dec
(73) |
2008 |
Jan
(52) |
Feb
(31) |
Mar
(5) |
Apr
(48) |
May
(20) |
Jun
(14) |
Jul
(36) |
Aug
(16) |
Sep
(1) |
Oct
(19) |
Nov
(13) |
Dec
(4) |
2009 |
Jan
(2) |
Feb
(13) |
Mar
(10) |
Apr
(28) |
May
(46) |
Jun
(21) |
Jul
(21) |
Aug
(22) |
Sep
(8) |
Oct
(25) |
Nov
(15) |
Dec
(2) |
2010 |
Jan
(12) |
Feb
|
Mar
(8) |
Apr
(3) |
May
(2) |
Jun
(5) |
Jul
(11) |
Aug
(17) |
Sep
|
Oct
(12) |
Nov
(14) |
Dec
(10) |
2011 |
Jan
(6) |
Feb
|
Mar
(8) |
Apr
(6) |
May
(17) |
Jun
(8) |
Jul
(4) |
Aug
(9) |
Sep
(2) |
Oct
(3) |
Nov
(4) |
Dec
(2) |
2012 |
Jan
(4) |
Feb
(7) |
Mar
(16) |
Apr
(9) |
May
(15) |
Jun
(22) |
Jul
(30) |
Aug
(36) |
Sep
(6) |
Oct
(5) |
Nov
(9) |
Dec
(11) |
2013 |
Jan
(17) |
Feb
(11) |
Mar
(7) |
Apr
(8) |
May
(15) |
Jun
(19) |
Jul
(27) |
Aug
(3) |
Sep
(3) |
Oct
(8) |
Nov
(6) |
Dec
(10) |
2014 |
Jan
(15) |
Feb
(16) |
Mar
(4) |
Apr
(3) |
May
(10) |
Jun
(9) |
Jul
(9) |
Aug
(31) |
Sep
(11) |
Oct
(6) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
(1) |
Mar
(2) |
Apr
(3) |
May
(4) |
Jun
(5) |
Jul
(14) |
Aug
(2) |
Sep
(2) |
Oct
(1) |
Nov
(4) |
Dec
(4) |
2016 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(4) |
May
(2) |
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(1) |
Oct
(3) |
Nov
(1) |
Dec
|
2017 |
Jan
(4) |
Feb
|
Mar
(1) |
Apr
(3) |
May
|
Jun
(9) |
Jul
(11) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
(3) |
2
(7) |
3
(25) |
4
(15) |
5
|
6
(4) |
7
|
8
(34) |
9
|
10
(6) |
11
(28) |
12
(15) |
13
(9) |
14
(5) |
15
(6) |
16
(4) |
17
|
18
|
19
(2) |
20
|
21
|
22
(11) |
23
(18) |
24
(3) |
25
(3) |
26
(6) |
27
(16) |
28
(9) |
29
(2) |
30
|
31
|
|
|
|
|
|
|
From: Philippe Elie <phil_e@us...> - 2003-08-23 17:15:52
|
Update of /cvsroot/oprofile/oprofile/libregex In directory sc8-pr-cvs1:/tmp/cvs-serv11963/libregex Modified Files: op_regex.cpp op_regex.h Log Message: tidy libregex Index: op_regex.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libregex/op_regex.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -d -r1.9 -r1.10 --- op_regex.cpp 11 Jun 2003 21:44:57 -0000 1.9 +++ op_regex.cpp 23 Aug 2003 16:16:44 -0000 1.10 @@ -49,10 +49,10 @@ void op_regcomp(regex_t & regexp, string } -bool op_regexec(regex_t const & regex, char const * str, regmatch_t * match, +bool op_regexec(regex_t const & regex, string const & str, regmatch_t * match, size_t nmatch) { - return regexec(®ex, str, nmatch, match, 0) != REG_NOMATCH; + return regexec(®ex, str.c_str(), nmatch, match, 0) != REG_NOMATCH; } @@ -87,8 +87,8 @@ regular_expression_replace::regular_expr regular_expression_replace::~regular_expression_replace() { - for (size_t i = 0 ; i < v_regexp.size() ; ++i) - op_regfree(v_regexp[i]); + for (size_t i = 0 ; i < regex_replace.size() ; ++i) + op_regfree(regex_replace[i].regexp); } @@ -110,8 +110,8 @@ void regular_expression_replace::add_pat regex_t regexp; op_regcomp(regexp, expanded_pattern); - v_regexp.push_back(regexp); - v_replace.push_back(replace); + replace_t regex = { regexp, replace }; + regex_replace.push_back(regex); } @@ -178,8 +178,8 @@ bool regular_expression_replace::execute bool changed = true; for (size_t nr_iter = 0; changed && nr_iter < limit ; ++nr_iter) { changed = false; - for (size_t i = 0 ; i < v_regexp.size() ; ++i) { - if (do_execute(str, v_regexp[i], v_replace[i])) { + for (size_t i = 0 ; i < regex_replace.size() ; ++i) { + if (do_execute(str, regex_replace[i])) { changed = true; } } @@ -192,26 +192,32 @@ bool regular_expression_replace::execute bool regular_expression_replace::do_execute(string & str, - regex_t const & regexp, - string const & replace) const + replace_t const & regexp) const { bool changed = false; regmatch_t match[max_match]; - size_t last_pos = 0; - for (size_t nr_iter = 0; - op_regexec(regexp, str.c_str() + last_pos, match, max_match) && - nr_iter < limit; - nr_iter++) { + for (size_t iter = 0; + op_regexec(regexp.regexp, str, match, max_match) && iter < limit; + iter++) { changed = true; - do_replace(str, last_pos, replace, match); + do_replace(str, regexp.replace, match); } return changed; } -void regular_expression_replace::do_replace(string & str, size_t start_pos, +regmatch_t const & +regular_expression_replace::get_match(regmatch_t const * match, char idx) const +{ + size_t sub_expr = subexpr_index(idx); + if (sub_expr >= max_match) + throw bad_regex("illegal group index :" + idx); + return match[sub_expr]; +} + +void regular_expression_replace::do_replace(string & str, string const & replace, regmatch_t const * match) const { @@ -219,33 +225,36 @@ void regular_expression_replace::do_repl for (size_t i = 0 ; i < replace.length() ; ++i) { if (replace[i] == '\\') { if (i == replace.length() - 1) { - throw bad_regex("illegal \\ trailer: " + replace); + throw bad_regex("illegal \\ trailer: " + + replace); } ++i; if (replace[i] == '\\') { inserted += '\\'; } else if (subexpr_index(replace[i]) != size_t(-1)) { - size_t sub_expr = subexpr_index(replace[i]); - if (sub_expr >= max_match) { - throw bad_regex("illegal group index :" + replace); - } else if (match[sub_expr].rm_so == -1 && - match[sub_expr].rm_eo == -1) { + regmatch_t const & matched = get_match(match, + replace[i]); + if (matched.rm_so == -1 && + matched.rm_eo == -1) { // empty match: nothing todo - } else if (match[sub_expr].rm_so == -1 || - match[sub_expr].rm_eo == -1) { - throw bad_regex("illegal match: " + replace); + } else if (matched.rm_so == -1 || + matched.rm_eo == -1) { + throw bad_regex("illegal match: " + + replace); } else { - inserted += str.substr(match[sub_expr].rm_so, match[sub_expr].rm_eo - match[sub_expr].rm_so); + inserted += str.substr(matched.rm_so, + matched.rm_eo - matched.rm_so); } } else { - throw bad_regex("expect group index :" + replace); + throw bad_regex("expect group index: " + + replace); } } else { inserted += replace[i]; } } - size_t first = match[0].rm_so + start_pos; + size_t first = match[0].rm_so; size_t count = match[0].rm_eo - match[0].rm_so; str.replace(first, count, inserted); Index: op_regex.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/libregex/op_regex.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -d -r1.4 -r1.5 --- op_regex.h 7 Apr 2003 23:09:12 -0000 1.4 +++ op_regex.h 23 Aug 2003 16:16:44 -0000 1.5 @@ -81,11 +81,16 @@ public: */ bool execute(std::string & str) const; private: + struct replace_t { + // when this regexp is matched + regex_t regexp; + // replace the matched part with this string + std::string replace; + }; + // helper to execute - bool do_execute(std::string & str, regex_t const & regexp, - std::string const& replace) const; - void do_replace(std::string & str, size_t start_pos, - std::string const & replace, + bool do_execute(std::string & str, replace_t const & regexp) const; + void do_replace(std::string & str, std::string const & replace, regmatch_t const * match) const; // helper to add_definition() and add_pattern() @@ -94,6 +99,9 @@ private: // helper to add_pattern std::string substitute_definition(std::string const & pattern); + // return the match of throw if idx is invalid + regmatch_t const & get_match(regmatch_t const * match, char idx) const; + // don't increase too, it have direct impact on performance. This limit // the number of grouping expression allowed in a regular expression // Note than you can use grouping match operator > 9 only in the @@ -103,8 +111,7 @@ private: size_t limit; size_t limit_defs_expansion; - std::vector<regex_t> v_regexp; - std::vector<std::string> v_replace; + std::vector<replace_t> regex_replace; /// dictionary of regular definition typedef std::map<std::string, std::string> defs_dict; defs_dict defs; |
From: Philippe Elie <phil_e@us...> - 2003-08-23 17:15:40
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv11963 Modified Files: ChangeLog Log Message: tidy libregex Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1161 retrieving revision 1.1162 diff -u -p -d -r1.1161 -r1.1162 --- ChangeLog 23 Aug 2003 15:09:06 -0000 1.1161 +++ ChangeLog 23 Aug 2003 16:16:43 -0000 1.1162 @@ -1,5 +1,12 @@ 2003-08-23 Philippe Elie <phil.el@...> + * libregex/op_regex.h: + * libregex/op_regex.cpp: tidy + + * libfd/op_bfd.cpp: remove obsolete comment + +2003-08-23 Philippe Elie <phil.el@...> + * libutil++/file_manip.h: * libutil++/file_manip.cpp: is_directory(dirname): return true if dirname exists |
From: Philippe Elie <phil_e@us...> - 2003-08-23 15:09:10
|
Update of /cvsroot/oprofile/oprofile/pp In directory sc8-pr-cvs1:/tmp/cvs-serv2172/pp Modified Files: common_option.cpp Log Message: pp/common_option.cpp: validate --image-path parameters Index: common_option.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/common_option.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -d -r1.2 -r1.3 --- common_option.cpp 29 May 2003 00:55:29 -0000 1.2 +++ common_option.cpp 23 Aug 2003 15:09:07 -0000 1.3 @@ -16,6 +16,7 @@ #include "popt_options.h" #include "cverb.h" #include "common_option.h" +#include "file_manip.h" using namespace std; @@ -75,6 +76,18 @@ vector<string> get_options(int argc, cha options::threshold = handle_threshold(::threshold); set_verbose(options::verbose); + + bool ok = true; + vector<string>::const_iterator it; + for (it = image_path.begin(); it != image_path.end(); ++it) { + if (!is_directory(*it)) { + cerr << *it << " isn't a valid directory\n"; + ok = false; + } + } + + if (!ok) + throw op_runtime_error("invalid --image-path= options"); options::extra_found_images.populate(image_path); |
From: Philippe Elie <phil_e@us...> - 2003-08-23 15:09:10
|
Update of /cvsroot/oprofile/oprofile/libutil++ In directory sc8-pr-cvs1:/tmp/cvs-serv2172/libutil++ Modified Files: file_manip.cpp file_manip.h Log Message: pp/common_option.cpp: validate --image-path parameters Index: file_manip.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libutil++/file_manip.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- file_manip.cpp 29 May 2003 01:10:08 -0000 1.18 +++ file_manip.cpp 23 Aug 2003 15:09:06 -0000 1.19 @@ -27,6 +27,15 @@ using namespace std; + +bool is_directory(string const & dirname) +{ + struct stat st; + + return !stat(dirname.c_str(), &st) && S_ISDIR(st.st_mode); +} + + /** * is_file_identical - check for identical files * @param file1 first filename Index: file_manip.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/libutil++/file_manip.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -p -d -r1.13 -r1.14 --- file_manip.h 29 May 2003 01:10:08 -0000 1.13 +++ file_manip.h 23 Aug 2003 15:09:06 -0000 1.14 @@ -15,6 +15,10 @@ #include <string> #include <list> + +/// return true if dir is an existing directory +bool is_directory(string const & dirname); + /// return true if the two files are the same file bool is_files_identical(std::string const & file1, std::string const & file2); /// return the contents of a symbolic link or an empty string on failure |
From: Philippe Elie <phil_e@us...> - 2003-08-23 15:09:09
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv2172 Modified Files: ChangeLog TODO Log Message: pp/common_option.cpp: validate --image-path parameters Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1160 retrieving revision 1.1161 diff -u -p -d -r1.1160 -r1.1161 --- ChangeLog 22 Aug 2003 17:08:30 -0000 1.1160 +++ ChangeLog 23 Aug 2003 15:09:06 -0000 1.1161 @@ -1,3 +1,10 @@ +2003-08-23 Philippe Elie <phil.el@...> + + * libutil++/file_manip.h: + * libutil++/file_manip.cpp: is_directory(dirname): return true if + dirname exists + * pp/common_option.cpp: validate --image-path parameters + 2003-08-22 Philippe Elie <phil.el@...> * events/i386.p4.events: clarify than 128BIT_MMX_UOP count only integer Index: TODO =================================================================== RCS file: /cvsroot/oprofile/oprofile/TODO,v retrieving revision 1.260 retrieving revision 1.261 diff -u -p -d -r1.260 -r1.261 --- TODO 22 Aug 2003 00:20:29 -0000 1.260 +++ TODO 23 Aug 2003 15:09:06 -0000 1.261 @@ -6,7 +6,6 @@ for some pointers and/or read HACKING an 0.7 release ----------- - o --image-path should check it's an *existing* *dir* o sample-file: / binary: don't work in any useful way - can we fix this by peeking at binary: value and faking the split_sample_file somehow ? o separate debug info stuff |
From: John Levon <movement@us...> - 2003-08-23 02:02:50
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv27977 Modified Files: ChangeLog Log Message: report the kernel pointer size (see "report more details in the log by default" TODO) Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1158 retrieving revision 1.1159 diff -u -p -d -r1.1158 -r1.1159 --- ChangeLog 22 Aug 2003 00:20:29 -0000 1.1158 +++ ChangeLog 22 Aug 2003 01:22:05 -0000 1.1159 @@ -1,5 +1,9 @@ 2003-08-22 John Levon <levon@...> + * daemon/oprofiled.c: report the kernel pointer size + +2003-08-22 John Levon <levon@...> + * daemon/oprofiled.c: read new /dev/oprofile/pointer_size in preference to kcore. kcore code will eventually go. |
From: John Levon <movement@us...> - 2003-08-23 02:02:49
|
Update of /cvsroot/oprofile/oprofile/daemon In directory sc8-pr-cvs1:/tmp/cvs-serv27977/daemon Modified Files: oprofiled.c Log Message: report the kernel pointer size (see "report more details in the log by default" TODO) Index: oprofiled.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/daemon/oprofiled.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -p -d -r1.39 -r1.40 --- oprofiled.c 22 Aug 2003 00:22:07 -0000 1.39 +++ oprofiled.c 22 Aug 2003 01:22:06 -0000 1.40 @@ -125,6 +125,8 @@ static void opd_open_files(void) opd_open_logfile(); printf("oprofiled started %s", op_get_time()); + printf("kernel pointer size: %lu\n", + (unsigned long)kernel_pointer_size); fflush(stdout); } |
From: Philippe Elie <phil_e@us...> - 2003-08-22 17:08:41
|
Update of /cvsroot/oprofile/oprofile/events In directory sc8-pr-cvs1:/tmp/cvs-serv18911/events Modified Files: i386.p4.events Log Message: events/i386.p4.events: clarify than 128BIT_MMX_UOP count only integer SSE2 ops pp/opreport.cpp: minor spacing change in output Index: i386.p4.events =================================================================== RCS file: /cvsroot/oprofile/oprofile/events/i386.p4.events,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -d -r1.2 -r1.3 --- i386.p4.events 15 Apr 2003 20:04:12 -0000 1.2 +++ i386.p4.events 22 Aug 2003 17:08:32 -0000 1.3 @@ -39,6 +39,6 @@ event:0x15 counters:2,6 um:flame_uop min event:0x16 counters:2,6 um:flame_uop minimum:3000 name:SCALAR_SP_UOP : scalar single precision uops event:0x17 counters:2,6 um:flame_uop minimum:3000 name:SCALAR_DP_UOP : scalar double presision uops event:0x18 counters:2,6 um:flame_uop minimum:3000 name:64BIT_MMX_UOP : 64 bit SIMD MMX instructions -event:0x19 counters:2,6 um:flame_uop minimum:3000 name:128BIT_MMX_UOP : 128 bit SIMD SSE2 instructions +event:0x19 counters:2,6 um:flame_uop minimum:3000 name:128BIT_MMX_UOP : 128 bit integer SIMD SSE2 instructions event:0x1a counters:2,6 um:flame_uop minimum:3000 name:X87_FP_UOP : x87 floating point uops event:0x1b counters:2,6 um:x87_simd_moves_uop minimum:3000 name:X87_SIMD_MOVES_UOP : x87 FPU, MMX, SSE, or SSE2 loads, stores and reg-to-reg moves |
From: Philippe Elie <phil_e@us...> - 2003-08-22 17:08:40
|
Update of /cvsroot/oprofile/oprofile/pp In directory sc8-pr-cvs1:/tmp/cvs-serv18911/pp Modified Files: opreport.cpp Log Message: events/i386.p4.events: clarify than 128BIT_MMX_UOP count only integer SSE2 ops pp/opreport.cpp: minor spacing change in output Index: opreport.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opreport.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -p -d -r1.22 -r1.23 --- opreport.cpp 19 Aug 2003 09:18:33 -0000 1.22 +++ opreport.cpp 22 Aug 2003 17:08:33 -0000 1.23 @@ -250,9 +250,9 @@ output_deps(summary_container const & su } if (file.lib_image.empty()) - cout << " " << get_filename(file.image); + cout << get_filename(file.image); else - cout << " " << get_filename(file.lib_image); + cout << get_filename(file.lib_image); cout << '\n'; } } |
From: Philippe Elie <phil_e@us...> - 2003-08-22 17:08:40
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv18911 Modified Files: ChangeLog Log Message: events/i386.p4.events: clarify than 128BIT_MMX_UOP count only integer SSE2 ops pp/opreport.cpp: minor spacing change in output Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1159 retrieving revision 1.1160 diff -u -p -d -r1.1159 -r1.1160 --- ChangeLog 22 Aug 2003 01:22:05 -0000 1.1159 +++ ChangeLog 22 Aug 2003 17:08:30 -0000 1.1160 @@ -1,3 +1,9 @@ +2003-08-22 Philippe Elie <phil.el@...> + + * events/i386.p4.events: clarify than 128BIT_MMX_UOP count only integer + SSE2 ops + * pp/opreport.cpp: minor spacing change in output + 2003-08-22 John Levon <levon@...> * daemon/oprofiled.c: report the kernel pointer size |
From: Philippe Elie <phil.el@wa...> - 2003-08-22 12:22:06
|
Philippe Elie wrote: > John Levon wrote: > >> Update of /cvsroot/oprofile/oprofile/libutil++ >> In directory sc8-pr-cvs1:/tmp/cvs-serv5537/libutil++ >> >> Modified Files: >> op_bfd.cpp Log Message: >> update comment about gcc2_compiled. being in the "wrong" place > 00022fac <_bfd_discard_section_stabs>: > 22fac: push %ebp > 22fad: mov %esp,%ebp > .... > 232de: ret > 232df: nop > 232e0: mov (%esp,1),%ebx > 232e3: ret > > 000232e4 <_bfd_write_section_stabs>: > .... > 232ed: call 232e0 <_bfd_discard_section_stabs+0x334> > > > sigh, no symbol at all for the PIC stubs humm, I'm unusure now I want to fix it, gcc2_compiled multiple symbols is likely to confuse user and anyway accepting it doesn't fix all case so ... regards, Phil |
From: Philippe Elie <phil.el@wa...> - 2003-08-22 08:10:32
|
John Levon wrote: > Update of /cvsroot/oprofile/oprofile/libutil++ > In directory sc8-pr-cvs1:/tmp/cvs-serv5537/libutil++ > > Modified Files: > op_bfd.cpp > Log Message: > update comment about gcc2_compiled. being in the "wrong" place I already pasted this in #oprofile last night but you was disconnected. I investigated deeper and got this: - is the old way, + is by moving gcc2_compiled. to boring symbols -000227e4 1 5.6e-05 libbfd-2.12.90.0.9.so ihex_sizeof_headers - 000227f0 1 100.0000 ... +000227f0 1 5.6e-05 libbfd-2.12.90.0.9.so gcc2_compiled. + 000227f0 1 100.0000 000227e4 <ihex_sizeof_headers>: 227e4: push %ebp 227e5: mov %esp,%ebp 227e7: xor %eax,%eax 227e9: mov %ebp,%esp 227eb: pop %ebp 227ec: ret 227ed: nop 227ee: nop 227ef: nop 000227f0 <gcc2_compiled.>: 227f0: mov (%esp,1),%ebx 227f3: ret so we really need to move gcc2_compiled to boring symbols to decrease miscredited samples. I'm looking into a bunch of diff in tests before commiting the fix. This fix is only partial we get gcc2_compiled symbol only at start of module so there is many case where we can miscredit samples: 00022fac <_bfd_discard_section_stabs>: 22fac: push %ebp 22fad: mov %esp,%ebp .... 232de: ret 232df: nop 232e0: mov (%esp,1),%ebx 232e3: ret 000232e4 <_bfd_write_section_stabs>: .... 232ed: call 232e0 <_bfd_discard_section_stabs+0x334> sigh, no symbol at all for the PIC stubs regards, Phil |
From: John Levon <movement@us...> - 2003-08-22 02:08:58
|
Update of /cvsroot/oprofile/oprofile/libutil++ In directory sc8-pr-cvs1:/tmp/cvs-serv5537/libutil++ Modified Files: op_bfd.cpp Log Message: update comment about gcc2_compiled. being in the "wrong" place Index: op_bfd.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libutil++/op_bfd.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -u -p -d -r1.31 -r1.32 --- op_bfd.cpp 16 Aug 2003 14:00:11 -0000 1.31 +++ op_bfd.cpp 21 Aug 2003 19:54:19 -0000 1.32 @@ -150,11 +150,11 @@ bool interesting_symbol(asymbol * sym) if (sym->name[0] == '.' && sym->name[1] == 'L') return false; - // This is still necessary because the symbol - // sits at the same VMA as a real function, - // so we can end up dropping the real function - // symbol when we remove duplicate VMAs in our - // caller. + /* This case cannot be moved to boring_symbol(), + * because that's only used for duplicate VMAs, + * and sometimes this symbol appears at an address + * different from all other symbols. + */ if (!strcmp("gcc2_compiled.", sym->name)) return false; |
From: John Levon <movement@us...> - 2003-08-22 00:22:12
|
Update of /cvsroot/oprofile/oprofile/daemon In directory sc8-pr-cvs1:/tmp/cvs-serv20187 Modified Files: oprofiled.c Log Message: ouch... Index: oprofiled.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/daemon/oprofiled.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -p -d -r1.38 -r1.39 --- oprofiled.c 22 Aug 2003 00:20:30 -0000 1.38 +++ oprofiled.c 22 Aug 2003 00:22:07 -0000 1.39 @@ -404,7 +404,7 @@ static size_t opd_pointer_size(void) size_t size; char elf_header[EI_NIDENT]; FILE * fp; - char * kp_file = xmalloc(strlen(mount) + strlen("/pointer_size")); + char * kp_file = xmalloc(strlen(mount) + strlen("/pointer_size") + 1); strcpy(kp_file, mount); strcat(kp_file, "/pointer_size"); |
From: John Levon <movement@us...> - 2003-08-22 00:20:40
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv19845 Modified Files: ChangeLog TODO Log Message: read /dev/oprofile/pointer_size. /proc/kcore is dying. Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1157 retrieving revision 1.1158 diff -u -p -d -r1.1157 -r1.1158 --- ChangeLog 21 Aug 2003 19:54:19 -0000 1.1157 +++ ChangeLog 22 Aug 2003 00:20:29 -0000 1.1158 @@ -1,3 +1,8 @@ +2003-08-22 John Levon <levon@...> + + * daemon/oprofiled.c: read new /dev/oprofile/pointer_size + in preference to kcore. kcore code will eventually go. + 2003-08-21 John Levon <levon@...> * libutil++/op_bfd.cpp: update gcc2_compiled. comment Index: TODO =================================================================== RCS file: /cvsroot/oprofile/oprofile/TODO,v retrieving revision 1.259 retrieving revision 1.260 diff -u -p -d -r1.259 -r1.260 --- TODO 16 Aug 2003 14:00:10 -0000 1.259 +++ TODO 22 Aug 2003 00:20:29 -0000 1.260 @@ -6,6 +6,7 @@ for some pointers and/or read HACKING an 0.7 release ----------- + o --image-path should check it's an *existing* *dir* o sample-file: / binary: don't work in any useful way - can we fix this by peeking at binary: value and faking the split_sample_file somehow ? o separate debug info stuff |
From: John Levon <movement@us...> - 2003-08-22 00:20:39
|
Update of /cvsroot/oprofile/oprofile/daemon In directory sc8-pr-cvs1:/tmp/cvs-serv19845/daemon Modified Files: oprofiled.c Log Message: read /dev/oprofile/pointer_size. /proc/kcore is dying. Index: oprofiled.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/daemon/oprofiled.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -p -d -r1.37 -r1.38 --- oprofiled.c 8 Aug 2003 01:43:20 -0000 1.37 +++ oprofiled.c 22 Aug 2003 00:20:30 -0000 1.38 @@ -404,9 +404,36 @@ static size_t opd_pointer_size(void) size_t size; char elf_header[EI_NIDENT]; FILE * fp; + char * kp_file = xmalloc(strlen(mount) + strlen("/pointer_size")); + + strcpy(kp_file, mount); + strcat(kp_file, "/pointer_size"); + + /* FIXME: later, insist on pointer_size only */ + if (op_file_readable(kp_file)) { + unsigned long val = 0; + + fp = op_open_file(kp_file, "r"); + if (!fp) { + fprintf(stderr, "oprofiled: couldn't open " + "%s/pointer_size.\n", mount); + exit(EXIT_FAILURE); + } + + fscanf(fp, "%lu\n", &val); + if (!val) { + fprintf(stderr, "oprofiled: couldn't read " + "%s/pointer_size.\n", mount); + exit(EXIT_FAILURE); + } + + op_close_file(fp); + free(kp_file); + return val; + } if (!op_file_readable("/proc/kcore")) { - fprintf(stderr, "oprofiled: /proc/kcore not readable."); + fprintf(stderr, "oprofiled: /proc/kcore not readable.\n"); goto guess; } @@ -416,7 +443,7 @@ static size_t opd_pointer_size(void) /* CONFIG_KCORE_AOUT exists alas */ if (memcmp(elf_header, ELFMAG, SELFMAG) != 0) { - fprintf(stderr, "oprofiled: /proc/kcore not in ELF format."); + fprintf(stderr, "oprofiled: /proc/kcore not in ELF format.\n"); goto guess; } |
From: John Levon <movement@us...> - 2003-08-22 00:20:39
|
Update of /cvsroot/oprofile/oprofile/libutil In directory sc8-pr-cvs1:/tmp/cvs-serv19845/libutil Modified Files: op_file.c Log Message: read /dev/oprofile/pointer_size. /proc/kcore is dying. Index: op_file.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/libutil/op_file.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -p -d -r1.13 -r1.14 --- op_file.c 8 Aug 2003 00:52:56 -0000 1.13 +++ op_file.c 22 Aug 2003 00:20:30 -0000 1.14 @@ -206,7 +206,7 @@ static char * op_simplify_pathname(char /** * op_relative_to_absolute_path - translate relative path to absolute path. * @param path path name - * @param base_dir optionnal base directory, if %NULL getcwd() is used + * @param base_dir optional base directory, if %NULL getcwd() is used * to get the base directory. * * prepend base_dir or the result of getcwd if the path is not absolute. |
From: John Levon <movement@us...> - 2003-08-22 00:08:13
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv5537 Modified Files: ChangeLog Log Message: update comment about gcc2_compiled. being in the "wrong" place Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1156 retrieving revision 1.1157 diff -u -p -d -r1.1156 -r1.1157 --- ChangeLog 19 Aug 2003 09:18:32 -0000 1.1156 +++ ChangeLog 21 Aug 2003 19:54:19 -0000 1.1157 @@ -1,3 +1,8 @@ +2003-08-21 John Levon <levon@...> + + * libutil++/op_bfd.cpp: update gcc2_compiled. comment + to reflect reality + 2003-08-19 Philippe Elie <phil.el@...> * pp/opreport.cpp: really merge when --merge=lib and image name are |
From: Philippe Elie <phil_e@us...> - 2003-08-19 09:18:36
|
Update of /cvsroot/oprofile/oprofile/pp In directory sc8-pr-cvs1:/tmp/cvs-serv24150/pp Modified Files: opreport.cpp Log Message: pp/opreport.cpp: really merge when --merge=lib and image name are specified Index: opreport.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opreport.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -d -r1.21 -r1.22 --- opreport.cpp 13 Aug 2003 00:07:33 -0000 1.21 +++ opreport.cpp 19 Aug 2003 09:18:33 -0000 1.22 @@ -156,7 +156,11 @@ summary_container(vector<partition_files partition_files::filename_set::const_iterator it; for (it = files.begin(); it != files.end(); ++it) { value_t value(&*it, i); - map_t::value_type val(it->image, value); + string name = it->image; + if (!it->lib_image.empty() && + options::merge_by.lib) + name = it->lib_image; + map_t::value_type val(name, value); sample_filenames.insert(val); } } @@ -272,7 +276,10 @@ void output_summaries(summary_container app.counts[j]); } - cout << get_filename(app.image) << '\n'; + if (app.lib_image.empty() || !options::merge_by.lib) + cout << get_filename(app.image) << "\n"; + else + cout << get_filename(app.lib_image) << "\n"; if (!app.should_hide_deps()) output_deps(summaries, app); |
From: Philippe Elie <phil_e@us...> - 2003-08-19 09:18:35
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv24150 Modified Files: ChangeLog Log Message: pp/opreport.cpp: really merge when --merge=lib and image name are specified Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1155 retrieving revision 1.1156 diff -u -p -d -r1.1155 -r1.1156 --- ChangeLog 16 Aug 2003 19:54:46 -0000 1.1155 +++ ChangeLog 19 Aug 2003 09:18:32 -0000 1.1156 @@ -1,3 +1,8 @@ +2003-08-19 Philippe Elie <phil.el@...> + + * pp/opreport.cpp: really merge when --merge=lib and image name are + specified. + 2003-08-16 Philippe Elie <phil.el@...> * pp/opannotate.cpp: output threshold percent when necessary. |
From: Philippe Elie <phil_e@us...> - 2003-08-16 19:54:49
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv18047 Modified Files: ChangeLog Log Message: pp/opannotate.cpp: output threshold percent when necessary. Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1154 retrieving revision 1.1155 diff -u -p -d -r1.1154 -r1.1155 --- ChangeLog 16 Aug 2003 14:00:10 -0000 1.1154 +++ ChangeLog 16 Aug 2003 19:54:46 -0000 1.1155 @@ -1,5 +1,9 @@ 2003-08-16 Philippe Elie <phil.el@...> + * pp/opannotate.cpp: output threshold percent when necessary. + +2003-08-16 Philippe Elie <phil.el@...> + * libutil++/op_bfd.cpp: remove ELF-based symbol size code 2003-08-15 William Cohen <wcohen@...> |
From: Philippe Elie <phil_e@us...> - 2003-08-16 19:54:49
|
Update of /cvsroot/oprofile/oprofile/pp In directory sc8-pr-cvs1:/tmp/cvs-serv18047/pp Modified Files: opannotate.cpp Log Message: pp/opannotate.cpp: output threshold percent when necessary. Index: opannotate.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opannotate.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -d -r1.17 -r1.18 --- opannotate.cpp 13 Aug 2003 00:07:33 -0000 1.17 +++ opannotate.cpp 16 Aug 2003 19:54:46 -0000 1.18 @@ -137,23 +137,11 @@ void output_info(ostream & out) out << in_comment << "Output annotated source file with samples" << '\n'; - // FIXME: re-add this -#if 0 - if (threshold_percent != 0) { - if (!do_until_more_than_samples) { - out << in_comment - << "Output files where the selected counter reach " - << threshold_percent << "% of the samples" - << '\n'; - } else { - out << in_comment << "output files until " - << threshold_percent - << "% of the samples is reached on the selected counter" - << '\n'; - } - } else -#endif - { + if (options::threshold != 0) { + out << in_comment + << "Output files where samples count reach " + << options::threshold << "% of the samples\n"; + } else { out << in_comment << "Output all files" << '\n'; } } else { |
From: Philippe Elie <phil_e@us...> - 2003-08-16 14:51:04
|
Update of /cvsroot/oprofile/oprofile/libutil++ In directory sc8-pr-cvs1:/tmp/cvs-serv32456/libutil++ Modified Files: op_bfd.cpp Log Message: libutil++/op_bfd.cpp: remove ELF-based symbol size code Index: op_bfd.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libutil++/op_bfd.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -u -p -d -r1.30 -r1.31 --- op_bfd.cpp 10 Aug 2003 15:26:48 -0000 1.30 +++ op_bfd.cpp 16 Aug 2003 14:00:11 -0000 1.31 @@ -418,63 +418,13 @@ bool op_bfd::get_linenr(symbol_index_t s } -// #define USE_ELF_INTERNAL - -#ifdef USE_ELF_INTERNAL -struct elf_internal_sym { - bfd_vma st_value; /* Value of the symbol */ - bfd_vma st_size; /* Associated symbol size */ - unsigned long st_name; /* Symbol name, index in string tbl */ - unsigned char st_info; /* Type and binding attributes */ - unsigned char st_other; /* No defined meaning, 0 */ - unsigned short st_shndx; /* Associated section index */ -}; - -typedef struct elf_internal_sym Elf_Internal_Sym; - -typedef struct -{ - /* The BFD symbol. */ - asymbol symbol; - /* ELF symbol information. */ - Elf_Internal_Sym internal_elf_sym; -} elf_symbol_type; - -#endif /* USE_ELF_INTERNAL */ - size_t op_bfd::symbol_size(op_bfd_symbol const & sym, op_bfd_symbol const * next) const { u32 start = sym.filepos(); - size_t length; - -#ifndef USE_ELF_INTERNAL - u32 end; - if (next) { - end = next->filepos(); - } else - end = file_size; - - length = end - start; -#else /* !USE_ELF_INTERNAL */ - size_t length = - ((elf_symbol_type *)sym)->internal_elf_sym.st_size; - - // some asm symbol can have a zero length such system_call - // entry point in vmlinux. Calculate the length from the next - // symbol vma - if (length == 0) { - u32 next_offset = start; - if (next) { - next_offset = next->filepos(); - } else { - next_offset = file_size; - } - length = next_offset - start; - } -#endif /* USE_ELF_INTERNAL */ + u32 end = next ? next->filepos() : file_size; - return length; + return end - start; } |
From: Philippe Elie <phil_e@us...> - 2003-08-16 14:51:03
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv32456 Modified Files: ChangeLog TODO Log Message: libutil++/op_bfd.cpp: remove ELF-based symbol size code Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1153 retrieving revision 1.1154 diff -u -p -d -r1.1153 -r1.1154 --- ChangeLog 15 Aug 2003 20:06:22 -0000 1.1153 +++ ChangeLog 16 Aug 2003 14:00:10 -0000 1.1154 @@ -1,3 +1,7 @@ +2003-08-16 Philippe Elie <phil.el@...> + + * libutil++/op_bfd.cpp: remove ELF-based symbol size code + 2003-08-15 William Cohen <wcohen@...> * doc/opcontrol.1.in: Index: TODO =================================================================== RCS file: /cvsroot/oprofile/oprofile/TODO,v retrieving revision 1.258 retrieving revision 1.259 diff -u -p -d -r1.258 -r1.259 --- TODO 11 Aug 2003 21:11:53 -0000 1.258 +++ TODO 16 Aug 2003 14:00:10 -0000 1.259 @@ -60,7 +60,6 @@ Before 1.0 little stuff o fix /dev/null mappings (see sf) (I've seen this once - john) o mask SIGTERM over critical daemon operations that could corrupt sample files o pp tools must handle samples count overflow (marked as (unsigned)-1) - o verify if we can remove the ELF-based symbol size code o must we do setrlimit(RLIMIT_NOFILE, ...) for daemon ? Isn't already limited by the kernel itself ? - we must do this o when we dump stats for oprofiled, dump kernel-side values too (for 2.5) |
From: William Cohen <wcohen@us...> - 2003-08-15 20:14:02
|
Update of /cvsroot/oprofile/oprofile In directory sc8-pr-cvs1:/tmp/cvs-serv27512 Modified Files: ChangeLog Log Message: * doc/opcontrol.1.in: * doc/oprofile.1.in: * doc/oprofile.xml: Correct path to /root/.oprofile/daemonrc. Index: ChangeLog =================================================================== RCS file: /cvsroot/oprofile/oprofile/ChangeLog,v retrieving revision 1.1152 retrieving revision 1.1153 diff -u -p -d -r1.1152 -r1.1153 --- ChangeLog 15 Aug 2003 13:41:48 -0000 1.1152 +++ ChangeLog 15 Aug 2003 20:06:22 -0000 1.1153 @@ -1,3 +1,9 @@ +2003-08-15 William Cohen <wcohen@...> + + * doc/opcontrol.1.in: + * doc/oprofile.1.in: + * doc/oprofile.xml: Correct path to /root/.oprofile/daemonrc. + 2003-08-15 Thomas Spatzier <TSPAT@...> * daemon/opd_cookie.h: fix s390 syscall |