[PATCH 2/3] skip_prolgoue (amd64)

Doug Evans dje@google.com
Wed Dec 4 17:54:00 GMT 2013


On Sat, Nov 30, 2013 at 2:11 AM, Pedro Alves <palves@redhat.com> wrote:
> It seems like we can "dangerously" hit stale cache (probably most
> visible with non-stop mode) between target events:
>
>  #1 - all threads set running, dcache is invalidated
>
>  #2 - thread 1 stops.  As we handle the event, we read code, and cache it.
>
>  #3 - others threads continue running.  some thread jits something, or
>    changes code that was cached.
>
>  #4 - thread 2 stops.  As we handle the event, we read code, hitting
>    stale cache.
>
>
> I'm thinking we might need to flush the dcache before handling each
> event, like we already invalidate the overlay cache (see
> "overlay_cache_invalid = 1" in infrun.c) ?

Hi.  Still catching up on this thread.

The dcache and non-stop are basically incompatible, but we need both.
With any other thread still running the ground can be pulled out from
underneath my view of memory from a stopped thread (even when I'm in
the middle of viewing it - I can imagine a pretty-printer of a complex
object getting really confused for example).
It feels like there's diminishing returns and increasing costs the
farther we go to try to protect the user from this.



More information about the Gdb-patches mailing list