On Wed, 2020-03-18 at 04:35 +0800, kbuild test robot wrote: > tree: https://github.com/ceph/ceph-client.git testing > head: 3188fc411f0c286ac4dc4ea146ddc4bf4f348b39 > commit: dc1961a859fe49cad7a26001bd3e9a53f234bf59 [49/53] ceph: add global read latency metric support > config: i386-randconfig-e002-20200317 (attached as .config) > compiler: gcc-7 (Debian 7.5.0-5) 7.5.0 > reproduce: > git checkout dc1961a859fe49cad7a26001bd3e9a53f234bf59 > # save the attached .config to linux build tree > make ARCH=i386 > > If you fix the issue, kindly add following tag > Reported-by: kbuild test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > > ld: fs/ceph/debugfs.o: in function `metric_show': > > > fs/ceph/debugfs.c:140: undefined reference to `__divdi3' > > vim +140 fs/ceph/debugfs.c > > 126 > 127 static int metric_show(struct seq_file *s, void *p) > 128 { > 129 struct ceph_fs_client *fsc = s->private; > 130 struct ceph_mds_client *mdsc = fsc->mdsc; > 131 int i, nr_caps = 0; > 132 s64 total, sum, avg = 0; > 133 > 134 seq_printf(s, "item total sum_lat(us) avg_lat(us)\n"); > 135 seq_printf(s, "-----------------------------------------------------\n"); > 136 > 137 total = percpu_counter_sum(&mdsc->metric.total_reads); > 138 sum = percpu_counter_sum(&mdsc->metric.read_latency_sum); > 139 sum = jiffies_to_usecs(sum); > > 140 avg = total ? sum / total : 0; Thanks kbuild bot! Old 32-bit arches can't do division on long long (64-bit) values. The right fix for this is probably to use do_div(sum, total), instead of trying to do this with normal integer division. -- Jeff Layton <jlayton@xxxxxxxxxx>