Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
1c34bde1
Commit
1c34bde1
authored
May 21, 2010
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'perf' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6
into perf/core
parents
915e5558
5d06e691
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
26 deletions
+35
-26
tools/perf/builtin-record.c
tools/perf/builtin-record.c
+1
-16
tools/perf/builtin-report.c
tools/perf/builtin-report.c
+4
-4
tools/perf/perf.c
tools/perf/perf.c
+23
-2
tools/perf/util/cache.h
tools/perf/util/cache.h
+1
-1
tools/perf/util/newt.c
tools/perf/util/newt.c
+6
-3
No files found.
tools/perf/builtin-record.c
View file @
1c34bde1
...
@@ -65,9 +65,6 @@ static bool multiplex = false;
...
@@ -65,9 +65,6 @@ static bool multiplex = false;
static
int
multiplex_fd
=
-
1
;
static
int
multiplex_fd
=
-
1
;
static
long
samples
=
0
;
static
long
samples
=
0
;
static
struct
timeval
last_read
;
static
struct
timeval
this_read
;
static
u64
bytes_written
=
0
;
static
u64
bytes_written
=
0
;
static
struct
pollfd
*
event_array
;
static
struct
pollfd
*
event_array
;
...
@@ -147,8 +144,6 @@ static void mmap_read(struct mmap_data *md)
...
@@ -147,8 +144,6 @@ static void mmap_read(struct mmap_data *md)
void
*
buf
;
void
*
buf
;
int
diff
;
int
diff
;
gettimeofday
(
&
this_read
,
NULL
);
/*
/*
* If we're further behind than half the buffer, there's a chance
* If we're further behind than half the buffer, there's a chance
* the writer will bite our tail and mess up the samples under us.
* the writer will bite our tail and mess up the samples under us.
...
@@ -159,23 +154,13 @@ static void mmap_read(struct mmap_data *md)
...
@@ -159,23 +154,13 @@ static void mmap_read(struct mmap_data *md)
*/
*/
diff
=
head
-
old
;
diff
=
head
-
old
;
if
(
diff
<
0
)
{
if
(
diff
<
0
)
{
struct
timeval
iv
;
fprintf
(
stderr
,
"WARNING: failed to keep up with mmap data
\n
"
);
unsigned
long
msecs
;
timersub
(
&
this_read
,
&
last_read
,
&
iv
);
msecs
=
iv
.
tv_sec
*
1000
+
iv
.
tv_usec
/
1000
;
fprintf
(
stderr
,
"WARNING: failed to keep up with mmap data."
" Last read %lu msecs ago.
\n
"
,
msecs
);
/*
/*
* head points to a known good entry, start there.
* head points to a known good entry, start there.
*/
*/
old
=
head
;
old
=
head
;
}
}
last_read
=
this_read
;
if
(
old
!=
head
)
if
(
old
!=
head
)
samples
++
;
samples
++
;
...
...
tools/perf/builtin-report.c
View file @
1c34bde1
...
@@ -116,7 +116,7 @@ static int perf_session__add_hist_entry(struct perf_session *self,
...
@@ -116,7 +116,7 @@ static int perf_session__add_hist_entry(struct perf_session *self,
* so we don't allocated the extra space needed because the stdio
* so we don't allocated the extra space needed because the stdio
* code will not use it.
* code will not use it.
*/
*/
if
(
use_browser
)
if
(
use_browser
>
0
)
err
=
hist_entry__inc_addr_samples
(
he
,
al
->
addr
);
err
=
hist_entry__inc_addr_samples
(
he
,
al
->
addr
);
out_free_syms:
out_free_syms:
free
(
syms
);
free
(
syms
);
...
@@ -330,7 +330,7 @@ static int __cmd_report(void)
...
@@ -330,7 +330,7 @@ static int __cmd_report(void)
hists
=
rb_entry
(
next
,
struct
hists
,
rb_node
);
hists
=
rb_entry
(
next
,
struct
hists
,
rb_node
);
hists__collapse_resort
(
hists
);
hists__collapse_resort
(
hists
);
hists__output_resort
(
hists
);
hists__output_resort
(
hists
);
if
(
use_browser
)
if
(
use_browser
>
0
)
hists__browse
(
hists
,
help
,
input_name
);
hists__browse
(
hists
,
help
,
input_name
);
else
{
else
{
const
char
*
evname
=
NULL
;
const
char
*
evname
=
NULL
;
...
@@ -347,7 +347,7 @@ static int __cmd_report(void)
...
@@ -347,7 +347,7 @@ static int __cmd_report(void)
next
=
rb_next
(
&
hists
->
rb_node
);
next
=
rb_next
(
&
hists
->
rb_node
);
}
}
if
(
!
use_browser
&&
sort_order
==
default_sort_order
&&
if
(
use_browser
<=
0
&&
sort_order
==
default_sort_order
&&
parent_pattern
==
default_parent_pattern
)
{
parent_pattern
==
default_parent_pattern
)
{
fprintf
(
stdout
,
"#
\n
# (%s)
\n
#
\n
"
,
help
);
fprintf
(
stdout
,
"#
\n
# (%s)
\n
#
\n
"
,
help
);
...
@@ -491,7 +491,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __used)
...
@@ -491,7 +491,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __used)
* so don't allocate extra space that won't be used in the stdio
* so don't allocate extra space that won't be used in the stdio
* implementation.
* implementation.
*/
*/
if
(
use_browser
)
if
(
use_browser
>
0
)
symbol_conf
.
priv_size
=
sizeof
(
struct
sym_priv
);
symbol_conf
.
priv_size
=
sizeof
(
struct
sym_priv
);
if
(
symbol__init
()
<
0
)
if
(
symbol__init
()
<
0
)
...
...
tools/perf/perf.c
View file @
1c34bde1
...
@@ -15,15 +15,15 @@
...
@@ -15,15 +15,15 @@
#include "util/parse-events.h"
#include "util/parse-events.h"
#include "util/debugfs.h"
#include "util/debugfs.h"
bool
use_browser
;
const
char
perf_usage_string
[]
=
const
char
perf_usage_string
[]
=
"perf [--version] [--help] COMMAND [ARGS]"
;
"perf [--version] [--help] COMMAND [ARGS]"
;
const
char
perf_more_info_string
[]
=
const
char
perf_more_info_string
[]
=
"See 'perf help COMMAND' for more information on a specific command."
;
"See 'perf help COMMAND' for more information on a specific command."
;
int
use_browser
=
-
1
;
static
int
use_pager
=
-
1
;
static
int
use_pager
=
-
1
;
struct
pager_config
{
struct
pager_config
{
const
char
*
cmd
;
const
char
*
cmd
;
int
val
;
int
val
;
...
@@ -49,6 +49,24 @@ int check_pager_config(const char *cmd)
...
@@ -49,6 +49,24 @@ int check_pager_config(const char *cmd)
return
c
.
val
;
return
c
.
val
;
}
}
static
int
tui_command_config
(
const
char
*
var
,
const
char
*
value
,
void
*
data
)
{
struct
pager_config
*
c
=
data
;
if
(
!
prefixcmp
(
var
,
"tui."
)
&&
!
strcmp
(
var
+
4
,
c
->
cmd
))
c
->
val
=
perf_config_bool
(
var
,
value
);
return
0
;
}
/* returns 0 for "no tui", 1 for "use tui", and -1 for "not specified" */
static
int
check_tui_config
(
const
char
*
cmd
)
{
struct
pager_config
c
;
c
.
cmd
=
cmd
;
c
.
val
=
-
1
;
perf_config
(
tui_command_config
,
&
c
);
return
c
.
val
;
}
static
void
commit_pager_choice
(
void
)
static
void
commit_pager_choice
(
void
)
{
{
switch
(
use_pager
)
{
switch
(
use_pager
)
{
...
@@ -255,6 +273,9 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
...
@@ -255,6 +273,9 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
if
(
p
->
option
&
RUN_SETUP
)
if
(
p
->
option
&
RUN_SETUP
)
prefix
=
NULL
;
/* setup_perf_directory(); */
prefix
=
NULL
;
/* setup_perf_directory(); */
if
(
use_browser
==
-
1
)
use_browser
=
check_tui_config
(
p
->
cmd
);
if
(
use_pager
==
-
1
&&
p
->
option
&
RUN_SETUP
)
if
(
use_pager
==
-
1
&&
p
->
option
&
RUN_SETUP
)
use_pager
=
check_pager_config
(
p
->
cmd
);
use_pager
=
check_pager_config
(
p
->
cmd
);
if
(
use_pager
==
-
1
&&
p
->
option
&
USE_PAGER
)
if
(
use_pager
==
-
1
&&
p
->
option
&
USE_PAGER
)
...
...
tools/perf/util/cache.h
View file @
1c34bde1
...
@@ -30,7 +30,7 @@ extern const char *pager_program;
...
@@ -30,7 +30,7 @@ extern const char *pager_program;
extern
int
pager_in_use
(
void
);
extern
int
pager_in_use
(
void
);
extern
int
pager_use_color
;
extern
int
pager_use_color
;
extern
bool
use_browser
;
extern
int
use_browser
;
#ifdef NO_NEWT_SUPPORT
#ifdef NO_NEWT_SUPPORT
static
inline
void
setup_browser
(
void
)
static
inline
void
setup_browser
(
void
)
...
...
tools/perf/util/newt.c
View file @
1c34bde1
...
@@ -1068,10 +1068,13 @@ static struct newtPercentTreeColors {
...
@@ -1068,10 +1068,13 @@ static struct newtPercentTreeColors {
void
setup_browser
(
void
)
void
setup_browser
(
void
)
{
{
struct
newtPercentTreeColors
*
c
=
&
defaultPercentTreeColors
;
struct
newtPercentTreeColors
*
c
=
&
defaultPercentTreeColors
;
if
(
!
isatty
(
1
))
if
(
!
isatty
(
1
)
||
!
use_browser
)
{
setup_pager
();
return
;
return
;
}
use_browser
=
true
;
use_browser
=
1
;
newtInit
();
newtInit
();
newtCls
();
newtCls
();
ui_helpline__puts
(
" "
);
ui_helpline__puts
(
" "
);
...
@@ -1084,7 +1087,7 @@ void setup_browser(void)
...
@@ -1084,7 +1087,7 @@ void setup_browser(void)
void
exit_browser
(
bool
wait_for_ok
)
void
exit_browser
(
bool
wait_for_ok
)
{
{
if
(
use_browser
)
{
if
(
use_browser
>
0
)
{
if
(
wait_for_ok
)
{
if
(
wait_for_ok
)
{
char
title
[]
=
"Fatal Error"
,
ok
[]
=
"Ok"
;
char
title
[]
=
"Fatal Error"
,
ok
[]
=
"Ok"
;
newtWinMessage
(
title
,
ok
,
browser__last_msg
);
newtWinMessage
(
title
,
ok
,
browser__last_msg
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment