Skip to content
  • Max Filippov's avatar
    b55f54bc
    exec: flush CPU TB cache in breakpoint_invalidate · b55f54bc
    Max Filippov authored
    
    
    When a breakpoint is inserted at location for which there's currently no
    virtual to physical translation no action is taken on CPU TB cache. If a
    TB for that virtual address already exists but is not visible ATM the
    breakpoint won't be hit next time an instruction at that address will be
    executed.
    
    Flush entire CPU TB cache in breakpoint_invalidate to force
    re-translation of all TBs for the breakpoint address.
    
    This change fixes the following scenario:
    - linux user application is running
    - a breakpoint is inserted from QEMU gdbstub for a user address that is
      not currently present in the target CPU TLB
    - an instruction at that address is executed, but the external debugger
      doesn't get control.
    
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Message-Id: <20191127220602.10827-2-jcmvbkbc@gmail.com>
    Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    b55f54bc
    exec: flush CPU TB cache in breakpoint_invalidate
    Max Filippov authored
    
    
    When a breakpoint is inserted at location for which there's currently no
    virtual to physical translation no action is taken on CPU TB cache. If a
    TB for that virtual address already exists but is not visible ATM the
    breakpoint won't be hit next time an instruction at that address will be
    executed.
    
    Flush entire CPU TB cache in breakpoint_invalidate to force
    re-translation of all TBs for the breakpoint address.
    
    This change fixes the following scenario:
    - linux user application is running
    - a breakpoint is inserted from QEMU gdbstub for a user address that is
      not currently present in the target CPU TLB
    - an instruction at that address is executed, but the external debugger
      doesn't get control.
    
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Message-Id: <20191127220602.10827-2-jcmvbkbc@gmail.com>
    Signed-off-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Loading