-   Linux - Software (
-   -   Can anyone please explain about "Function call interrupts" entry in /proc/interrupts? (

cyclops.xmen 12-02-2009 01:51 PM

Can anyone please explain about "Function call interrupts" entry in /proc/interrupts?
In the /proc/interrupts file, there is one entry called the Function call interrupts.
Can anyone please explain to me how this interrupt is generated or what it does?
An example is shown in bold below.

$ cat /proc/interrupts

0: 7531 0 IO-APIC-edge timer
1: 2 0 IO-APIC-edge i8042
4: 2 0 IO-APIC-edge
6: 5 0 IO-APIC-edge floppy
7: 0 0 IO-APIC-edge parport0
8: 1 0 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 4 0 IO-APIC-edge i8042
14: 5175137 0 IO-APIC-edge ata_piix
15: 0 0 IO-APIC-edge ata_piix
16: 10030496 0 IO-APIC-fasteoi ohci1394, HDA Intel
17: 33884045 0 IO-APIC-fasteoi eth0
18: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
21: 2710880 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2
22: 0 0 IO-APIC-fasteoi uhci_hcd:usb3
23: 0 0 IO-APIC-fasteoi uhci_hcd:usb5
2299: 2586197 0 PCI-MSI-edge ahci
NMI: 0 0 Non-maskable interrupts
LOC: 173199773 171952935 Local timer interrupts
RES: 1503044 3046141 Rescheduling interrupts
CAL: 1360 2472 Function call interrupts
TLB: 546223 608397 TLB shootdowns
SPU: 0 0 Spurious interrupts
ERR: 0
MIS: 0

sundialsvcs 12-03-2009 08:32 PM

Some implementations of Linux, on some processors, use instructions that trigger software-interrupts to implement system calls. Whether or not your system does so depends on the CPU-type.

cyclops.xmen 12-09-2009 01:13 PM

Thanks a lot for replying to my question!
I have been pretty late in thanking you and I apologize for that.
From your reply what I understood is function call interrupts actually count software interrupts, executed by the INT <> instruction, depending on the CPU type.
However, I found out that this is not the case for both Intel (Core 2 Duo) and AMD (Dual Core Opteron) processors.
I've used one small assembly instruction in which I use the INT 0x80 instruction a number of times in a loop. This hasn't led to a single change in the number of function call interrupts. So the function call interrupts do not count the software interrupts at all for these CPU types and the version of Linux I'm using.
The linux version for both the systems are given below:
$ uname -a
Linux ruby 2.6.28-16-generic #55-Ubuntu SMP Tue Oct 20 19:48:32 UTC 2009 x86_64 GNU/Linux
Can you please give an example of a CPU type and Linux implementation in which the Function call interrupts in /proc/interrupts actually count the number of software interrupts? It will be very helpful for my work.
Thanks once again.

All times are GMT -5. The time now is 05:10 AM.