Re: [PATCH] fs: direct-io: use DIV_ROUND_UP helper macro for calculations
From: Joe Perches
Date: Sun Nov 07 2021 - 23:03:10 EST
On Mon, 2021-11-08 at 03:52 +0000, Matthew Wilcox wrote:
> On Sun, Nov 07, 2021 at 07:17:07PM -0800, Joe Perches wrote:
> > If you are interested, there are definitely a few more opportunities
> > to use this DIV_ROUND_UP macro in the kernel:
> >
> > $ git grep -P -n '\(\s*([\w\.\>\[\]\-]+)\s*\+\s*([\w\.\>\[\]\-]+)\s*-\s*1\s*\)\s*/\s*(?:\1|\2)\b'
> > arch/alpha/boot/tools/objstrip.c:260: mem_size = ((mem_size + pad - 1) / pad) * pad;
>
> Might want to exclude 'tools' ...
>
> > tools/bpf/bpftool/gen.c:184: align_off = (off + align - 1) / align * align;
> > tools/io_uring/io_uring-bench.c:140: return (DEPTH + s->nr_files - 1) / s->nr_files;
> > tools/lib/bpf/linker.c:1115: dst_align_sz = (dst->sec_sz + dst_align - 1) / dst_align * dst_align;
> > tools/lib/subcmd/help.c:119: rows = (cmds->cnt + cols - 1) / cols;
> > tools/testing/selftests/bpf/prog_tests/core_reloc.c:804: return (sz + page_size - 1) / page_size * page_size;
> > tools/testing/selftests/bpf/prog_tests/mmap.c:13: return (sz + page_size - 1) / page_size * page_size;
> > tools/testing/selftests/net/forwarding/sch_red.sh:202: local pkts=$(((diff + PKTSZ - 1) / PKTSZ))
> > tools/vm/page-types.c:943: size, (size + page_size - 1) / page_size);
>
> ... because most of these files won't have access to that macro.
> Definitely compile-test before sending a patch.
Always.
btw:
tools/include/linux/kernel.h:#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))