On 6 December 2016 at 15:14, Alex Bennée <alex.ben...@linaro.org> wrote: > Peter Maydell <peter.mayd...@linaro.org> writes: >> I think this is the wrong direction. We only need to invalidate >> the TBs for the specific location the breakpoint is at. >> Even if we for the moment want to apply a big hammer of doing >> a full tb flush on breakpoint to fix this issue for this release, >> we shouldn't drop the indirection through breakpoint_invalidate(), >> because then we can't go back to invalidating just the parts we need >> easily later. > > Why would we? It's not like fresh code generation is particularly slow, > especially in a debugging situation when you've just stopped the > machine.
Because a wholescale tb_flush() is a "this is probably wrong" flag, and a great way to hide bugs. It also makes the gdbstub more invasive than it strictly has to be. We have less than 10 calls to tb_flush() in the whole system and I think they could all use examination to see whether they're really correct. thanks -- PMM