This document presents a software-based technique for partitioning shared last-level caches (L2 caches) on multicore systems to improve performance. It implements page coloring to allocate physical pages for each process to distinct cache line colors. Experimental results on a Power5 system show this approach can control cache usage and improve performance for multiprogrammed workloads by up to 17% compared to an uncontrolled shared cache. The document also finds that cache stall rates provide a better performance analysis metric than miss rates for some workloads.