Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault

H. Peter Anvin
2010-07-16T18:07:08Z

On 07/16/2010 10:54 AM, Avi Kivity wrote:
> On 07/16/2010 07:58 PM, Mathieu Desnoyers wrote:
>>
>>> Why is that kernel code calling vmalloc_sync_all()? If it is only NMI
>>> which cannot take vmalloc faults, why bother? If not, why not?
>>>
>> Modules come as yet another example of stuff that is loaded in vmalloc'd space
>> and can be accesses from NMI context. That would include oprofile, tracers, and
>> probably others I'm forgetting about.
>>
>
> Module loading can certainly take a vmalloc_sync_all() (though I agree
> it's unpleasant). Anything else?
>
> Note perf is not modular at this time, but could be made so with
> preempt/sched notifiers to hook the context switch.
>

Actually, module loading is already a performance problem; a lot of
distros load sometimes hundreds of modules on startup, and it's heavily
serialized, so I can see this being desirable to skip.

I really hope noone ever gets the idea of touching user space from an
NMI handler, though, and expecting it to work...

-hpa