From: Nathan Chancellor <natechancellor@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Randy Dunlap <rdunlap@infradead.org>,
broonie@kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-next@vger.kernel.org, mhocko@suse.cz,
mm-commits@vger.kernel.org, sfr@canb.auug.org.au,
Chris Down <chris@chrisdown.name>
Subject: Re: mmotm 2019-07-24-21-39 uploaded (mm/memcontrol)
Date: Fri, 26 Jul 2019 20:42:05 -0700 [thread overview]
Message-ID: <20190727034205.GA10843@archlinux-threadripper> (raw)
In-Reply-To: <20190725163959.3d759a7f37ba40bb7f75244e@linux-foundation.org>
On Thu, Jul 25, 2019 at 04:39:59PM -0700, Andrew Morton wrote:
> On Thu, 25 Jul 2019 15:02:59 -0700 Randy Dunlap <rdunlap@infradead.org> wrote:
>
> > On 7/24/19 9:40 PM, akpm@linux-foundation.org wrote:
> > > The mm-of-the-moment snapshot 2019-07-24-21-39 has been uploaded to
> > >
> > > http://www.ozlabs.org/~akpm/mmotm/
> > >
> > > mmotm-readme.txt says
> > >
> > > README for mm-of-the-moment:
> > >
> > > http://www.ozlabs.org/~akpm/mmotm/
> > >
> > > This is a snapshot of my -mm patch queue. Uploaded at random hopefully
> > > more than once a week.
> > >
> > > You will need quilt to apply these patches to the latest Linus release (5.x
> > > or 5.x-rcY). The series file is in broken-out.tar.gz and is duplicated in
> > > http://ozlabs.org/~akpm/mmotm/series
> > >
> >
> > on i386:
> >
> > ld: mm/memcontrol.o: in function `mem_cgroup_handle_over_high':
> > memcontrol.c:(.text+0x6235): undefined reference to `__udivdi3'
>
> Thanks. This?
>
> --- a/mm/memcontrol.c~mm-throttle-allocators-when-failing-reclaim-over-memoryhigh-fix-fix
> +++ a/mm/memcontrol.c
> @@ -2414,8 +2414,9 @@ void mem_cgroup_handle_over_high(void)
> */
> clamped_high = max(high, 1UL);
>
> - overage = ((u64)(usage - high) << MEMCG_DELAY_PRECISION_SHIFT)
> - / clamped_high;
> + overage = (u64)(usage - high) << MEMCG_DELAY_PRECISION_SHIFT;
> + do_div(overage, clamped_high);
> +
> penalty_jiffies = ((u64)overage * overage * HZ)
> >> (MEMCG_DELAY_PRECISION_SHIFT + MEMCG_DELAY_SCALING_SHIFT);
>
> _
>
This causes a build error on arm:
In file included from ../arch/arm/include/asm/div64.h:127,
from ../include/linux/kernel.h:18,
from ../include/linux/page_counter.h:6,
from ../mm/memcontrol.c:25:
../mm/memcontrol.c: In function 'mem_cgroup_handle_over_high':
../include/asm-generic/div64.h:222:28: warning: comparison of distinct pointer types lacks a cast
222 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
| ^~
../mm/memcontrol.c:2423:2: note: in expansion of macro 'do_div'
2423 | do_div(overage, clamped_high);
| ^~~~~~
In file included from ../arch/arm/include/asm/atomic.h:11,
from ../include/linux/atomic.h:7,
from ../include/linux/page_counter.h:5,
from ../mm/memcontrol.c:25:
../include/asm-generic/div64.h:235:25: warning: right shift count >= width of type [-Wshift-count-overflow]
235 | } else if (likely(((n) >> 32) == 0)) { \
| ^~
../include/linux/compiler.h:77:40: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
../mm/memcontrol.c:2423:2: note: in expansion of macro 'do_div'
2423 | do_div(overage, clamped_high);
| ^~~~~~
In file included from ../arch/arm/include/asm/div64.h:127,
from ../include/linux/kernel.h:18,
from ../include/linux/page_counter.h:6,
from ../mm/memcontrol.c:25:
../include/asm-generic/div64.h:239:22: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
239 | __rem = __div64_32(&(n), __base); \
| ^~~~
| |
| long unsigned int *
../mm/memcontrol.c:2423:2: note: in expansion of macro 'do_div'
2423 | do_div(overage, clamped_high);
| ^~~~~~
In file included from ../include/linux/kernel.h:18,
from ../include/linux/page_counter.h:6,
from ../mm/memcontrol.c:25:
../arch/arm/include/asm/div64.h:33:45: note: expected 'uint64_t *' {aka 'long long unsigned int *'} but argument is of type 'long unsigned int *'
33 | static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
| ~~~~~~~~~~^
cc1: some warnings being treated as errors
make[3]: *** [../scripts/Makefile.build:274: mm/memcontrol.o] Error 1
make[2]: *** [../Makefile:1768: mm/memcontrol.o] Error 2
make[1]: *** [/home/nathan/cbl/linux-next/Makefile:330: __build_one_by_one] Error 2
make: *** [Makefile:179: sub-make] Error 2
I fixed it up like so but no idea if that is the ideal function to use.
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 5c7b9facb0eb..04b621f1cb6b 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2419,8 +2419,8 @@ void mem_cgroup_handle_over_high(void)
*/
clamped_high = max(high, 1UL);
- overage = (u64)(usage - high) << MEMCG_DELAY_PRECISION_SHIFT;
- do_div(overage, clamped_high);
+ overage = div64_u64((u64)(usage - high) << MEMCG_DELAY_PRECISION_SHIFT,
+ clamped_high);
penalty_jiffies = ((u64)overage * overage * HZ)
>> (MEMCG_DELAY_PRECISION_SHIFT + MEMCG_DELAY_SCALING_SHIFT);
next prev parent reply other threads:[~2019-07-27 3:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-25 4:40 mmotm 2019-07-24-21-39 uploaded akpm
2019-07-25 22:02 ` mmotm 2019-07-24-21-39 uploaded (mm/memcontrol) Randy Dunlap
2019-07-25 23:39 ` Andrew Morton
2019-07-25 23:51 ` Randy Dunlap
2019-07-27 3:42 ` Nathan Chancellor [this message]
2019-07-27 4:19 ` Andrew Morton
2019-07-27 4:36 ` Nathan Chancellor
2019-07-27 10:16 ` Chris Down
2019-07-28 23:51 ` Stephen Rothwell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190727034205.GA10843@archlinux-threadripper \
--to=natechancellor@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=broonie@kernel.org \
--cc=chris@chrisdown.name \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-next@vger.kernel.org \
--cc=mhocko@suse.cz \
--cc=mm-commits@vger.kernel.org \
--cc=rdunlap@infradead.org \
--cc=sfr@canb.auug.org.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.