These are timing attacks, if you can guarantee code runs deterministically, and deny access to timing information, you can defeat the attack.
Eliminating timing vulnerabilities is necessary to allow potentially-hostile workloads to share hardware, but it is not sufficient.
Instead they measured CPU temperature through frequency drift measured through change of network packet markers. A bit contrived but they made it workable quite reliably.
--
[1] https://www.ieee-security.org/TC/SP2013/papers/4977a080.pdf
in other words, any system with more than one "task" running concurrently?