BostonGuru
03-23-2007, 12:51 AM
Does anyone know how to bind a process (either when starting it or after its been started) to run only on a specific CPU, or only allow it to run on one of a few given CPUs? I am looking to do this on freeBSD 6.2.
![]() | View Full Version : FreeBSD CPUs BostonGuru 03-23-2007, 12:51 AM Does anyone know how to bind a process (either when starting it or after its been started) to run only on a specific CPU, or only allow it to run on one of a few given CPUs? I am looking to do this on freeBSD 6.2. bleenzorb 03-23-2007, 01:34 AM for Intel CPUs, you can use the CPUID opcode. Of course, you'll need to code in a language that supports it, like C with an asm{} block, or straight assembler--which I assume you're doing anyway in order to protect your source. Xeentech 03-23-2007, 09:33 AM I duno about FreeBSD, but what you're after is called CPU Affinity. I'd imagin BSD has a tool for that since its been mature on SMP for a long time now. Perhaps now you know the correct term google will help more. bleenzorb 03-23-2007, 12:58 PM Oops. I thought he meant he wanted to cause his code to only work on a certain type of CPU platform, as in Intel vs. AMD. Forget what I said about CPUID. As for affinity, I know on Window and certain other (now obsolete) OSs, a single thread is assigned to a single CPU at startup and it doesn't switch CPUs from then on, but there are ways to specify which one before startup. Don't know about freeBSD. drhowarddrfine 03-23-2007, 04:44 PM I know it's possible but only because I remember reading about it but that's as far as I can go. Xeentech 03-23-2007, 07:08 PM From this very recent post: http://lists.freebsd.org/pipermail/freebsd-smp/2007-February/001338.html on a BSD mailing list, sounds like its a very ugly process. There should be an example of the 'parent' application about that they refer to. |