On Mon, Apr 01, 2019 at 10:58:16AM +0200, Daniel Bristot de Oliveira wrote: > In the batching mode, entries with the same key should also be sorted by the > code, enabling a bsearch() of a code/addr when updating a key.
Might be good to explain *why*. We can see what the code does, explaining why we do things is what we have Changelogs for. > Signed-off-by: Daniel Bristot de Oliveira <[email protected]> > Cc: Thomas Gleixner <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: Borislav Petkov <[email protected]> > Cc: "H. Peter Anvin" <[email protected]> > Cc: Greg Kroah-Hartman <[email protected]> > Cc: Masami Hiramatsu <[email protected]> > Cc: "Steven Rostedt (VMware)" <[email protected]> > Cc: Jiri Kosina <[email protected]> > Cc: Josh Poimboeuf <[email protected]> > Cc: "Peter Zijlstra (Intel)" <[email protected]> > Cc: Chris von Recklinghausen <[email protected]> > Cc: Jason Baron <[email protected]> > Cc: Scott Wood <[email protected]> > Cc: Marcelo Tosatti <[email protected]> > Cc: Clark Williams <[email protected]> > Cc: [email protected] > Cc: [email protected] > --- > kernel/jump_label.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/kernel/jump_label.c b/kernel/jump_label.c > index e666a4d6642a..8b7bfbba4cef 100644 > --- a/kernel/jump_label.c > +++ b/kernel/jump_label.c > @@ -36,12 +36,28 @@ static int jump_label_cmp(const void *a, const void *b) > const struct jump_entry *jea = a; > const struct jump_entry *jeb = b; > > + /* > + * Entrires are sorted by key. > + */ > if (jump_entry_key(jea) < jump_entry_key(jeb)) > return -1; > > if (jump_entry_key(jea) > jump_entry_key(jeb)) > return 1; > > +#ifdef HAVE_JUMP_LABEL_BATCH > + /* > + * In the batching mode, entries should also be sorted by the code > + * inside the already sorted list of entries, enabling a bsearch in > + * the vector. > + */ > + if (jump_entry_code(jea) < jump_entry_code(jeb)) > + return -1; > + > + if (jump_entry_code(jea) > jump_entry_code(jeb)) > + return 1; > +#endif > + > return 0; > } The secondary sort order doesn't hurt, so we could leave the #ifdef out, not sure.

