06-27-2010
Getting notified in user-space on interrupts
Hi,
I'm working on an AMD opteron running Linux 2.6.28.6
I want to preload a module specific register (MSR) with a value to have it overflow after a number of a specific event counts. As I understand, when the counter in the register overflows, an interrupt will be generated and handled by the appropriate interrupt handler. How can my user-level application get notified whenever the interrupt occurs? I want to know the instruction that caused the overflow. Is this possible?
I think this is different than responding to signals with sigaction(). I never dealt with interrupts before, so any help is appreciated.
Thanks
10 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
I'm a freshman here and I have a simple question.
Does unix use interrupts which is like Dos? Are they the same?
Thx.:cool: (6 Replies)
Discussion started by: Frank_M
6 Replies
2. UNIX for Dummies Questions & Answers
hey i have been facing a problem,can you tell me if we can catch ctrl d in unix i have tried and sucessfully catched and disabled ctrl-c and ctrl -z but am not sure if we can do the same for CTRL-D, so got any clue mail on he forum or ...i mean c programming in Unix thats what i am working on (1 Reply)
Discussion started by: toughguy2handle
1 Replies
3. UNIX for Dummies Questions & Answers
Well, I don't know where exactly to ask this doubt so I'm asking in the newbie section. I was reading about traps and interrupts when I thought of traps as something that cease the control of the OS from the user and interrupts that cease the control yet provide support for multitasking. Am I right... (3 Replies)
Discussion started by: Legend986
3 Replies
4. Shell Programming and Scripting
Hi All,
Just wanted to know if there is any way by which users can be notified about the failures in disks on Red Hat linux systems.
Thanks for all the help!!
nua7 (4 Replies)
Discussion started by: nua7
4 Replies
5. UNIX for Dummies Questions & Answers
Hi all,
I am new here ,i want to know about interrupts in detail.What r
Interrupts .how they r handeled.
Thanx in adavnce. (1 Reply)
Discussion started by: vishwasrao
1 Replies
6. UNIX for Advanced & Expert Users
Hello, I'm searching for a proper way to let the kernel space ISR(implemented in a kernel module) wake up a user space thread on a hardware interrupt.
Except for sending a real-time signal, is it possible to use a semaphore?
I've searched it on google, but it seems impossible to share a... (0 Replies)
Discussion started by: aaronwong
0 Replies
7. Programming
Can a user space application be asynchronously affected of its normal execution course by an interrupt?
How does the driver know which user space process to interrupt?
What are the functions in user space and kernel drivers that achieve this? (1 Reply)
Discussion started by: dragonpoint
1 Replies
8. Programming
What is the simplest function I can use to signal an interrupt from kernel module to user space. I knw the usr app pid in my module.
Also can someone explain the parameters in kill_fasync and send_sig (0 Replies)
Discussion started by: dragonpoint
0 Replies
9. Shell Programming and Scripting
Hi,
I use third-party softwares but like to get notified when screenshots, if any, are taken.
Any hints on how to achieve it?
Thanks,
Riku
Linux 3.19.0-56-generic #62~14.04.1-Ubuntu SMP Fri Mar 11 11:03:15 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Ubuntu 14.04.3 LTS (3 Replies)
Discussion started by: rikuito
3 Replies
10. UNIX for Beginners Questions & Answers
Recently, I setup a dual boot on this PC. I can currently jump from Ubuntu 12.04 and 16.04. What I would like to be able to do is access the home directory of my 16.04 OS from within the 12.04, is that possible? I can mount the partition of the hard drive where 16.04 lives from within 12.04 but it... (4 Replies)
Discussion started by: Circuits
4 Replies
LEARN ABOUT OPENSOLARIS
kstat_intr
kstat_intr(9S) Data Structures for Drivers kstat_intr(9S)
NAME
kstat_intr - structure for interrupt kstats
SYNOPSIS
#include <sys/types.h>
#include <sys/kstat.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI)
DESCRIPTION
Interrupt statistics are kept in the kstat_intr structure. When kstat_create(9F) creates an interrupt kstat, the ks_data field is a pointer
to one of these structures. The macro KSTAT_INTR_PTR() is provided to retrieve this field. It looks like this:
#define KSTAT_INTR_PTR(kptr) ((kstat_intr_t *)(kptr)->ks_data)
An interrupt is a hard interrupt (sourced from the hardware device itself), a soft interrupt (induced by the system through the use of some
system interrupt source), a watchdog interrupt (induced by a periodic timer call), spurious (an interrupt entry point was entered but there
was no interrupt to service), or multiple service (an interrupt was detected and serviced just prior to returning from any of the other
types).
Drivers generally report only claimed hard interrupts and soft interrupts from their handlers, but measurement of the spurious class of
interrupts is useful for auto-vectored devices in order to pinpoint any interrupt latency problems in a particular system configuration.
Devices that have more than one interrupt of the same type should use multiple structures.
STRUCTURE MEMBERS
ulong_t intrs[KSTAT_NUM_INTRS]; /* interrupt counters */
The only member exposed to drivers is the intrs member. This field is an array of counters. The driver must use the appropriate counter in
the array based on the type of interrupt condition.
The following indexes are supported:
KSTAT_INTR_HARD Hard interrupt
KSTAT_INTR_SOFT Soft interrupt
KSTAT_INTR_WATCHDOG Watchdog interrupt
KSTAT_INTR_SPURIOUS Spurious interrupt
KSTAT_INTR_MULTSVC Multiple service interrupt
SEE ALSO
kstat(9S)
Writing Device Drivers
SunOS 5.11 4 Apr 1994 kstat_intr(9S)