Hey, Thanks for the replies Robert and Ryan! That was insigthful.
I didn't know about the BP and the shutdown thingy, always learning :-) >> On Mon, 31 Jan 2005 [EMAIL PROTECTED] wrote: >> >>> I'd like some insight on the following; Me and a friend were discussing >>> tech stuff and he said that, when using dual (or more) CPU systems, it >>> is the hardware itself (and alone) choosing which CPU will execute this >>> or that process. >>> >>> But I think it is the OS kernel (FreeBSD in this case) and the SMP >>> implementation that decide this process should live in CPU0 or CPU1, ie >>> it's FreeBSD itself choosing on what CPU a process will reside in. >> >> This is basically the case on hardware supported by FreeBSD: the OS >> scheduler decides where to place processes in order, ideally, to >> maximize >> performance. The hardware will affect the performance, however, due to >> some systems supporting non-uniform access to chunks of memory depending >> on the CPU the code runs on, the contents of the cache, etc. Often, the >> job of the OS scheduler isn't simply to decide on fair or desirable run >> orders based on priority, but where best to run the process/thread based >> on where it's run recently, clusters of related CPUs, etc. These issues >> are becoming more important on i386-based systems with the advent of >> hyper-threading, dual-core chips, amd64 NUMA, etc. In the end, though, >> the decision (good or bad) will be made by the OS. >> >> There is two exceptions regarding execution: >> >> - The hardware may be involved in deciding which CPU will receive >> interrupts -- for example, it may round-robin deliver timer interrupts >> to CPUs to attempt to help manage interrupt load. This will cause an >> interrupt handler to run on the CPU selected by the hardware, at which >> point the OS can decide whether it wants to process the interrupt on >> that CPU, or forward it to another for processing. >> >> - There are some activities that must be performed on specific >> processors. >> For example, the boot necessarily starts out on the boot processor >> (BP). >> It turns out that many Intel or Intel-like systems get quite unhappy >> if >> system shutdown is initiated from a non-boot processor, so FreeBSD >> also >> arranges for the boot processor to issue the power down call into ACPI >> on platforms running ACPI. The hardware isn't choosing where to run >> this code per se, but if you pick the wrong one the hardware won't >> like >> you :-). >> >> Hope this is helpful, >> >> Robert N M Watson >> >> > > _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"