From: Ingo Molnar on

* Jason Baron <jbaron(a)redhat.com> wrote:

> > > + entry = add_jump_label_entry((char *)iter_begin->name,
> > > + count, iter_begin);
> > > + if (IS_ERR(entry))
> > > + return PTR_ERR(entry);
> > > + continue;
> > > + }
> > > + WARN(1, KERN_ERR "build_jump_hashtable: unexpected entry!\n");
> >
> >
> >
> > It seems you are going to endless loop in this fail case.
> >
>
> agreed. I need to stick that 'WARN' into the else clause of "if
> (!entry)" and return an error.

and make that WARN_ONCE() as well. If it ever triggers it should show up once
and not compound the bug with spamming the console and the logs.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Frederic Weisbecker on
On Thu, Jun 10, 2010 at 11:44:52AM -0400, Jason Baron wrote:
> On Thu, Jun 10, 2010 at 12:35:49AM +0200, Frederic Weisbecker wrote:
> > On Wed, Jun 09, 2010 at 05:38:57PM -0400, Jason Baron wrote:
> > > +static int build_jump_label_hashtable(struct jump_entry *start, struct jump_entry *stop)
> > > +{
> > > + struct jump_entry *iter, *iter_begin;
> > > + struct jump_label_entry *entry;
> > > + int count;
> > > +
> > > + sort_jump_label_entries(start, stop);
> > > + iter = start;
> > > + while (iter < stop) {
> > > + entry = get_jump_label_entry((char *)iter->name);
> > > + if (!entry) {
> > > + iter_begin = iter;
> > > + count = 0;
> > > + while ((iter < stop) &&
> > > + (strcmp((char *)iter->name,
> > > + (char *)iter_begin->name) == 0)) {
> > > + iter++;
> > > + count++;
> > > + }
> >
> >
> >
> >
> > So, you can have multiple entries with the same name? How can that happen
> > in fact?
> >
> >
>
> this is the case where a single tracepoint such as kmalloc(), is used in
> all over the kernel. So, there is one name or key value associated with
> a kmalloc tracepoint. however, we have to patch the jump or nop into a
> bunch of places in the kernel text.



Ok, sounds fair then.

Thanks.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/