The possibilities of thread starvation and priority inversion can create serious problems and make fairness a critical issue. When they arise they can render the Operating System (OS) scheduler ineffective if no fair cache sharing is provided by the hardware. This paper proposes a dynamic fair partitioning policy of shared cache in order to improve the fairness of shared cache between threads in a Chip Multi-Processor (CMP). Threads share a cache while simulating that they are running alone with a dedicated cache. At the end of each time interval T, a policy evaluates the metrics of the threads based on shared and dedicated cache, and will then repartition the cache to improve the fairness.