Re: [PATCH] modpost: Optimize symbol search from linear to binary search

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 26, 2023 at 4:24 PM Joe Perches <joe@xxxxxxxxxxx> wrote:
>
> On Tue, 2023-09-26 at 15:46 +0900, Masahiro Yamada wrote:
> > On Tue, Sep 26, 2023 at 5:59 AM Jack Brennen <jbrennen@xxxxxxxxxx> wrote:
> >
> > > +Elf_Sym *symsearch_find_nearest(struct elf_info *elf, Elf_Addr addr,
> > > +                               unsigned int secndx, bool allow_negative,
> > > +                               Elf_Addr min_distance)
> > > +{
> > > +       size_t hi = elf->symsearch->table_size;
> > > +       size_t lo = 0;
> > > +       struct syminfo *table = elf->symsearch->table;
> > > +       struct syminfo target;
> > > +
> > > +       target.addr = addr;
> > > +       target.section_index = secndx;
> > > +       target.symbol_index = ~0;  /* compares greater than any actual index */
> > > +       while (hi > lo) {
> > > +               size_t mid = lo + (hi-lo)/2;   /* Avoids potential overflow */
> > > +
> > > +               if (syminfo_compare(&table[mid], &target) > 0)
> > > +                       hi = mid;
> > > +               else
> > > +                       lo = mid+1;
> >
> > My preference is "low = mid + 1" over "low = mid+1"
> >
> > Documentation/process/coding-style.rst suggests spaces
> > around binary operators.
> >
> > "
> > Use one space around (on each side of) most binary and ternary operators,
> > such as any of these::
> >
> >         =  +  -  <  >  *  /  %  |  &  ^  <=  >=  ==  !=  ?  :
> > "
> >
> > I can see the corresponding line in the checkpatch tool:
> >
> > https://github.com/torvalds/linux/blob/v6.5/scripts/checkpatch.pl#L5330
> >
> >
> > I wonder why the checkpatch did not detect it.
> >
> > Maybe, Joe Perches may know the reason.
>
> checkpatch requires --strict to emit that message.
>




Ah, now I see it.  I learned a new thing today.



CHECK: spaces preferred around that '+' (ctx:VxV)
#466: FILE: scripts/mod/symsearch.c:172:
+ lo = mid+1;
          ^







--
Best Regards
Masahiro Yamada




[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux