Re: [PATCH 1/6] mm: change locked_vm's type from unsigned long to atomic64_t
From: Daniel Jordan
Date: Thu Apr 11 2019 - 16:28:30 EST
On Thu, Apr 11, 2019 at 10:55:43AM +0100, Mark Rutland wrote:
> On Thu, Apr 11, 2019 at 02:22:23PM +1000, Alexey Kardashevskiy wrote:
> > On 03/04/2019 07:41, Daniel Jordan wrote:
> > > - dev_dbg(dev, "[%d] RLIMIT_MEMLOCK %c%ld %ld/%ld%s\n", current->pid,
> > > + dev_dbg(dev, "[%d] RLIMIT_MEMLOCK %c%ld %lld/%lu%s\n", current->pid,
> > > incr ? '+' : '-', npages << PAGE_SHIFT,
> > > - current->mm->locked_vm << PAGE_SHIFT, rlimit(RLIMIT_MEMLOCK),
> > > - ret ? "- exceeded" : "");
> > > + (s64)atomic64_read(¤t->mm->locked_vm) << PAGE_SHIFT,
> > > + rlimit(RLIMIT_MEMLOCK), ret ? "- exceeded" : "");
> > atomic64_read() returns "long" which matches "%ld", why this change (and
> > similar below)? You did not do this in the two pr_debug()s above anyway.
> Unfortunately, architectures return inconsistent types for atomic64 ops.
> Some return long (e..g. powerpc), some return long long (e.g. arc), and
> some return s64 (e.g. x86).
Yes, Mark said it all, I'm just chiming in to confirm that's why I added the
Btw, thanks for doing this, Mark.