Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

KEEP KERNEL + IRQ HANDLERS ON SEPARATE CPU

Name: Anonymous 2006-09-02 2:36

This is all hypothetical.  I just want to know what you all think.

Assume a dual-core or other multi-cpu environment.

In standard operating systems, when the user program wants a system service from the OS, it must make a system call that results in expensive context switching.  Same thing for interrupts, they also result in context switching.

In a multiple-CPU(core) environment, what if we dedicated one cpu to running OS and even let's say another cpu for processing IRQs.  That's it.  All tasks on CPU 0 are kernel tasks, all tasks on CPU 1 are IRQ handling taska, and user programs are relegated to CPU 2+.

Wouldn't this completely eliminate any latency of system calls and IRQs?  Has this already been done?  Would performance gains be better this way or just having all tasks distributed equally among all available CPUs?

Name: Anonymous 2006-09-04 12:33 (sage)

>>5
Yet, to be useful, the interrupt handler needs to cause other code to be executed besides itself. If one of the processors is dedicated to only serving interrupts, then the interrupts cannot have an effect anywhere. (Unless they'd change a memory location and the other processors would poll that memory location... in which case, enjoy your software PIO!)

Guess what? Apart from polling, processor-to-processor communication happens using the almighty cross-processor interrupt. Which once again implies an interrupt handler. Ain't living great?

In a nutshell, shitty idea, shitty thread.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List