Re: What is a "Software Interrupt"?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/25/07, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote:
> Hi,
>
> As far as I understand, software interrupts are implemented using the
> "int" instruction. They are normally used to execute system calls
> where the system call generates a software interrupt ie.. "int 0x80h"
> which is handled by the kernel and thus the program switches from user
> mode to kernel mode to execute your system call. The kernel handles
> this interrupt and then executes your system call depending on the
> values in registers.
>
I *THINK* software interrupt ARE NOT implemented via "int"
instruction.    As I explained elsewhere in these threads, "int" will
go through the IDT (interrupt descriptor table), and ultimately ended
up as a hardware handler.   "int" is also used to pass control from
userspace to kernelspace with different CPL, so not sure if that is
called "software interrupt" or not.   But terminology changes and is
vague sometimes.

So let's focus on __do_softirq() function - it basically does not
handle "int" calls, unless the IDT handler for int 0x80 setup a
tasklet on the softirq queue list (only max 32 allowed).

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux