Module vs Kernel main performacne

Peter Senna Tschudin peter.senna at gmail.com
Thu Jun 7 14:10:07 EDT 2012


Hello Abu,

On Thu, Jun 7, 2012 at 2:47 PM, Abu Rasheda <rcpilot2010 at gmail.com> wrote:
>> 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.
>
>
>>
>> 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



More information about the Kernelnewbies mailing list