All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <christian@brauner.io>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Joel Fernandes <joel@joelfernandes.org>,
	Daniel Colascione <dancol@google.com>,
	Jann Horn <jannh@google.com>, Oleg Nesterov <oleg@redhat.com>,
	Florian Weimer <fweimer@redhat.com>,
	kernel list <linux-kernel@vger.kernel.org>,
	Andy Lutomirski <luto@amacapital.net>,
	Steven Rostedt <rostedt@goodmis.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Andrei Vagin <avagin@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Arnd Bergmann <arnd@arndb.de>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Kees Cook <keescook@chromium.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	"open list:KERNEL SELFTEST FRAMEWORK" 
	<linux-kselftest@vger.kernel.org>, Michal Hocko <mhocko@suse.com>,
	Nadav Amit <namit@vmware.com>, Serge Hallyn <serge@hallyn.com>,
	Shuah Khan <shuah@kernel.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Taehee Yoo <ap420073@gmail.com>, Tejun Heo <tj@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	kernel-team <kernel-team@android.com>,
	Tycho Andersen <tycho@tycho.ws>
Subject: Re: [PATCH RFC 1/2] Add polling support to pidfd
Date: Sat, 20 Apr 2019 01:20:01 +0200	[thread overview]
Message-ID: <CAHrFyr6rA7w6H_N5bV_9EY26Jxza1TLp6=rLL7=grK6_tp6cHw@mail.gmail.com> (raw)
In-Reply-To: <CAHk-=wiiYUuk7LrkNaggvzZqB63Efu5sChV5hAOdn1ZfunUw6Q@mail.gmail.com>

On Sat, Apr 20, 2019 at 1:11 AM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Fri, Apr 19, 2019 at 2:20 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> >
> > According to Linus, POLLHUP usually indicates that something is readable:
>
> Note that if you use the legacy interfaces (ie "select()"), then even
> just a plain POLLHUP will always just show as "readable".
>
> So for a lot of applications, it won't even matter. Returning POLLHUP
> will mean it's readable whether POLLIN is set or not (and EPOLLERR
> will automatically mean that it's marked both readable and writable).
>
> In fact, I'd argue that not a lot of people care about the more
> esoteric bits at all. If your poll function does POLLIN and POLLOUT,
> it's fine. Anything else is specialized enough that most people simply
> won't care. Don't overdesign things too much. You need to have a major
> reason to care about the other POLL bits.
>
> It's also worth noting that POLLERR/POLLHUP/POLLNVAL cannot be masked
> for "poll()". Even if you only ask for POLLIN/POLLOUT, you will always
> get POLLERR/POLLHUP notification. That is again historical behavior,
> and it's kind of a "you can't poll a hung up fd". But it once again
> means that you should consider POLLHUP to be something *exceptional*
> and final, where no further or other state changes can happen or are
> relevant.

Which kind of makes sense for process exit. So the historical behavior
here is in our favor and having POLLIN | POLLHUP rather fitting.
It just seems right that POLLHUP indicates "there can be
no more state transitions".

Christian

WARNING: multiple messages have this Message-ID (diff)
From: christian at brauner.io (Christian Brauner)
Subject: [PATCH RFC 1/2] Add polling support to pidfd
Date: Sat, 20 Apr 2019 01:20:01 +0200	[thread overview]
Message-ID: <CAHrFyr6rA7w6H_N5bV_9EY26Jxza1TLp6=rLL7=grK6_tp6cHw@mail.gmail.com> (raw)
In-Reply-To: <CAHk-=wiiYUuk7LrkNaggvzZqB63Efu5sChV5hAOdn1ZfunUw6Q@mail.gmail.com>

On Sat, Apr 20, 2019 at 1:11 AM Linus Torvalds
<torvalds at linux-foundation.org> wrote:
>
> On Fri, Apr 19, 2019 at 2:20 PM Joel Fernandes <joel at joelfernandes.org> wrote:
> >
> > According to Linus, POLLHUP usually indicates that something is readable:
>
> Note that if you use the legacy interfaces (ie "select()"), then even
> just a plain POLLHUP will always just show as "readable".
>
> So for a lot of applications, it won't even matter. Returning POLLHUP
> will mean it's readable whether POLLIN is set or not (and EPOLLERR
> will automatically mean that it's marked both readable and writable).
>
> In fact, I'd argue that not a lot of people care about the more
> esoteric bits at all. If your poll function does POLLIN and POLLOUT,
> it's fine. Anything else is specialized enough that most people simply
> won't care. Don't overdesign things too much. You need to have a major
> reason to care about the other POLL bits.
>
> It's also worth noting that POLLERR/POLLHUP/POLLNVAL cannot be masked
> for "poll()". Even if you only ask for POLLIN/POLLOUT, you will always
> get POLLERR/POLLHUP notification. That is again historical behavior,
> and it's kind of a "you can't poll a hung up fd". But it once again
> means that you should consider POLLHUP to be something *exceptional*
> and final, where no further or other state changes can happen or are
> relevant.

Which kind of makes sense for process exit. So the historical behavior
here is in our favor and having POLLIN | POLLHUP rather fitting.
It just seems right that POLLHUP indicates "there can be
no more state transitions".

Christian

WARNING: multiple messages have this Message-ID (diff)
From: christian@brauner.io (Christian Brauner)
Subject: [PATCH RFC 1/2] Add polling support to pidfd
Date: Sat, 20 Apr 2019 01:20:01 +0200	[thread overview]
Message-ID: <CAHrFyr6rA7w6H_N5bV_9EY26Jxza1TLp6=rLL7=grK6_tp6cHw@mail.gmail.com> (raw)
Message-ID: <20190419232001.btEEh1dk8YY_EHKUHqtnB11W_qKKxi5L0DEILwzOnBA@z> (raw)
In-Reply-To: <CAHk-=wiiYUuk7LrkNaggvzZqB63Efu5sChV5hAOdn1ZfunUw6Q@mail.gmail.com>

On Sat, Apr 20, 2019 at 1:11 AM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Fri, Apr 19, 2019@2:20 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> >
> > According to Linus, POLLHUP usually indicates that something is readable:
>
> Note that if you use the legacy interfaces (ie "select()"), then even
> just a plain POLLHUP will always just show as "readable".
>
> So for a lot of applications, it won't even matter. Returning POLLHUP
> will mean it's readable whether POLLIN is set or not (and EPOLLERR
> will automatically mean that it's marked both readable and writable).
>
> In fact, I'd argue that not a lot of people care about the more
> esoteric bits at all. If your poll function does POLLIN and POLLOUT,
> it's fine. Anything else is specialized enough that most people simply
> won't care. Don't overdesign things too much. You need to have a major
> reason to care about the other POLL bits.
>
> It's also worth noting that POLLERR/POLLHUP/POLLNVAL cannot be masked
> for "poll()". Even if you only ask for POLLIN/POLLOUT, you will always
> get POLLERR/POLLHUP notification. That is again historical behavior,
> and it's kind of a "you can't poll a hung up fd". But it once again
> means that you should consider POLLHUP to be something *exceptional*
> and final, where no further or other state changes can happen or are
> relevant.

Which kind of makes sense for process exit. So the historical behavior
here is in our favor and having POLLIN | POLLHUP rather fitting.
It just seems right that POLLHUP indicates "there can be
no more state transitions".

Christian

  reply	other threads:[~2019-04-19 23:20 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-11 17:50 [PATCH RFC 1/2] Add polling support to pidfd Joel Fernandes (Google)
2019-04-11 17:50 ` Joel Fernandes (Google)
2019-04-11 17:50 ` joel
2019-04-11 17:50 ` [PATCH RFC 2/2] Add selftests for pidfd polling Joel Fernandes (Google)
2019-04-11 17:50   ` Joel Fernandes (Google)
2019-04-11 17:50   ` joel
2019-04-12 14:51   ` Tycho Andersen
2019-04-12 14:51     ` Tycho Andersen
2019-04-12 14:51     ` tycho
2019-04-11 20:00 ` [PATCH RFC 1/2] Add polling support to pidfd Joel Fernandes
2019-04-11 20:00   ` Joel Fernandes
2019-04-11 20:00   ` joel
2019-04-11 20:02   ` Christian Brauner
2019-04-11 20:02     ` Christian Brauner
2019-04-11 20:02     ` christian
2019-04-11 20:20     ` Joel Fernandes
2019-04-11 20:20       ` Joel Fernandes
2019-04-11 20:20       ` joel
2019-04-12 21:32 ` Andy Lutomirski
2019-04-12 21:32   ` Andy Lutomirski
2019-04-12 21:32   ` luto
2019-04-13  0:09   ` Joel Fernandes
2019-04-13  0:09     ` Joel Fernandes
2019-04-13  0:09     ` joel
     [not found]     ` <CAKOZuetX4jMPDtDqAvGgSNo4BHf9BOnu79ufEiULfM5X5nDyyQ@mail.gmail.com>
2019-04-13  0:56       ` Daniel Colascione
2019-04-13  0:56         ` Daniel Colascione
2019-04-13  0:56         ` dancol
2019-04-14 18:19   ` Linus Torvalds
2019-04-14 18:19     ` Linus Torvalds
2019-04-14 18:19     ` torvalds
2019-04-16 12:04 ` Oleg Nesterov
2019-04-16 12:04   ` Oleg Nesterov
2019-04-16 12:04   ` oleg
2019-04-16 12:43   ` Oleg Nesterov
2019-04-16 12:43     ` Oleg Nesterov
2019-04-16 12:43     ` oleg
2019-04-16 19:20   ` Joel Fernandes
2019-04-16 19:20     ` Joel Fernandes
2019-04-16 19:20     ` joel
2019-04-16 19:32     ` Joel Fernandes
2019-04-16 19:32       ` Joel Fernandes
2019-04-16 19:32       ` joel
2019-04-17 13:09     ` Oleg Nesterov
2019-04-17 13:09       ` Oleg Nesterov
2019-04-17 13:09       ` oleg
2019-04-18 17:23       ` Jann Horn
2019-04-18 17:23         ` Jann Horn
2019-04-18 17:23         ` jannh
2019-04-18 17:26         ` Christian Brauner
2019-04-18 17:26           ` Christian Brauner
2019-04-18 17:26           ` christian
2019-04-18 17:53           ` Daniel Colascione
2019-04-18 17:53             ` Daniel Colascione
2019-04-18 17:53             ` dancol
2019-04-19 19:02           ` Joel Fernandes
2019-04-19 19:02             ` Joel Fernandes
2019-04-19 19:02             ` joel
2019-04-19 19:18             ` Christian Brauner
2019-04-19 19:18               ` Christian Brauner
2019-04-19 19:18               ` christian
2019-04-19 19:22               ` Christian Brauner
2019-04-19 19:22                 ` Christian Brauner
2019-04-19 19:22                 ` christian
2019-04-19 19:42                 ` Christian Brauner
2019-04-19 19:42                   ` Christian Brauner
2019-04-19 19:42                   ` christian
2019-04-19 19:49               ` Joel Fernandes
2019-04-19 19:49                 ` Joel Fernandes
2019-04-19 19:49                 ` joel
2019-04-19 20:01                 ` Christian Brauner
2019-04-19 20:01                   ` Christian Brauner
2019-04-19 20:01                   ` christian
2019-04-19 21:13                   ` Joel Fernandes
2019-04-19 21:13                     ` Joel Fernandes
2019-04-19 21:13                     ` joel
2019-04-19 20:34                 ` Daniel Colascione
2019-04-19 20:34                   ` Daniel Colascione
2019-04-19 20:34                   ` dancol
2019-04-19 20:57                   ` Christian Brauner
2019-04-19 20:57                     ` Christian Brauner
2019-04-19 20:57                     ` christian
2019-04-19 21:20                     ` Joel Fernandes
2019-04-19 21:20                       ` Joel Fernandes
2019-04-19 21:20                       ` joel
2019-04-19 21:24                       ` Daniel Colascione
2019-04-19 21:24                         ` Daniel Colascione
2019-04-19 21:24                         ` dancol
2019-04-19 21:45                         ` Joel Fernandes
2019-04-19 21:45                           ` Joel Fernandes
2019-04-19 21:45                           ` joel
2019-04-19 22:08                           ` Daniel Colascione
2019-04-19 22:08                             ` Daniel Colascione
2019-04-19 22:08                             ` dancol
2019-04-19 22:17                             ` Christian Brauner
2019-04-19 22:17                               ` Christian Brauner
2019-04-19 22:17                               ` christian
2019-04-19 22:37                               ` Daniel Colascione
2019-04-19 22:37                                 ` Daniel Colascione
2019-04-19 22:37                                 ` dancol
2019-04-24  8:04                         ` Enrico Weigelt, metux IT consult
2019-04-24  8:04                           ` Enrico Weigelt, metux IT consult
2019-04-24  8:04                           ` lkml
2019-04-19 21:59                       ` Christian Brauner
2019-04-19 21:59                         ` Christian Brauner
2019-04-19 21:59                         ` christian
2019-04-20 11:51                         ` Oleg Nesterov
2019-04-20 11:51                           ` Oleg Nesterov
2019-04-20 11:51                           ` oleg
2019-04-20 12:26                           ` Oleg Nesterov
2019-04-20 12:26                             ` Oleg Nesterov
2019-04-20 12:26                             ` oleg
2019-04-20 12:35                             ` Christian Brauner
2019-04-20 12:35                               ` Christian Brauner
2019-04-20 12:35                               ` christian
2019-04-19 23:11                       ` Linus Torvalds
2019-04-19 23:11                         ` Linus Torvalds
2019-04-19 23:11                         ` torvalds
2019-04-19 23:20                         ` Christian Brauner [this message]
2019-04-19 23:20                           ` Christian Brauner
2019-04-19 23:20                           ` christian
2019-04-19 23:32                           ` Linus Torvalds
2019-04-19 23:32                             ` Linus Torvalds
2019-04-19 23:32                             ` torvalds
2019-04-19 23:36                             ` Daniel Colascione
2019-04-19 23:36                               ` Daniel Colascione
2019-04-19 23:36                               ` dancol
2019-04-20  0:46                         ` Joel Fernandes
2019-04-20  0:46                           ` Joel Fernandes
2019-04-20  0:46                           ` joel
2019-04-19 21:21                     ` Daniel Colascione
2019-04-19 21:21                       ` Daniel Colascione
2019-04-19 21:21                       ` dancol
2019-04-19 21:48                       ` Christian Brauner
2019-04-19 21:48                         ` Christian Brauner
2019-04-19 21:48                         ` christian
2019-04-19 22:02                         ` Christian Brauner
2019-04-19 22:02                           ` Christian Brauner
2019-04-19 22:02                           ` christian
2019-04-19 22:46                           ` Daniel Colascione
2019-04-19 22:46                             ` Daniel Colascione
2019-04-19 22:46                             ` dancol
2019-04-19 23:12                             ` Christian Brauner
2019-04-19 23:12                               ` Christian Brauner
2019-04-19 23:12                               ` christian
2019-04-19 23:46                               ` Daniel Colascione
2019-04-19 23:46                                 ` Daniel Colascione
2019-04-19 23:46                                 ` dancol
2019-04-20  0:17                                 ` Christian Brauner
2019-04-20  0:17                                   ` Christian Brauner
2019-04-20  0:17                                   ` christian
2019-04-24  9:05                                   ` Enrico Weigelt, metux IT consult
2019-04-24  9:05                                     ` Enrico Weigelt, metux IT consult
2019-04-24  9:05                                     ` lkml
2019-04-24  9:03                                 ` Enrico Weigelt, metux IT consult
2019-04-24  9:03                                   ` Enrico Weigelt, metux IT consult
2019-04-24  9:03                                   ` lkml
2019-04-19 22:35                         ` Daniel Colascione
2019-04-19 22:35                           ` Daniel Colascione
2019-04-19 22:35                           ` dancol
2019-04-19 23:02                           ` Christian Brauner
2019-04-19 23:02                             ` Christian Brauner
2019-04-19 23:02                             ` christian
2019-04-19 23:29                             ` Daniel Colascione
2019-04-19 23:29                               ` Daniel Colascione
2019-04-19 23:29                               ` dancol
2019-04-20  0:02                               ` Christian Brauner
2019-04-20  0:02                                 ` Christian Brauner
2019-04-20  0:02                                 ` christian
2019-04-24  9:17                               ` Enrico Weigelt, metux IT consult
2019-04-24  9:17                                 ` Enrico Weigelt, metux IT consult
2019-04-24  9:17                                 ` lkml
2019-04-24  9:11                             ` Enrico Weigelt, metux IT consult
2019-04-24  9:11                               ` Enrico Weigelt, metux IT consult
2019-04-24  9:11                               ` lkml
2019-04-24  8:56                         ` Enrico Weigelt, metux IT consult
2019-04-24  8:56                           ` Enrico Weigelt, metux IT consult
2019-04-24  8:56                           ` lkml
2019-04-24  8:20                       ` Enrico Weigelt, metux IT consult
2019-04-24  8:20                         ` Enrico Weigelt, metux IT consult
2019-04-24  8:20                         ` lkml
2019-04-19 15:43         ` Oleg Nesterov
2019-04-19 15:43           ` Oleg Nesterov
2019-04-19 15:43           ` oleg
2019-04-19 18:12       ` Joel Fernandes
2019-04-19 18:12         ` Joel Fernandes
2019-04-19 18:12         ` joel
2019-04-18 18:44     ` Jonathan Kowalski
2019-04-18 18:44       ` Jonathan Kowalski
2019-04-18 18:44       ` bl0pbl33p
2019-04-18 18:57       ` Daniel Colascione
2019-04-18 18:57         ` Daniel Colascione
2019-04-18 18:57         ` dancol
2019-04-18 19:14         ` Linus Torvalds
2019-04-18 19:14           ` Linus Torvalds
2019-04-18 19:14           ` torvalds
2019-04-19 19:05           ` Joel Fernandes
2019-04-19 19:05             ` Joel Fernandes
2019-04-19 19:05             ` joel

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='CAHrFyr6rA7w6H_N5bV_9EY26Jxza1TLp6=rLL7=grK6_tp6cHw@mail.gmail.com' \
    --to=christian@brauner.io \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=ap420073@gmail.com \
    --cc=arnd@arndb.de \
    --cc=avagin@gmail.com \
    --cc=dancol@google.com \
    --cc=ebiederm@xmission.com \
    --cc=fweimer@redhat.com \
    --cc=jannh@google.com \
    --cc=joel@joelfernandes.org \
    --cc=keescook@chromium.org \
    --cc=kernel-team@android.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mhocko@suse.com \
    --cc=namit@vmware.com \
    --cc=oleg@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=serge@hallyn.com \
    --cc=sfr@canb.auug.org.au \
    --cc=shuah@kernel.org \
    --cc=surenb@google.com \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tycho@tycho.ws \
    --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 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.