If you have ever wondered why the OpenBSD multi-processor kernel is named "GENERIC.MP" rather than "GENERIC.SMP," it's because you've missed out on some of Theo's ideas and plans to do asymmetric mutli-processing processing rather than the usual symmetric multi-processing (SMP). If you do not understand the difference, an over-simplified explanation would be; symmetric multi-processing is merely spreading tasks across multiple computing cores/processors and asymmetric multi-processing is a matter of dedicating specific computing cores/processors to do a particular task(s).
In most cases you'll first think of general purpose CPU cores which are designed to do a number of things reasonably well, but that is only the start of things. There are "cores" or co-processors which are designed to do specific tasks better than other tasks. The Graphics Processing Unit (GPU) on your video card is a good example of a specialized core designed to do particular tasks (graphics related) very well but would perform poorly (if at all) on general purpose tasks. As systems with multiple cores become ever more prevalent and asymmetric processing comes into wider use, the techniques used to debug asymmetric multi-core systems become more and more important. Even if you are just an end user, it's something worth knowing about since eventually you will be asked to manage such systems and submit useful bug reports. There is a well written article below which is worth reading and should be useful to anyone who understands the basics. http://www.embedded.com/shared/printableArticle.jhtml?articleID=197008857 http://www.embedded.com/shared/printableArticle.jhtml?articleID=197800001 kind regards, jcr

