Re: SMP Kernel

From: Matias
Date: Fri Feb 20 2009 - 09:50:21 EST


Hi,
Ok, since the memory is shared between all the cores the Kernel can be invoked by any core receiving an interrupt and thus executed by that core?

If the above is right then how come that two separate CPUs can wake up, schedule and context-switch completely in parallel?
Are there an independent scheduler per cpu?

Directly from the sched-design.txt

- 'perfect' SMP scalability. With the new scheduler there is no 'big'
runqueue_lock anymore - it's all per-CPU runqueues and locks - two
tasks on two separate CPUs can wake up, schedule and context-switch
completely in parallel, without any interlocking. All
scheduling-relevant data is structured for maximum scalability.


Thx // Matias





zaharov skrev:
Matias wrote:
Hello,
When an SMP enabled kernel is booted on a Dual Core x86 machine ( Core
0-1 ) I guess the Kernel is decompressed and started on core 0.
At some point in time the kernel becomes SMP aware and can then
distribute threads on Cores 0 and 1.

Now, does the non-threaded part of the kernel with the scheduler
continue to run solely on Core 0?

Cheers // Matias
--
To unsubscribe from this list: send the line "unsubscribe
linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Kernel may run on any core .
When kernel end bootstrap and run init he execute hlt op.
After all live in kernel interrupt driven.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/