diff options
| author | Emilio G. Cota | 2017-07-27 02:15:41 +0200 |
|---|---|---|
| committer | Richard Henderson | 2018-06-15 19:42:55 +0200 |
| commit | 78722ed0b826644ae240e3c0bbb6bdde02dfe7e1 (patch) | |
| tree | 3c1b92f585d1c820539c73fab43ebc18130c7f3f /docs | |
| parent | translate-all: iterate over TBs in a page with PAGE_FOR_EACH_TB (diff) | |
| download | qemu-78722ed0b826644ae240e3c0bbb6bdde02dfe7e1.tar.gz qemu-78722ed0b826644ae240e3c0bbb6bdde02dfe7e1.tar.xz qemu-78722ed0b826644ae240e3c0bbb6bdde02dfe7e1.zip | |
translate-all: make l1_map lockless
Groundwork for supporting parallel TCG generation.
We never remove entries from the radix tree, so we can use cmpxchg
to implement lockless insertions.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/devel/multi-thread-tcg.txt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/devel/multi-thread-tcg.txt b/docs/devel/multi-thread-tcg.txt index a99b4564c6..faf8918b23 100644 --- a/docs/devel/multi-thread-tcg.txt +++ b/docs/devel/multi-thread-tcg.txt @@ -134,8 +134,8 @@ tb_set_jmp_target() code. Modification to the linked lists that allow searching for linked pages are done under the protect of the tb_lock(). -The global page table is protected by the tb_lock() in system-mode and -mmap_lock() in linux-user mode. +The global page table is a lockless radix tree; cmpxchg is used +to atomically insert new elements. The lookup caches are updated atomically and the lookup hash uses QHT which is designed for concurrent safe lookup. |
