Re: Interrupt distribution on SMP machine

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

 



On 4/26/07, Muhammad Tayseer Alquoatli <idoit.ief@xxxxxxxxx> wrote:



On 4/25/07, Raseel Bhagat <raseelbhagat@xxxxxxxxx> wrote:
> Hi
>
> On 4/25/07, Muhammad Tayseer Alquoatli <idoit.ief@xxxxxxxxx> wrote:
> > Hi all:
> > I'm wondering about interrupts distribution in Linux kernel, lets say
> > i'm running Linux on a dual core processor, then Linux will distribute
> > incoming interrupts between these two cores (processors)
> > lets say also i'm running a service that uses nearly equal
> > cpu/io/network time like a proxy that has many things to check in the
> > content before issue an IO command to HDs or to network interface
> > the question is, is it better to let all IO/network interrupts be
> > routed to CPU0 and assign CPU1 to run the service user-level process ?
> > or let Linux handles it if Linux can do it more efficiently
>
> Usually its a good idea to let Linux do it.
>
> > and what is the side effect of such partitioning on high IO/network
> > interrupts on CPU0?
> > In general, is manual interrupt/cpu assignment on SMP machine a good
> > or a bad idea?
> > Thanks in advance
>
> There is an RTOS (RTLinux)  whose basic idea is to let the Linux
> kernel handle all non-RT events while another mini-kernel sitting on
> top of the vanilla kernel, handles all real time tasks.
> So, if such a bifurcation can be handled at the software level to give
> "hard" real time performance, it would certainly be very interesting
> to do so at the hardware level as well.

Thanks,
According to both replies i think i miss explain my goal. To set that goal
clear,I'm not interested in giving priority to some interrupt other than the
other, all is i want is to let that CPU intensive process work on one
processor without being much interrupted with hardware interrupts that will
be routed to the other processor
If doing so will help the user-level process to live and work more efficient
then what is the impact of routing all the interrupts to one processor to
let the other CPU free for my CPU hungry user-level process live as much as
possible less interrupted.
I hope it's clear not, but anyway let me ask another question, does the
interrupt distribution algorithm takes a user-level process running on the
processor into accounts in its decision of interrupt distribution?

No, I dont think so.

more clear, what are the parameters taken into consideration when Linux
wants to decide which processor will handle this incoming interrupt

I guess It is not Linux who decides but the APIC. If interrupts are
disabled on one CPU the interrupts will be routed to other processor.
Moreover I don't think really makes use of the Task priority register
on the APIC, as i haven't encountered any thing in the context switch
code which looks like setting this register.

So, in short if you really want to do what you intend to(though i am
sure Linux on its own will perform much better than being smart with
kernel), you can have a look into modern APICs and features they
provide to you as programmable registers.

HTH

~psr
Thank previously


--
Muhammad Tayseer Alquoatli


--
play the game

--
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