Re: [PATCH 1/6] mm: change locked_vm's type from unsigned long to atomic64_t
From: Andrew Morton
Date: Tue Apr 16 2019 - 19:33:59 EST
On Thu, 11 Apr 2019 16:28:07 -0400 Daniel Jordan <daniel.m.jordan@xxxxxxxxxx> wrote:
> 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
> cast.
>
> Btw, thanks for doing this, Mark.
What's the status of this patchset, btw?
I have a note here that
powerpc-mmu-drop-mmap_sem-now-that-locked_vm-is-atomic.patch is to be
updated.