Re: [PATCH 4/7] ptrace: Partly fixset_task_blockstep()->update_debugctlmsr() logic
From: Oleg Nesterov
Date: Mon Sep 10 2012 - 13:25:45 EST
Sebastian, I am replying to my message because I removed your email
by mistake. Fortunately I can see it on marc.info...
> ptrace and uprobe are calling this function from process context. As
> long as you have here get_cpu() instead of local_irq_disable() you should
> be safe here.
local_irq_disable() looks more safe. We can have new users playing
with MSR_IA32_DEBUGCTLMSR from irq.
> perf
> uses raw_local_irqsave() (raw_* most likely due to -RT).
This is completely irrelevant, we alrady discussed this.
> I have no idea
> what you can against NMI unless not touching the register in NMI
> context.
Neither me, and this is documented in the changelog:
And afaics there is yet another problem: perf can play with
MSR_IA32_DEBUGCTLMSR from nmi, this obviously means that even
__switch_to_xtra() has problems.
and please note __switch_to_xtra() above, it has the same problem
by the same reason.
Oleg.
--
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/