[LITMUS^RT] prop/many-cpu-migration

Glenn Elliott gelliott at cs.unc.edu
Tue May 20 03:27:01 CEST 2014


Hi Everyone,

Björn stumbled upon a bug in the code I added to map between CPUs and clusters/partitions (aka ‘domains’).  The problem arrises when the Linux kernel prints cpumasks larger than 32 bits to /proc/litmus/cpus/* and /proc/litmus/domains/*.  Namely, the kernel inserts ‘,’ every eight hex characters (32 bits).  I have posted a patch to prop/many-cpu-migration to parse these strings correctly.  Please review the code.  Also, could someone please try it out on a system with more than 32 CPUs (or better, more than 64 CPUs)?  Even though I compile with NR_CPUS = 4096, I can’t get cpumask_scnprintf() to print a data for more than 64 bits.

Note #1: libtlitmus code now supports 4096 bits (or CPUs). However, looking at the code in litmus_mapping_proc_show(), I believe the output to proc is 256 bits.

Note #2: This branch also includes a minor open() fix for DFLP.  The lock test won’t compile without the fix (GCC 4.8.1 on Ubuntu 13.10).

Thanks,
Glenn



More information about the litmus-dev mailing list