linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nhat Pham <nphamcs@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	linux-mm@kvack.org,  linux-kernel@vger.kernel.org,
	bfoster@redhat.com,  Matthew Wilcox <willy@infradead.org>,
	linux-api@vger.kernel.org, kernel-team@meta.com
Subject: Re: [PATCH v9 2/3] cachestat: implement cachestat syscall
Date: Sat, 11 Feb 2023 23:17:34 -0800	[thread overview]
Message-ID: <CAKEwX=OCURhs77Rdz81m8xyOKER_FvmVGVAKdmSWMgG--jWkKA@mail.gmail.com> (raw)
In-Reply-To: <834254e6-a9c2-440c-9c67-fc5fa5ca43bc@app.fastmail.com>

On Sun, Feb 5, 2023 at 1:56 AM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Fri, Feb 3, 2023, at 20:04, Nhat Pham wrote:
>
> > +SYSCALL_DEFINE5(cachestat, unsigned int, fd, loff_t, off, size_t, len,
> > +             struct cachestat __user *, cstat, unsigned int, flags)
> > +{
> > +     return ksys_cachestat(fd, off, len, cstat, flags);
> > +}
> > +
> > +#ifdef CONFIG_COMPAT
> > +COMPAT_SYSCALL_DEFINE6(cachestat, unsigned int, fd,
> > compat_arg_u64_dual(off),
> > +             size_t, len, struct cachestat __user *, cstat, unsigned int, flags)
> > +{
> > +     return ksys_cachestat(fd, compat_arg_u64_glue(off), len, cstat,
> > flags);
> > +}
>
> This still looks wrong to me, as this compat definition does not match
> the native variant on architectures that require 64-bit arguments to
> be passed in aligned register pairs, such as arm, mips or ppc, but
> not x86, s390 or riscv.

(looks like I sent the last email in the wrong format - resending this
in plain text to see if the problem persists...)

Oh I see - thanks for pointing that out! And the last bit means this
is a non-issue for x86, s390 or riscv right?

And iirc from the last thread, this is fixable via a simple reordering
of the args in order to properly align the 64-bit arguments, for e.g:

SYSCALL_DEFINE5(cachestat, loff_t, off, unsigned int, fd, size_t, len,
              struct cachestat __user *, cstat, unsigned int, flags)

...

COMPAT_SYSCALL_DEFINE6(cachestat, compat_arg_u64_dual(off),
             unsigned int, fd, size_t, len, struct cachestat __user *, cstat,
             unsigned int, flags)


It looks a bit odd to me that fd is not the first argument, but perhaps this
is an acceptable sacrifice to avoid unused arg and keep the flags...

Let me know what you think about this!

>
>      Arnd


  parent reply	other threads:[~2023-02-12  7:17 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-03 19:04 [PATCH v9 0/3] cachestat: a new syscall for page cache state of files Nhat Pham
2023-02-03 19:04 ` [PATCH v9 1/3] workingset: refactor LRU refault to expose refault recency check Nhat Pham
2023-02-03 19:04 ` [PATCH v9 2/3] cachestat: implement cachestat syscall Nhat Pham
2023-02-03 22:10   ` kernel test robot
2023-02-03 22:10   ` kernel test robot
2023-02-03 22:10   ` kernel test robot
2023-02-05  9:55   ` Arnd Bergmann
2023-02-12  6:58     ` Nhat Pham
2023-02-13  7:00       ` Arnd Bergmann
2023-02-12  7:17     ` Nhat Pham [this message]
2023-02-03 19:04 ` [PATCH v9 3/3] selftests: Add selftests for cachestat Nhat Pham

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='CAKEwX=OCURhs77Rdz81m8xyOKER_FvmVGVAKdmSWMgG--jWkKA@mail.gmail.com' \
    --to=nphamcs@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=bfoster@redhat.com \
    --cc=hannes@cmpxchg.org \
    --cc=kernel-team@meta.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=willy@infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox