Messages in this thread | | | Date | Thu, 10 Jun 2010 19:11:25 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 02/13] jump label v9: base patch |
| |
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.
| |