Performance Monitoring and Kernel Module Source Code Pointers

These are some of the files essential to the perf_event_open() system call on the ARM architecture. Because glibc provides no wrapper for this function, it must be called directly with syscall(). System calls are very dependent on architecture, both in how they are invoked as well as what calls are available to be made.

The include/linux/syscalls.h file provides architecture independent forward declarations of all kernel system calls. This is the kernel's internal interface to system call functions.

The arch/arm/include/uapi/asm/unistd.h file provides ARM architecture specific definitions of system call numbers.

The arch/arm/kernel/entry-common.S file provides the ARM architecture specific entry point for system calls.

The arch/arm/tools/syscall.tbl file installs system call numbers and associated function addresses into the ARM hardware's system call table.

The kernel/events/core.c file defines the perf_event_open syscall.

The following file enables kernel modules to be loaded and unloaded dynamically on an online system.

The kernel/module.c file contains kernel code related to modules.

Of particular interest are the delete_module and init_module system call definitions provided in that file.