2005-09-19 17:59:51

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] Only process_die notifier in ia64_do_page_fault if KPROBES is configured.

On Mon, Aug 29, 2005 at 05:19:05PM -0700, Rusty Lynch wrote:
> So, assuming inlining the notifier_call_chain would address Christoph's
> conserns, is the following patch something like what you are sugesting?
> This would make all the kdebug.h::notify_die() calls use the inline version.

I think we need something more like this ...

include/linux/notifier.h:
+static inline int notifier_call_chain(struct notifier_block **n,
+ unsigned long val, void *v)
+{
+ if (n)
+ return __notifier_call_chain(n, val, v);
+ return NOTIFY_DONE;
+}
kernel/sys.c:
-int notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
+int __notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
-EXPORT_SYMBOL(notifier_call_chain);
+EXPORT_SYMBOL(__notifier_call_chain);

That way everyone gets both the quick test and the global size reduction.

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain


2005-09-19 18:22:25

by Christoph Lameter

[permalink] [raw]
Subject: Re: [PATCH] Only process_die notifier in ia64_do_page_fault if KPROBES is configured.

On Tue, 30 Aug 2005, Matthew Wilcox wrote:

> On Mon, Aug 29, 2005 at 05:19:05PM -0700, Rusty Lynch wrote:
> > So, assuming inlining the notifier_call_chain would address Christoph's
> > conserns, is the following patch something like what you are sugesting?
> > This would make all the kdebug.h::notify_die() calls use the inline version.
>
> I think we need something more like this ...
>
> include/linux/notifier.h:
> +static inline int notifier_call_chain(struct notifier_block **n,
> + unsigned long val, void *v)
> +{
> + if (n)
> + return __notifier_call_chain(n, val, v);
> + return NOTIFY_DONE;
> +}
> kernel/sys.c:
> -int notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
> +int __notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
> -EXPORT_SYMBOL(notifier_call_chain);
> +EXPORT_SYMBOL(__notifier_call_chain);
>
> That way everyone gets both the quick test and the global size reduction.

And then do

#ifndef CONFIG_KPROBES

#define ia64die_chain 0

#endif

in include/asm-ia64/kdebug.h?

Otherwise we still check a notifier chain that cannot ever be
activated.

But then the patch is essentially the same as the last one I proposed.