In this paper we present a cache-aware real-time scheduling algorithm for multi-core platforms. It uses the standard timing constrains of the tasks together with the hardware counter statistics to yield unique task priorities. Scheduling according to timing constraints criterion enforces timely completion of the tasks while the cache-fair thread scheduling ensures that tasks to which shared caches are unequally allocated are compensated by assigning more or less processor time.