Re: [RFC PATCH v3 7/7] x86/unwind/orc: remove run-time ORC unwind tables sort

Josh Poimboeuf
2019-11-18T14:41:50Z

On Mon, Nov 18, 2019 at 10:05:02AM +0000, David Laight wrote:
> From: Josh Poimboeuf <jpoimboe@redhat.com>
> > Sent: 15 November 2019 17:47
> > On Fri, Nov 15, 2019 at 04:51:24PM +0000, David Laight wrote:
> > > From: Shile Zhang
> > > > Sent: 15 November 2019 06:48
> > > ...
> > > > arch/x86/kernel/unwind_orc.c | 8 +++++---
> > > > 1 file changed, 5 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/arch/x86/kernel/unwind_orc.c b/arch/x86/kernel/unwind_orc.c
> > > > index 332ae6530fa8..280da6fa9922 100644
> > > > --- a/arch/x86/kernel/unwind_orc.c
> > > > +++ b/arch/x86/kernel/unwind_orc.c
> > > > @@ -273,9 +273,11 @@ void __init unwind_init(void)
> > > > return;
> > > > }
> > > >
> > > > - /* Sort the .orc_unwind and .orc_unwind_ip tables: */
> > > > - sort(__start_orc_unwind_ip, num_entries, sizeof(int), orc_sort_cmp,
> > > > - orc_sort_swap);
> > > > + /*
> > > > + * Note, orc_unwind and orc_unwind_ip tables has been sorted in
> > > > + * vmlinux link phase by sorttable tool at build time.
> > > > + * Its ready for binary search now.
> > > > + */
> > >
> > > How fast is sort() if the table is sorted?
> > > Relying on the kernel sources and build scripts always being in sync seems dangerous.
> > > Probably better to leave the sort in for a release of two.
> >
> > This patch comes after the build script changes, so they'd be in sync.
> > What would the concern be?
>
> Mostly that if, for any reason, the build script changes are missing nothing
> will detect the error - but the results will be very confusing.
> If the sort is fast for sorted inputs (some algorithms aren't) then leaving
> it in won't take that long.

But why would the build script changes be missing...

And it should fail gracefully for oopses anyway: stack traces will just
have a bunch of question marks.

--
Josh