[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 07/23] exec.c: Relax restrictions on watchpoint l
From: |
Max Filippov |
Subject: |
Re: [Qemu-devel] [PULL 07/23] exec.c: Relax restrictions on watchpoint length and alignment |
Date: |
Wed, 17 Sep 2014 21:48:06 -0700 |
Hi Peter,
On Fri, Sep 12, 2014 at 6:23 AM, Peter Maydell <address@hidden> wrote:
> The current implementation of watchpoints requires that they
> have a power of 2 length which is not greater than TARGET_PAGE_SIZE
> and that their address is a multiple of their length. Watchpoints
> on ARM don't fit these restrictions, so change the implementation
> so they can be relaxed.
>
> Signed-off-by: Peter Maydell <address@hidden>
> Reviewed-by: Richard Henderson <address@hidden>
> ---
> exec.c | 44 +++++++++++++++++++++++++++++++-------------
> include/qom/cpu.h | 2 +-
> linux-user/main.c | 3 +--
> 3 files changed, 33 insertions(+), 16 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 7dddcc8..f3e7fb6 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -582,12 +582,10 @@ int cpu_watchpoint_insert(CPUState *cpu, vaddr addr,
> vaddr len,
> int cpu_watchpoint_insert(CPUState *cpu, vaddr addr, vaddr len,
> int flags, CPUWatchpoint **watchpoint)
> {
> - vaddr len_mask = ~(len - 1);
> CPUWatchpoint *wp;
>
> - /* sanity checks: allow power-of-2 lengths, deny unaligned watchpoints */
> - if ((len & (len - 1)) || (addr & ~len_mask) ||
> - len == 0 || len > TARGET_PAGE_SIZE) {
> + /* forbid ranges which are empty or run off the end of the address space
> */
> + if (len == 0 || (addr + len - 1) <= addr) {
With this change it's no longer possible to set one-byte-long watchpoint,
xtensa testsuite fails because of that.
I guess you meant 'len == 0 || (addr + len - 1) < addr' ?
--
Thanks.
-- Max
- [Qemu-devel] [PULL 18/23] target-arm: Make *IS TLB maintenance ops affect all CPUs, (continued)
- [Qemu-devel] [PULL 18/23] target-arm: Make *IS TLB maintenance ops affect all CPUs, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 23/23] hw/arm/boot: enable DTB support when booting ELF images, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 11/23] target-arm: Implement setting of watchpoints, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 14/23] target-arm: Set DBGDSCR.MOE for debug exceptions taken to AArch32, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 10/23] cpu-exec: Make debug_excp_handler a QOM CPU method, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 16/23] target-arm: Implement minimal DBGVCR, OSDLR_EL1, MDCCSR_EL0, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 15/23] target-arm: Remove comment about MDSCR_EL1 being dummy implementation, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 19/23] hw/arm/virt: fix pl011 and pl031 irq flags, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 05/23] target-arm: Fix broken indentation in arm_cpu_reest(), Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 07/23] exec.c: Relax restrictions on watchpoint length and alignment, Peter Maydell, 2014/09/12
- Re: [Qemu-devel] [PULL 07/23] exec.c: Relax restrictions on watchpoint length and alignment,
Max Filippov <=
- [Qemu-devel] [PULL 06/23] hw/arm/virt: Provide flash devices for boot ROMs, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 12/23] target-arm: Move extended_addresses_enabled() to internals.h, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 20/23] hw/arm/boot: load DTB as a ROM image, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 01/23] hw/arm/virt: add linux, stdout-path to /chosen DT node, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 08/23] exec.c: Provide full set of dummy wp remove functions in user-mode, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 21/23] hw/arm/boot: pass an address limit to and return size from load_dtb(), Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 03/23] pl061: implement input interrupt logic, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 04/23] target-arm: Fix resetting issues on ARMv7-M CPUs, Peter Maydell, 2014/09/12
- [Qemu-devel] [PULL 13/23] target-arm: Implement handling of fired watchpoints, Peter Maydell, 2014/09/12