[Cbe-oss-dev] [PATCH] libspe2: Fix _base_spe_count_physical_cpus
malc
mlashley at gmail.com
Fri May 23 13:21:25 EST 2008
This patch fixes the counting of physical cpus, and thus the counting
of spus per cpu.
Currently - we count the number of dirent entries in
/sys/devices/system/cpu/ starting at -2 (to ignore . and ..)
At some point additional entries were added to this chunk of sysfs -
ps3-64ul ~ # ls /sys/devices/system/cpu/
cpu0 cpu1 online possible present
And so the number of CPUs in the system is reported incorrectly - it
then follows that the number of spus is also reported incorrectly.
The following patch makes the counting of cpu's somewhat more bullet proof.
Signed off by Malcolm Lashley <malc at sucks-ass.com>
diff -urp /var/tmp/portage/sys-libs/libspe2-2.2.80_p121/work/libspe2-2.2.80/spebase/info.c
/tmp/libspe2-2.2.80/spebase/info.c
--- /var/tmp/portage/sys-libs/libspe2-2.2.80_p121/work/libspe2-2.2.80/spebase/info.c
2007-05-31 10:15:33.000000000 +0000
+++ /tmp/libspe2-2.2.80/spebase/info.c 2008-05-23 03:00:19.000000000 +0000
@@ -31,7 +31,7 @@ int _base_spe_count_physical_cpus(int cp
{
const char *buff = "/sys/devices/system/cpu";
DIR *dirp;
- int ret = -2;
+ int ret = 0;
struct dirent *dptr;
DEBUG_PRINTF ("spe_count_physical_cpus()\n");
@@ -50,6 +50,7 @@ int _base_spe_count_physical_cpus(int cp
return -1;
}
while((dptr=readdir(dirp))) {
+ if(strncmp("cpu",dptr->d_name,3) == 0)
ret++;
}
closedir(dirp);
More information about the cbe-oss-dev
mailing list