There is a similar question asked here:
Notify gpio interrupt to user space from a kernel module
Please check above question. However, i can provide my approach which i suggested there as well.
You can send a signal to user space thread from kernel API, which can help u run non-blocking:
send_sig(int sig, struct task_struct *p, int priv);
You need to be aware of pid of user thread in Kernel. You can over come this by writing pid of user process via /proc and then kernel reading the pid. With this arrangement, when there is an interrupt, kernel can send signal to user thread. In case your process restarts or gets killed, you will have to update the pid via proc. Just for status notification you can use this method; however if you like to transfer data along with status than Netlink or char driver mechanism is good way.
nice
to increase the program's priority? – Ben Voigtbusybox
hasnice
,renice
, andchpst
. If any of those applets are enabled, you can use them to run your user-space program with a differently priority. Is it running as root (only the superuser can raise priority)? – Ben Voigtpoll(2)
that device). – Basile Starynkevitch