On Thu, May 28, 2020 at 5:26 AM kbuild test robot <l...@intel.com> wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git 
> dev.2020.05.26a
> head:   63fdce1252f16032c9e1eb7244bb674ba4f84855
> commit: bd5b16d6c88da451a46d068a25fafad8e83d14a6 [56/72] refperf: Allow 
> decimal nanoseconds
> config: m68k-allyesconfig (attached as .config)
> compiler: m68k-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
>         wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout bd5b16d6c88da451a46d068a25fafad8e83d14a6
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
> ARCH=m68k
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kbuild test robot <l...@intel.com>
>
> All errors (new ones prefixed by >>, old ones prefixed by <<):
>
> m68k-linux-ld: kernel/rcu/refperf.o: in function `main_func':
> >> refperf.c:(.text+0x762): undefined reference to `__umoddi3'
> >> m68k-linux-ld: refperf.c:(.text+0x8f2): undefined reference to `__udivdi3'
> m68k-linux-ld: refperf.c:(.text+0x97c): undefined reference to `__udivdi3'

| --- a/kernel/rcu/refperf.c
| +++ b/kernel/rcu/refperf.c
| @@ -375,7 +375,7 @@ static int main_func(void *arg)
|                 if (torture_must_stop())
|                         goto end;
|
| -               reader_tasks[exp].result_avg =
process_durations(exp) / ((exp + 1) * loops);
| +               reader_tasks[exp].result_avg = 1000 *
process_durations(exp) / ((exp + 1) * loops);

div64_ul() for 64-by-unsigned-long division

|         }
|
|         // Print the average of all experiments
| @@ -386,7 +386,7 @@ static int main_func(void *arg)
|         strcat(buf, "Threads\tTime(ns)\n");
|
|         for (exp = 0; exp < nreaders; exp++) {
| -               sprintf(buf1, "%d\t%llu\n", exp + 1,
reader_tasks[exp].result_avg);
| +               sprintf(buf1, "%d\t%llu.%03d\n", exp + 1,
reader_tasks[exp].result_avg / 1000,
(int)(reader_tasks[exp].result_avg % 1000));

do_div() for 64-by-32 division/modulo

|                 strcat(buf, buf1);
|         }


Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

Reply via email to