On Sat, 2007-04-28 at 09:34 +0100, Christoph Hellwig wrote:
> Well, here's my powerpc patch to do the direct call that I sent out
> a few weeks ago. It not just speed up the pagefault path a lot,
> but also is a major code cleanup. Andi and Anton didn't like it
> because they have ambition for murky debugger code to possibly
> use it one day..
I thought about using a direct call for s390 as well. The advantage of a
direct call is that it avoids the overhead of a notifier call even if
kprobes is running. The disadvantage is that there cannot be a second
consumer of the fault notifications. I choose the middle way: avoid the
overhead if kprobes is not active and use the full notifier if kprobes
is running. It should not hurt the performance too badly since
kprobe_running is only true if the cpu gets a page fault while executing
a kprobe.
--
blue skies,
Martin.
"Reality continues to ruin my life." - Calvin.
On Wed, May 02, 2007 at 12:45:06PM +0200, Martin Schwidefsky wrote:
> I thought about using a direct call for s390 as well. The advantage of a
> direct call is that it avoids the overhead of a notifier call even if
> kprobes is running. The disadvantage is that there cannot be a second
> consumer of the fault notifications. I choose the middle way: avoid the
> overhead if kprobes is not active and use the full notifier if kprobes
> is running. It should not hurt the performance too badly since
> kprobe_running is only true if the cpu gets a page fault while executing
> a kprobe.
There is not second caller :) Also it wouldn't work because you check
for kprobe_running() which wouldn't be true for it. It also means
you go through the whole notifier chain mechanism for every userspace
page fault when kprobes are running which is the least of them.
So let's no do odd preparations for the future but optimize for
the current case and add things if needed in the future. Note that
I plan to send similar patches for all kprobes supporting architectures
so that we have common code again. Eventually notify_page_fault should
move into include/linux/kprobes.h
>
> --kprobe_running
> blue skies,
> Martin.
>
> "Reality continues to ruin my life." - Calvin.
>
>
---end quoted text---