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
nexedi
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
Show 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 <linux/oprofile.h>
#include "oprof.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