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
41a46a24
Commit
41a46a24
authored
Dec 20, 2002
by
Dave Jones
Browse files
Options
Browse Files
Download
Plain Diff
Merge tetrachloride.(none):/mnt/stuff/kernel/2.5/bk-linus
into tetrachloride.(none):/mnt/stuff/kernel/2.5/agpgart
parents
aa3da64c
8c977c50
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
50 additions
and
62 deletions
+50
-62
Documentation/Changes
Documentation/Changes
+5
-0
arch/i386/oprofile/init.c
arch/i386/oprofile/init.c
+0
-1
arch/i386/oprofile/nmi_int.c
arch/i386/oprofile/nmi_int.c
+1
-10
drivers/oprofile/buffer_sync.c
drivers/oprofile/buffer_sync.c
+6
-6
drivers/oprofile/cpu_buffer.c
drivers/oprofile/cpu_buffer.c
+1
-6
drivers/oprofile/event_buffer.c
drivers/oprofile/event_buffer.c
+5
-9
drivers/oprofile/event_buffer.h
drivers/oprofile/event_buffer.h
+1
-1
drivers/oprofile/oprof.c
drivers/oprofile/oprof.c
+8
-7
drivers/oprofile/oprof.h
drivers/oprofile/oprof.h
+5
-3
drivers/oprofile/oprofile_files.c
drivers/oprofile/oprofile_files.c
+15
-13
drivers/oprofile/oprofilefs.c
drivers/oprofile/oprofilefs.c
+2
-5
include/linux/oprofile.h
include/linux/oprofile.h
+1
-1
No files found.
Documentation/Changes
View file @
41a46a24
...
...
@@ -61,6 +61,7 @@ o pcmcia-cs 3.1.21 # cardmgr -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o procps 2.0.9 # ps --version
o oprofile 0.5 # oprofiled --version
Kernel compilation
==================
...
...
@@ -368,6 +369,10 @@ Ip-route2
---------
o <ftp://ftp.inr.ac.ru/ip-routing/iproute2-2.2.4-now-ss991023.tar.gz>
OProfile
--------
o <http://oprofile.sf.net/download.php3>
Suggestions and corrections
===========================
...
...
arch/i386/oprofile/init.c
View file @
41a46a24
...
...
@@ -7,7 +7,6 @@
* @author John Levon <levon@movementarian.org>
*/
#include <linux/kernel.h>
#include <linux/oprofile.h>
#include <linux/init.h>
...
...
arch/i386/oprofile/nmi_int.c
View file @
41a46a24
...
...
@@ -7,19 +7,13 @@
* @author John Levon <levon@movementarian.org>
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/notifier.h>
#include <linux/smp.h>
#include <linux/oprofile.h>
#include <linux/pm.h>
#include <linux/thread_info.h>
#include <asm/nmi.h>
#include <asm/ptrace.h>
#include <asm/msr.h>
#include <asm/apic.h>
#include <asm/bitops.h>
#include <asm/processor.h>
#include "op_counter.h"
#include "op_x86_model.h"
...
...
@@ -27,7 +21,6 @@
static
struct
op_x86_model_spec
const
*
model
;
static
struct
op_msrs
cpu_msrs
[
NR_CPUS
];
static
unsigned
long
saved_lvtpc
[
NR_CPUS
];
static
unsigned
long
kernel_only
;
static
int
nmi_start
(
void
);
static
void
nmi_stop
(
void
);
...
...
@@ -53,10 +46,9 @@ static int oprofile_pm_callback(struct pm_dev * dev,
}
// FIXME: kernel_only
static
int
nmi_callback
(
struct
pt_regs
*
regs
,
int
cpu
)
{
return
(
model
->
check_ctrs
(
cpu
,
&
cpu_msrs
[
cpu
],
regs
)
);
return
model
->
check_ctrs
(
cpu
,
&
cpu_msrs
[
cpu
],
regs
);
}
...
...
@@ -210,7 +202,6 @@ static int nmi_create_files(struct super_block * sb, struct dentry * root)
oprofilefs_create_ulong
(
sb
,
dir
,
"user"
,
&
counter_config
[
i
].
user
);
}
oprofilefs_create_ulong
(
sb
,
root
,
"kernel_only"
,
&
kernel_only
);
return
0
;
}
...
...
drivers/oprofile/buffer_sync.c
View file @
41a46a24
...
...
@@ -19,17 +19,17 @@
* objects.
*/
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/timer.h>
#include <linux/dcookies.h>
#include <linux/workqueue.h>
#include <linux/notifier.h>
#include <linux/dcookies.h>
#include <linux/profile.h>
#include <linux/workqueue.h>
#include <linux/fs.h>
#include "oprofile_stats.h"
#include "event_buffer.h"
#include "cpu_buffer.h"
#include "
oprofile_stats
.h"
#include "
buffer_sync
.h"
#define DEFAULT_EXPIRE (HZ / 4)
...
...
drivers/oprofile/cpu_buffer.c
View file @
41a46a24
...
...
@@ -19,13 +19,10 @@
#include <linux/sched.h>
#include <linux/vmalloc.h>
#include <linux/smp.h>
#include <linux/errno.h>
#include <linux/cache.h>
#include "cpu_buffer.h"
#include "oprof.h"
#include "oprofile_stats.h"
struct
oprofile_cpu_buffer
cpu_buffer
[
NR_CPUS
]
__cacheline_aligned
;
...
...
@@ -68,6 +65,7 @@ int alloc_cpu_buffers(void)
b
->
sample_received
=
0
;
b
->
sample_lost_locked
=
0
;
b
->
sample_lost_overflow
=
0
;
b
->
sample_lost_task_exit
=
0
;
}
return
0
;
fail:
...
...
@@ -92,9 +90,6 @@ void oprofile_add_sample(unsigned long eip, unsigned long event, int cpu)
struct
oprofile_cpu_buffer
*
cpu_buf
=
&
cpu_buffer
[
cpu
];
struct
task_struct
*
task
;
/* temporary ? */
BUG_ON
(
!
oprofile_started
);
cpu_buf
->
sample_received
++
;
if
(
!
spin_trylock
(
&
cpu_buf
->
int_lock
))
{
...
...
drivers/oprofile/event_buffer.c
View file @
41a46a24
...
...
@@ -12,19 +12,15 @@
* escape value ESCAPE_CODE followed by an identifying code.
*/
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/vmalloc.h>
#include <linux/smp.h>
#include <linux/dcookies.h>
#include <linux/oprofile.h>
#include <linux/sched.h>
#include <linux/dcookies.h>
#include <linux/fs.h>
#include <asm/uaccess.h>
#include <asm/atomic.h>
#include "event_buffer.h"
#include "cpu_buffer.h"
#include "oprof.h"
#include "event_buffer.h"
#include "oprofile_stats.h"
DECLARE_MUTEX
(
buffer_sem
);
...
...
drivers/oprofile/event_buffer.h
View file @
41a46a24
...
...
@@ -11,7 +11,7 @@
#define EVENT_BUFFER_H
#include <linux/types.h>
#include <
linux/sem
.h>
#include <
asm/semaphore
.h>
int
alloc_event_buffer
(
void
);
...
...
drivers/oprofile/oprof.c
View file @
41a46a24
...
...
@@ -10,12 +10,8 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/notifier.h>
#include <linux/profile.h>
#include <linux/oprofile.h>
#include <asm/semaphore.h>
#include "oprof.h"
#include "event_buffer.h"
...
...
@@ -82,11 +78,12 @@ int oprofile_start(void)
if
(
oprofile_started
)
goto
out
;
oprofile_reset_stats
();
if
((
err
=
oprofile_ops
->
start
()))
goto
out
;
oprofile_started
=
1
;
oprofile_reset_stats
();
out:
up
(
&
start_sem
);
return
err
;
...
...
@@ -148,6 +145,10 @@ static void __exit oprofile_exit(void)
oprofilefs_unregister
();
}
MODULE_LICENSE
(
"GPL"
);
module_init
(
oprofile_init
);
module_exit
(
oprofile_exit
);
MODULE_LICENSE
(
"GPL"
);
MODULE_AUTHOR
(
"John Levon <levon@movementarian.org>"
);
MODULE_DESCRIPTION
(
"OProfile system profiler"
);
drivers/oprofile/oprof.h
View file @
41a46a24
...
...
@@ -10,9 +10,6 @@
#ifndef OPROF_H
#define OPROF_H
#include <linux/spinlock.h>
#include <linux/oprofile.h>
int
oprofile_setup
(
void
);
void
oprofile_shutdown
(
void
);
...
...
@@ -22,6 +19,8 @@ void oprofilefs_unregister(void);
int
oprofile_start
(
void
);
void
oprofile_stop
(
void
);
struct
oprofile_operations
;
extern
unsigned
long
fs_buffer_size
;
extern
unsigned
long
fs_cpu_buffer_size
;
extern
unsigned
long
fs_buffer_watershed
;
...
...
@@ -29,6 +28,9 @@ extern enum oprofile_cpu oprofile_cpu_type;
extern
struct
oprofile_operations
*
oprofile_ops
;
extern
unsigned
long
oprofile_started
;
struct
super_block
;
struct
dentry
;
void
oprofile_create_files
(
struct
super_block
*
sb
,
struct
dentry
*
root
);
#endif
/* OPROF_H */
drivers/oprofile/oprofile_files.c
View file @
41a46a24
...
...
@@ -7,26 +7,18 @@
* @author John Levon <levon@movementarian.org>
*/
#include <linux/oprofile.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <asm/uaccess.h>
#include "oprof.h"
#include <linux/oprofile.h>
#include "event_buffer.h"
#include "oprofile_stats.h"
#include "oprof.h"
unsigned
long
fs_buffer_size
=
131072
;
unsigned
long
fs_cpu_buffer_size
=
8192
;
unsigned
long
fs_buffer_watershed
=
32768
;
/* FIXME: tune */
static
int
simple_open
(
struct
inode
*
inode
,
struct
file
*
filp
)
{
return
0
;
}
static
ssize_t
cpu_type_read
(
struct
file
*
file
,
char
*
buf
,
size_t
count
,
loff_t
*
offset
)
{
unsigned
long
cpu_type
=
oprofile_cpu_type
;
...
...
@@ -36,7 +28,6 @@ static ssize_t cpu_type_read(struct file * file, char * buf, size_t count, loff_
static
struct
file_operations
cpu_type_fops
=
{
.
open
=
simple_open
,
.
read
=
cpu_type_read
,
};
...
...
@@ -71,15 +62,26 @@ static ssize_t enable_write(struct file *file, char const * buf, size_t count, l
static
struct
file_operations
enable_fops
=
{
.
open
=
simple_open
,
.
read
=
enable_read
,
.
write
=
enable_write
,
};
static
ssize_t
dump_write
(
struct
file
*
file
,
char
const
*
buf
,
size_t
count
,
loff_t
*
offset
)
{
wake_up_buffer_waiter
();
return
count
;
}
static
struct
file_operations
dump_fops
=
{
.
write
=
dump_write
,
};
void
oprofile_create_files
(
struct
super_block
*
sb
,
struct
dentry
*
root
)
{
oprofilefs_create_file
(
sb
,
root
,
"enable"
,
&
enable_fops
);
oprofilefs_create_file
(
sb
,
root
,
"dump"
,
&
dump_fops
);
oprofilefs_create_file
(
sb
,
root
,
"buffer"
,
&
event_buffer_fops
);
oprofilefs_create_ulong
(
sb
,
root
,
"buffer_size"
,
&
fs_buffer_size
);
oprofilefs_create_ulong
(
sb
,
root
,
"buffer_watershed"
,
&
fs_buffer_watershed
);
...
...
drivers/oprofile/oprofilefs.c
View file @
41a46a24
...
...
@@ -12,12 +12,9 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/pagemap.h>
#include <linux/fs.h>
#include <linux/dcache.h>
#include <linux/file.h>
#include <linux/namei.h>
#include <linux/oprofile.h>
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <asm/uaccess.h>
#include "oprof.h"
...
...
include/linux/oprofile.h
View file @
41a46a24
...
...
@@ -55,7 +55,7 @@ int oprofile_arch_init(struct oprofile_operations ** ops, enum oprofile_cpu * cp
* Add a sample. This may be called from any context. Pass
* smp_processor_id() as cpu.
*/
extern
void
FASTCALL
(
oprofile_add_sample
(
unsigned
long
eip
,
unsigned
long
event
,
int
cpu
)
);
extern
void
oprofile_add_sample
(
unsigned
long
eip
,
unsigned
long
event
,
int
cpu
);
/**
* Create a file of the given name as a child of the given root, with
...
...
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