Hello Abu, On Thu, Jun 7, 2012 at 2:47 PM, Abu Rasheda <rcpilot2010@xxxxxxxxx> 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@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@xxxxxxxxx gpg id: 48274C36 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies