Thread (16 messages) 16 messages, 4 authors, 2012-06-09

Module vs Kernel main performacne

From: peter.senna@gmail.com (Peter Senna Tschudin)
Date: 2012-06-07 18:10:07

Hello Abu,

On Thu, Jun 7, 2012 at 2:47 PM, Abu Rasheda [off-list ref] wrote:
quoted
Hello Abu,

I had to include <linux/module.h> or an error was issued about
"THIS_MODULE".

I am running this tool on Scientific Linux 6.0, which is 2.6.32 kernel. I
know this is old but this is what I have for my product.

quoted
What Kernel version are you using? I'm trying to compile it and I'm
getting the error:

[peter at ace m]$ make
make -C /lib/modules/3.3.7-1.fc17.x86_64/build SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/kernels/3.3.7-1.fc17.x86_64'
?CC [M] ?/tmp/m/m.o
/tmp/m/m.c:36:2: error: unknown field ?ioctl? specified in initializer
/tmp/m/m.c:36:2: warning: initialization from incompatible pointer
type [enabled by default]
/tmp/m/m.c:36:2: warning: (near initialization for ?m_fops.llseek?)
[enabled by default]
make[2]: *** [/tmp/m/m.o] Error 1
make[1]: *** [_module_/tmp/m] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.3.7-1.fc17.x86_64'
make: *** [module] Error 2

According to:
http://lxr.linux.no/linux+v3.4.1/include/linux/fs.h#L1609

There is no .ioctl at struct file_operations...

Can you share how you've used perf/oprofile on your module/Kernel code?

[]'s

Peter

for perf:

perf stat -e
cpu-cycles,stalled-cycles-frontend,stalled-cycles-backend,instructions,cache-references,cache-misses,branch-instructions,branch-misses,bus-cycles,cpu-clock,task-clock,page-faults,minor-faults,major-faults,context-switches,cpu-migrations,alignment-faults,emulation-faults,L1-dcache-loads,L1-dcache-load-misses,L1-dcache-stores,L1-dcache-store-misses,L1-dcache-prefetches,L1-dcache-prefetch-misses,L1-icache-loads,L1-icache-load-misses,L1-icache-prefetches,L1-icache-prefetch-misses,LLC-loads,LLC-load-misses,LLC-stores,LLC-store-misses,LLC-prefetches,LLC-prefetch-misses,dTLB-loads,dTLB-load-misses,dTLB-stores,dTLB-store-misses,dTLB-prefetches,dTLB-prefetch-misses,iTLB-loads,iTLB-load-misses,branch-loads,branch-load-misses,syscalls:sys_enter_sendmsg,syscalls:sys_exit_sendmsg,sched:sched_wakeup,sched:sched_stat_sleep
./prog

for oprofile:

# opcontrol --reset
# opcontrol --vmlinux=/boot/vmlinux.64
# opcontrol --start
# ./a.out
# opcontrol --shutdown
# opreport -l -p
Thanks! I'll try it now.

I've made changes to your code, so it "probably" will:
 - Run on 3.4 Kernel
 - Partially meet Kernel coding style (Try to run scripts/checkpatch.pl -f m.c)
 - Stop working due lack of locking at m_ioctl(). I'm working on this now... :-)

See it at: http://pastebin.com/sibPrQJL

[]'s

Peter


-- 
Peter Senna Tschudin
peter.senna at gmail.com
gpg id: 48274C36
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help