Web Hosting Talk







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.