[LITMUS^RT] high miss ratio for low task utilization

Björn Brandenburg bbb at mpi-sws.org
Fri Nov 21 18:12:55 CET 2014


> On 21 Nov 2014, at 00:01, Glenn Elliott <gelliott at cs.unc.edu> wrote:
> 
> If I may inquire, what x86 system do you have that has 128 physical cores?  That’s pretty incredible!  I don’t believe that anyone has ever run Litmus on anything with more than 64 cores.  Come to think of it, some of liblitmus’s routines will break when P-EDF (and C-EDF with L1 clustering) is used on a system with more than 64 CPUs. This is a limitation of the user-space, not the Litmus kernel.
> 
> Here are links to the broken user-space code:
> https://github.com/LITMUS-RT/liblitmus/blob/master/src/migration.c#L105
> https://github.com/LITMUS-RT/liblitmus/blob/master/src/migration.c#L127
> 
> The limitation is this: a 64-bit mask is used to report the mapping between CPU clusters (“domains”) and CPUs.  If you have more than 64 CPUs or more than 64 domains, then these routines will break. You haven’t hit this limit yet since your VM is constrained to 8 cores.  I must say, I didn’t think Litmus users would hit the 64-CPU limit so soon.  Maybe it’s time to come up with a solution. Björn, should we use a __uint128_t, a struct, or CPU_SET?  I prefer __uint128_t to keep things simple, but I admit that only buys us time.  We’d have to do something else if someone wanted to run Litmus on Xeon Phi (available today), which has 244 hardware threads.

I would prefer the CPU_SET solution... otherwise we'll be facing the issue again pretty soon. Do you think you'll have a chance to look into this? How about Namhoon?

Thanks,
Björn





More information about the litmus-dev mailing list