- Run
watch -d -n 0.1 cat /proc/interrupts
and find on what core periodic acpi interrupts happen - Pin a latency-sensitive application on that CPU core using
taskset -c $CORE $APP
where $CORE is the cpu number found in step 1. Observe that there are periodic interruptions in the real-time app (every ~0.5 seconds).
- Run
watch -d -n 0.1 cat /proc/interrupts
and find on what core a lot of interrupts happen when holding your finger on the touchpad - Pin a latency-sensitive application on that CPU core using
taskset -c $CORE $APP
where $CORE is the cpu number found in step 1
- Pin the application on a different core
- Mask acpi interrupts
- For acpi interrupts, identify which acpi interrupt is causing a lot of interrupts:
grep . /sys/firmware/acpi/interrupts/*
- Temporarily mask the interrupt:
echo mask > /sys/firmware/acpi/interrupts/gpe6E
, replacing gpe6E with the offending GPE - Permanently mask the interrupt: Add
acpi_mask_gpe=0x6e
to your kernel boot arguments - The offending GPE on my machine corresponds to the GPE number of the embedded controler, as seen with dmesg:
[ 0.567725] ACPI: EC: GPE=0x6e
- For acpi interrupts, identify which acpi interrupt is causing a lot of interrupts: