From: Josh Triplett <josh@joshtriplett.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: David Drysdale <drysdale@google.com>,
linux-api@vger.kernel.org,
Michael Kerrisk <mtk.manpages@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>,
Shuah Khan <shuahkh@osg.samsung.com>,
Jonathan Corbet <corbet@lwn.net>,
Eric B Munson <emunson@akamai.com>,
Randy Dunlap <rdunlap@infradead.org>,
Andrea Arcangeli <aarcange@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Oleg Nesterov <oleg@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andy Lutomirski <luto@amacapital.net>,
Al Viro <viro@zeniv.linux.org.uk>,
Rusty Russell <rusty@rustcorp.com.au>,
Peter Zijlstra <peterz@infradead.org>,
Vivek Goyal <vgoyal@redhat.com>,
Alexei Starovoitov <ast@plumgrid.com>,
David Herrmann <dh.herrmann@gmail.com>,
Theodore
Subject: Re: [PATCHv2 1/1] Documentation: describe how to add a system call
Date: Thu, 30 Jul 2015 11:22:05 -0700 [thread overview]
Message-ID: <20150730182205.GB16452@x> (raw)
In-Reply-To: <20150730083831.GA22182@gmail.com>
On Thu, Jul 30, 2015 at 10:38:31AM +0200, Ingo Molnar wrote:
> When the system call is extended in the future on the kernel side, with 'u64
> param_4', then the structure expands from an old size of 24 to a new size of 32
> bytes. The following scenarios might occur:
>
> - the common case: new user-space calls the new kernel code, ->size is 32 on both
> sides.
>
> - old binaries might call the kernel with params->size == 24, in which case the
> kernel sets the new fields to 0. The new feature should be written
> accordingly, so that a value of 0 means the old behavior.
>
> - new binaries might run on old kernels, with params->size == 32. In this case
> the old kernel will check that all the new fields it does not know about are
> set to 0 - if they are nonzero (if the new feature is used) it returns with
> -ENOSYS or -EINVAL.
Nit: it seems easier, rather than having the kernel check this, to have
userspace only use the minimum version of the structure that contains
the features they use, and then have older kernels reject sizes bigger
than they understand. If you don't need param_4, don't use the version
of the structure that has param_4. That also means the kernel doesn't
need to copy and read those values. Either approach works, though.
- Josh Triplett
next prev parent reply other threads:[~2015-07-30 18:22 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-30 7:52 [PATCHv2 0/1] Document how to add a new syscall David Drysdale
2015-07-30 7:52 ` [PATCHv2 1/1] Documentation: describe how to add a system call David Drysdale
2015-07-30 8:38 ` Ingo Molnar
[not found] ` <20150730083831.GA22182-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-07-30 11:10 ` David Drysdale
2015-07-30 18:21 ` Kees Cook
[not found] ` <CAGXu5j+5KHy68ELU6PmNWaj7mQBXTbRQGXqJFwsXHt9n0LPw8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-30 19:04 ` Josh Triplett
2015-07-30 20:03 ` Kees Cook
2015-07-31 1:02 ` Josh Triplett
2015-07-31 1:03 ` Josh Triplett
2015-07-31 18:56 ` Kees Cook
2015-07-31 20:59 ` josh
2015-07-31 21:19 ` Andy Lutomirski
[not found] ` <CALCETrUkMXvFRKdTH7ekY7FyGvbKDDJbf7L0shgs5R-Hep6bVA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-31 22:08 ` josh-iaAMLnmF4UmaiuxdJuQwMA
2015-07-31 22:54 ` Andy Lutomirski
2015-08-01 4:32 ` Josh Triplett
2015-08-01 4:56 ` H. Peter Anvin
[not found] ` <55BC518E.4010102-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2015-08-01 6:18 ` Josh Triplett
2015-08-01 6:28 ` H. Peter Anvin
2015-07-30 18:22 ` Josh Triplett [this message]
2015-07-30 16:30 ` Cyril Hrubis
2015-07-30 16:45 ` Greg Kroah-Hartman
2015-07-30 18:50 ` Josh Triplett
2015-07-31 9:48 ` David Drysdale
2015-07-31 13:06 ` Josh Triplett
2015-07-31 14:42 ` David Drysdale
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=20150730182205.GB16452@x \
--to=josh@joshtriplett.org \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=ast@plumgrid.com \
--cc=corbet@lwn.net \
--cc=dh.herrmann@gmail.com \
--cc=drysdale@google.com \
--cc=emunson@akamai.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=linux-api@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=mtk.manpages@gmail.com \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=rusty@rustcorp.com.au \
--cc=shuahkh@osg.samsung.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vgoyal@redhat.com \
--cc=viro@zeniv.linux.org.uk \
/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;
as well as URLs for NNTP newsgroup(s).