Thanks for reply.

2011/3/15 Mulyadi Santosa <mulyadi.santosa@gmail.com>
Hi Minwoo...

I am not the best... just trying to give idea here...

On Tue, Mar 15, 2011 at 00:03, Minwoo Lee <ermaker@gmail.com> wrote:
> Hello.
> I am hacking the kernel source for studying.
> I just modified schedule() in kernel/sched.c for profiling processes.


basic question is: are you sure the cache misses you see during
schedule is entirely attributed to the soon-to-be-switched-out
process? have you consider that during that process run time, on going
interrupts/exception etc could attribute into the cache misses?

You're right. This code is wrong. I wrote the code just for checking that the perf library runs.
The code should be changed to check cache misses while in a slice time(or an unit time?).
The main problem is, sys_pref_event_open does not return the valid fd.
I have no idea why sys_perf_event_open returns invalid fd.
 

and about this line:
BUG_ON(res != sizeof(u64))

not sure if I read it correctly, but previously I see "res" is
declared as size_t, right?

Yes, res is declared as size_t.
Also type of sizeof() is size_t. Isn't it right?
This line assumes that sys_read() read correctly.
This line is from the code in line 227 at tools/perf/builtin-stat.c,

225                         res = read(fd[cpu][counter][thread],
226                                         single_count, nv * sizeof(u64));
227                         assert(res == nv * sizeof(u64));

 



--
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com