]> xenbits.xensource.com Git - people/pauldu/qemu.git/commit
accel/tcg: Use interval tree for TBs in user-only mode
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 1 Oct 2022 20:36:33 +0000 (13:36 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 21 Dec 2022 01:09:41 +0000 (17:09 -0800)
commita97d5d2c8be2aec5b2e3c81cde33506b3c029033
tree7ebe1d4e77ba9dd9da1850aac687e66563fa154e
parentbf590a67dd7a92de89f5297fe87e48ad21f96194
accel/tcg: Use interval tree for TBs in user-only mode

Begin weaning user-only away from PageDesc.

Since, for user-only, all TB (and page) manipulation is done with
a single mutex, and there is no virtual/physical discontinuity to
split a TB across discontinuous pages, place all of the TBs into
a single IntervalTree. This makes it trivial to find all of the
TBs intersecting a range.

Retain the existing PageDesc + linked list implementation for
system mode.  Move the portion of the implementation that overlaps
the new user-only code behind the common ifdef.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
accel/tcg/internal.h
accel/tcg/tb-maint.c
accel/tcg/translate-all.c
include/exec/exec-all.h