summaryrefslogtreecommitdiffstats
path: root/lib/libbsdstat/bsdstat.c
diff options
context:
space:
mode:
authorskra <skra@FreeBSD.org>2015-11-24 13:57:41 +0000
committerskra <skra@FreeBSD.org>2015-11-24 13:57:41 +0000
commit29d37118d7d41f1e2a517987a8d568df28c133bc (patch)
treeea607479d25e27265ac35463595a6e0127a44c47 /lib/libbsdstat/bsdstat.c
parent3c69434dbb357a3d9c664ae3fc262605cf3f03f0 (diff)
downloadFreeBSD-src-29d37118d7d41f1e2a517987a8d568df28c133bc.zip
FreeBSD-src-29d37118d7d41f1e2a517987a8d568df28c133bc.tar.gz
Flush all kernel mappings from TLB(s) in time when they are cleared.
Replace tlb_flush_local() by tlb_flush() as even not global mappings could be fetched to TLB(s) on other cores by speculative table walk. From OS point of view, it was not a problem as either such mappings were not used anymore or they were flushed from TLB(s) when reused. However, from hardware point of view, it was a problem. Not flushed mappings could be a target for speculative reads or prefetches (which might be quite aggresive on ARM cores). As speculative read can fill cacheline, it can cause a real problem, when physical page is reused, but mapped with different memory attributes. Anyhow, it's good to have only valid mappings in TLB(s). Approved by: kib (mentor)
Diffstat (limited to 'lib/libbsdstat/bsdstat.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud