Flush & Reload based technique to detect hardware based virtualization. Steps:
- Create a target page
- Fill TLB with random pages
- Flush(target_page[0])
- let tlb_cache_miss = Measure Time(target_page[0])
- Flush(target_page[0])
- let cache_miss = Measure Time(target_page[0])
- return tlb_cache_miss - cache_miss
x: clock cycle y: sample