From: Keith Owens <kaos@sgi.com>
To: bibo mao <bibo_mao@linux.intel.com>
Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>,
Anderw Morton <akpm@osdl.org>,
LKML <linux-kernel@vger.kernel.org>,
Keith Owens <kaos@americas.sgi.com>,
Dean Nelson <dnc@americas.sgi.com>,
Tony Luck <tony.luck@intel.com>,
Anath Mavinakayanahalli <ananth@in.ibm.com>,
Prasanna Panchamukhi <prasanna@in.ibm.com>,
Dave M <davem@davemloft.net>, Andi Kleen <ak@suse.de>
Subject: Re: [(take 2)patch 7/7] Notify page fault call chain
Date: Tue, 25 Apr 2006 11:10:59 +1000 [thread overview]
Message-ID: <19634.1145927459@ocs3.ocs.com.au> (raw)
In-Reply-To: Your message of "Mon, 24 Apr 2006 17:19:01 +0800." <444C9805.4060303@linux.intel.com>
bibo mao (on Mon, 24 Apr 2006 17:19:01 +0800) wrote:
>I have some questions about page fault call chain.
>1) Can kprobe_exceptions_notify be divided into two sub-functions, one
>is for die call chain, which handles DIE_BREAK/DIE_FAULT trap, the other
>is specially for DIE_PAGE_FAULT trap.
I asked the same question, Anil said that would/could be done in a
later set of patches, but did not want to change too much code in one
go.
>2) page_fault_notifier is conditionally registered/unregistered in this
>patch, notify_page_fault(DIE_PAGE_FAULT...) is unconditionally called in
> ia64_do_page_fault() function. I do not know whether it is possible to
>unconditionally register page_fault_notifier() call chain, but
>conditionally call notify_page_fault(DIE_PAGE_FAULT...) function.
Only by putting extra code at the site of notify_page_fault(). That
would introduce a race against kprobes unregistering a user space
probe. The race is probably safe, but why risk it?
>3) I do know whether there are other conditions like kdb/kgdb which need
>call page fault call chain when page fault happens. If only kprobe need
>handle page fault, then I think kprobe_exceptions_notify can be called
>directly in ia64_do_page_fault() function. Of course, the call chain
>method is more convenient and easy to extend for other fault causes(like
>kdb/kgdb).
Only kprobes needs the page fault handler.
Calling kprobe_exceptions_notify() directly would work but again it
introduces races. The register and unregister are atomic, and remember
how long it took us to agree on how to make atomic register and
unregister race safe. Using the existing notify chain code gives us
race safe register, call and unregister without having to verify that
any hand written replacement code is also race safe.
You would need to demonstrate that any hand crafted code was race safe
and had enough speed improvement to make the coding and debugging effort
worthwhile.
next prev parent reply other threads:[~2006-04-25 1:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-20 23:24 [(take 2)patch 0/7] Notify page fault call chain Anil S Keshavamurthy
2006-04-20 23:24 ` [(take 2)patch 1/7] Notify page fault call chain for x86_64 Anil S Keshavamurthy
2006-04-20 23:24 ` [(take 2)patch 2/7] Notify page fault call chain for i386 Anil S Keshavamurthy
2006-04-20 23:24 ` [(take 2)patch 3/7] Notify page fault call chain for ia64 Anil S Keshavamurthy
2006-04-20 23:25 ` [(take 2)patch 4/7] Notify page fault call chain for powerpc Anil S Keshavamurthy
2006-04-20 23:25 ` [(take 2)patch 5/7] Notify page fault call chain for sparc64 Anil S Keshavamurthy
2006-04-20 23:25 ` [(take 2)patch 6/7] Kprobes registers for notify page fault Anil S Keshavamurthy
2006-04-21 0:07 ` Keshavamurthy Anil S
2006-04-21 0:14 ` Keith Owens
2006-04-21 0:38 ` Keshavamurthy Anil S
2006-04-21 0:53 ` Keith Owens
2006-04-21 1:03 ` Keshavamurthy Anil S
2006-04-20 23:25 ` [(take 2)patch 7/7] Notify page fault call chain Anil S Keshavamurthy
2006-04-24 9:19 ` bibo mao
2006-04-25 1:10 ` Keith Owens [this message]
2006-04-25 5:43 ` Keshavamurthy Anil S
2006-04-24 19:28 ` [(take 2)patch 0/7] " Robin Holt
2006-04-25 6:01 ` Keshavamurthy Anil S
2006-04-25 10:15 ` Robin Holt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19634.1145927459@ocs3.ocs.com.au \
--to=kaos@sgi.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=ananth@in.ibm.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=bibo_mao@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dnc@americas.sgi.com \
--cc=kaos@americas.sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=prasanna@in.ibm.com \
--cc=tony.luck@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox