|
We describe a new operating system scheduling algorithm that improves
performance isolation on chip multiprocessors (CMP). Poor performance
isolation occurs when an application’s performance is determined by
the behaviour of its co-runners, i.e., other applications simultaneously
running with it. This performance dependency is caused by unfair, co-
runner-dependent cache allocation on CMPs. Poor performance isolation
interferes with the operating system’s control over priority enforcement
and hinders QoS provisioning. Previous solutions required modifications
to the hardware. We present a new software solution. Our cache-fair
algorithm ensures that the application runs as quickly as it would
under fair cache allocation, regardless of how the cache is actually
allocated. If the thread executes fewer instructions per cycle than
it would under fair cache allocation, the scheduler increases that
thread’s CPU timeslice. This way, the thread’s overall performance
does not suffer because it is allowed to use the CPU longer. We describe
our implementation of the algorithm in SolarisTM 10, and show that it
significantly improves performance isolation for SPEC CPU, SPEC JBB
and TPC-C.
|