accel/tcg: Add cluster number to TCG TB hash
commitf7b78602fdc6c6e4befc90159da8e93900b4bcb1
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 29 Jan 2019 11:46:06 +0000 (29 11:46 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 29 Jan 2019 11:46:06 +0000 (29 11:46 +0000)
treea137ed8526855688d2df505db2db00e9c8f65423
parent7ea7b9ad532e59c3efbcabff0e3484f4df06104c
accel/tcg: Add cluster number to TCG TB hash

Include the cluster number in the hash we use to look
up TBs. This is important because a TB that is valid
for one cluster at a given physical address and set
of CPU flags is not necessarily valid for another:
the two clusters may have different views of physical
memory, or may have different CPU features (eg FPU
present or absent).

We put the cluster number in the high 8 bits of the
TB cflags. This gives us up to 256 clusters, which should
be enough for anybody. If we ever need more, or need
more bits in cflags for other purposes, we could make
tb_hash_func() take more data (and expand qemu_xxhash7()
to qemu_xxhash8()).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-id: 20190121152218.9592-4-peter.maydell@linaro.org
accel/tcg/cpu-exec.c
accel/tcg/translate-all.c
include/exec/exec-all.h