Implementing SMP
Posted: Mon Oct 03, 2005 10:17 pm
Hello
I would like to add SMP support to my kernel, i know what is required to know about spinlocks, but even after reading various information i still dont understand how to work with the apic and wake up and process all the other processors in the system.
and how exactly is hyper threading support should be programmed? is there any special restrictions i need to take into account?
if someone could please point me to a tutorial or even a piece of simple working code of how to easily implement SMP in a kernel (without regarding spinlocks) : that is:
initialize the APIC
intiialize other processors etc
use IPI to start schedule
how do I schedule a certain thread to a certain CPU?
'Multiprocessing Support for Hobby OSes Explained' is a really great article but is very unfinished and uninformative in many places, does any one know any other article like that with maybe more details and maybe more code?
Is there any place I can see some simple code of how to just make those things?
thanks!!!
I would like to add SMP support to my kernel, i know what is required to know about spinlocks, but even after reading various information i still dont understand how to work with the apic and wake up and process all the other processors in the system.
and how exactly is hyper threading support should be programmed? is there any special restrictions i need to take into account?
if someone could please point me to a tutorial or even a piece of simple working code of how to easily implement SMP in a kernel (without regarding spinlocks) : that is:
initialize the APIC
intiialize other processors etc
use IPI to start schedule
how do I schedule a certain thread to a certain CPU?
'Multiprocessing Support for Hobby OSes Explained' is a really great article but is very unfinished and uninformative in many places, does any one know any other article like that with maybe more details and maybe more code?
Is there any place I can see some simple code of how to just make those things?
thanks!!!