]> git.proxmox.com Git - mirror_qemu.git/commit - softmmu/physmem.c
exec: flush the whole TLB if a watchpoint crosses a page boundary
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 5 Jun 2020 15:49:19 +0000 (16:49 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 8 Jun 2020 16:04:13 +0000 (17:04 +0100)
commit2e886a242cf540d716d431a55071a717d562eb69
tree82bb77ccef09921b0db33e19012784dd5dd9cd17
parent4e62bfa9ee54d071c656d12057b7d293ca22d423
exec: flush the whole TLB if a watchpoint crosses a page boundary

There is no particular reason why you can't have a watchpoint in TCG
that covers a large chunk of the address space. We could be clever
about it but these cases are pretty rare and we can assume the user
will expect a little performance degradation.

NB: In my testing gdb will silently squash a watchpoint like:

  watch (char[0x7fffffffff]) *0x0

to a 4 byte watchpoint. Practically it will limit the maximum size
based on max-value-size. However given enough of a tweak the sky is
the limit.

Reported-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200605154929.26910-5-alex.bennee@linaro.org>
exec.c