Re: [RFC Patch 3/9] Modifying generic debug exception to use virtualdebug registers

From: Alan Stern
Date: Thu Oct 16 2008 - 10:12:51 EST


On Wed, 15 Oct 2008, Roland McGrath wrote:

> You need to redo this (and the whole set) for the post-2.6.27 tree.
> e.g. traps.c has been unified.
>
> + /* Store the virtualized DR6 value */
> + tsk->thread.vdr6 = dr6;
> +
> + if (notify_die(DIE_DEBUG, "debug", regs, dr6, error_code,
> + SIGTRAP) == NOTIFY_STOP)
> return;
>
> I'm not sure you should change vdr6 when notify_die returns NOTIFY_STOP.
> Maybe Alan and I hashed out the logic of this before, I don't recall.
> If the notifier is eating the event, then it should not affect the
> thread-virtualized view of %db6. That would be consistent with the
> existing code, where ->thread.debugreg6 is only set later when all the
> intercepted or spurious exceptions have been filtered out.

I think we have to leave the code as it is. As each notifier routine
processes the event, it will turn off the corresponding bits in vdr6.
We don't want those bits to get turned back on again by overwriting
vdr6 after the notifier chain has finished.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/