The root of this bug is that lxtask is miscounting the number of CPUs in xfce-taskmanager-linux.c (in get_system_status() at line 355), it is making an assumption that for each processor that there will be a line starting with the case sensitive string 'processor' but on Rasbian the architecture-dependent /proc/cpuinfo only has a line starting with 'Processor'.
To work around this, assume that the number of processors will always be at least one, as the attached patch 02-numcpu.patch does.
This illustrates the underlying difference in data between an i386 kernel and the arm6l kernel's procinfo entries related to processor:
The real root of this bug seems to have nothing to do with arm vs x86 but instead seems to be caused by uniprocessor vs multiprocessor kernels. Uniprocessor kernels don't seem to output "processor" lines.
The "Processor" line always seems to appear (in a multiprocessor kernel it appears in addition to the "processor" lines) so it should not be counted.
Ok seems the situation is more complex than I thought.
My datapoints so far.
1: raspberry pi running raspbian 3.6 kernel, no "processor" lines
2: imx53 quickstart board with debian 3.2 kernel, no "processor" lines
3: odriod u2 with vendor kernel: varying number of processor lines (cores being switched off at low CPU load?!)
4: debian wheezy i386 with 3.6 486 kernel in a dual processor virtualbox vm: one "processor" line
5: debian wheezy i386 with 3.6 686-pae kernel in a dual processor virtualbox vm: two "processor" lines
The root of this bug is that lxtask is miscounting the number of CPUs in xfce-taskmanage r-linux. c (in get_system_status() at line 355), it is making an assumption that for each processor that there will be a line starting with the case sensitive string 'processor' but on Rasbian the architecture- dependent /proc/cpuinfo only has a line starting with 'Processor'.
To work around this, assume that the number of processors will always be at least one, as the attached patch 02-numcpu.patch does.
This illustrates the underlying difference in data between an i386 kernel and the arm6l kernel's procinfo entries related to processor:
pi@raspberrypi ~/lxtask-0.1.4 $ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux
pi@raspberrypi ~/lxtask-0.1.4 $ grep -i processor /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
[rbulling@foobar ~]$ uname -a 274.7.1. el5xen #1 SMP Mon Oct 17 12:14:02 EDT 2011 i686 i686 i386 GNU/Linux
Linux foobar.example.com 2.6.18-
[rbulling@foobar ~]$ grep -i processor /proc/cpuinfo
processor : 0
processor : 1
processor : 2