On 15 Aug 2023, at 01:59, Gernot Heiser <ger...@unsw.edu.au> wrote:
> 
>> Speculative taint tracking helps close some of the remaining holes. 
> 
> I’m highly sceptical too. Taint-tracking has to be highly pessimistic to be 
> feasible, and adds a lot of complexity to the hardware (which gets back to my 
> earlier argument: make it more complex and you’re making it more likely that 
> something goes wrong).

Forgot to add:

> It’s not perfect, but it is the best one can do without cache partitioning or 
> heavyweight flushing, and I suspect both of those are often impractical from 
> a performance perspective.

Cache partitioning (which really is static, software-controlled vs dynamic 
partitioning by hardware) produces, in average, at best a mild performance 
degradation. There are plenty of cases where it actually improves performance 
(loads with a cache working set that exceeds the cache size) and it is used for 
performance isolation and sometimes for improving average-case performance.

Similar, cache-flushing (of the L1) has little performance impact, except where 
context-switching rates are very high. Otherwise, the L1 is too small to hold 
much hot data after a full round of context switches, so the cache is 
effectively flushed implicitly.

On OoO processors explicit flushes have a cost, as the cost of the implicit 
replacement can be at least partially hidden by OoO execution. But I doubt 
there are many use realistic cases where the impact is significant. (Yes, we 
did evaluate this, although it’s been studied in more detail by others.)

Gernot
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to