From: Josh Triplett <josh@joshtriplett.org>
To: Fam Zheng <famz@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
Miklos Szeredi <mszeredi@suse.cz>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
X86 ML <x86@kernel.org>, Alexander Viro <viro@zeniv.linux.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Juri Lelli <juri.lelli@gmail.com>, Zach Brown <zab@zabbo.net>,
David Drysdale <drysdale@google.com>,
Kees Cook <keescook@chromium.org>,
Alexei Starovoitov <ast@plumgrid.com>,
David Herrmann <dh.herrmann@gmail.com>,
Dario Faggioli <raistlin@linux.it>, Theodore Ts'o <tytso@mit.edu>,
Peter Zijlstra <peterz@infradead.org>,
Vivek Goyal <vgoyal@redhat.com>,
Mike Frysinger <vapier@gentoo.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Oleg Nesterov <oleg@redhat.com>,
Mathieu
Subject: Re: [PATCH 0/3] epoll: Add epoll_pwait1 syscall
Date: Mon, 12 Jan 2015 02:08:37 -0800 [thread overview]
Message-ID: <20150112100836.GA13150@thin> (raw)
In-Reply-To: <20150112082400.GA21123@fam-t430.nay.redhat.com>
On Mon, Jan 12, 2015 at 04:24:00PM +0800, Fam Zheng wrote:
> On Thu, 01/08 21:21, Josh Triplett wrote:
> > On Fri, Jan 09, 2015 at 12:49:08PM +0800, Fam Zheng wrote:
> > > On Thu, 01/08 18:24, Andy Lutomirski wrote:
> > > > On Thu, Jan 8, 2015 at 5:52 PM, Fam Zheng <famz@redhat.com> wrote:
> > > > > On Thu, 01/08 17:28, Andy Lutomirski wrote:
> > > > >> On Thu, Jan 8, 2015 at 5:25 PM, Fam Zheng <famz@redhat.com> wrote:
> > > > >> > On Thu, 01/08 09:57, Andy Lutomirski wrote:
> > > > >> >> I'd like to see a more ambitious change, since the timer isn't the
> > > > >> >> only problem like this. Specifically, I'd like a syscall that does a
> > > > >> >> list of epoll-related things and then waits. The list of things could
> > > > >> >> include, at least:
> > > > >> >>
> > > > >> >> - EPOLL_CTL_MOD actions: level-triggered epoll users are likely to
> > > > >> >> want to turn on and off their requests for events on a somewhat
> > > > >> >> regular basis.
> > > > >> >
> > > > >> > This sounds good to me.
> > > > >> >
> > > > >> >>
> > > > >> >> - timerfd_settime actions: this allows a single syscall to wait and
> > > > >> >> adjust *both* monotonic and real-time wakeups.
> > > > >> >
> > > > >> > I'm not sure, doesn't this break orthogonality between epoll and timerfd?
> > > > >>
> > > > >> Yes. It's not very elegant, and more elegant ideas are welcome.
> > > > >
> > > > > What is the purpose of embedding timerfd operation here? Modifying timerfd
> > > > > for each poll doesn't sound a common pattern to me.
> > > >
> > > > Setting a timeout is definitely a common pattern, hence this thread.
> > > > But the current timeout interface sucks, and people should really use
> > > > absolute time. (My epoll software uses absolute time.) But then
> > > > users need to decide whether to have their timeout based on the
> > > > monotonic clock or the realtime clock (or something else entirely).
> > > > Some bigger programs may want both -- they may have internal events
> > > > queued for certain times and for certain timeouts, and those should
> > > > use realtime and monotonic respectively. Heck, users may also want
> > > > separate slack values on those.
> > > >
> > > > Timerfd is the only thing we have right now that is anywhere near
> > > > flexible enough. Obviously if epoll became fancy enough, then we
> > > > could do away with the timerfd entirely here.
> > > >
> > > > >
> > > > >>
> > > > >> >
> > > > >> >>
> > > > >> >> Would this make sense? It could look like:
> > > > >> >>
> > > > >> >> int epoll_mod_and_pwait(int epfd,
> > > > >> >> struct epoll_event *events, int maxevents,
> > > > >> >> struct epoll_command *commands, int ncommands,
> > > > >> >> const sigset_t *sigmask);
> > > > >> >
> > > > >> > What about flags?
> > > > >> >
> > > > >>
> > > > >> No room. Maybe it should just be a struct for everything instead of
> > > > >> separate args.
> > > > >
> > > > > Also no room for timeout. A single struct sounds the only way to go.
> > > >
> > > > That's what timerfd is for. I think it would be a bit weird to
> > > > support "timeout" and detailed timerfd control.
> > >
> > > I see what you mean. Thanks.
> > >
> > > I still don't like hooking timerfd in the interface. Besides the unclean
> > > interface, it also feels cubersome and overkill to let users setup and add a
> > > dedicated timerfd to implement timeout.
> > >
> > > How about this:
> > >
> > > int epoll_mod_wait(int epfd, struct epoll_mod_wait_data *data);
> > >
> > > struct epoll_mod_wait_data {
> > > struct epoll_event *events;
> > > int maxevents;
> > > struct epoll_mod_cmd {
> > > int op,
> > > int fd;
> > > void *data;
> > > } *cmds;
> > > int ncmds;
> > > int flags;
> > > sigset_t *sigmask;
> > > };
> > >
> > > Commands ops are:
> > >
> > > EPOLL_CTL_ADD
> > > @fd is the fd to modify; @data is epoll_event.
> > > EPOLL_CTL_MOD
> > > @fd is the fd to modify; @data is epoll_event.
> > > EPOLL_CTL_DEL
> > > @fd is the fd to modify; @data is epoll_event.
> > >
> > > EPOLL_CTL_SET_TIMEOUT
> > > @fd is ignored, @data is timespec.
> > > Clock type and relative/absolute are selected by flags as below.
> > >
> > > Flags are given to override timeout defaults:
> > > EPOLL_FL_MONOTONIC_CLOCK
> > > If set, don't use realtime clock, use monotonic clock.
> > > EPOLL_FL_ABSOLUTE_TIMEOUT
> > > If set, don't use relative timeout, use absolute timeout.
> >
> > I'd suggest using an "int clockid" field instead, like timerfd_settime;
> > even if it only accepts CLOCK_REALTIME and CLOCK_MONOTONIC, if it needs
> > extending in the future, it'd be painful to have to remap new CLOCK_*
> > constants into the EPOLL_FL_* namespace. (I do think dropping timeouts
> > in favor of timerfds makes things more nicely orthogonal, but epoll_wait
> > already has a timeout parameter, so *shrug*.)
> >
> > Also, I think that structure has too many levels of indirection; it'd
> > produce many unnecessary cache misses; considering you're trying to
> > eliminate the overhead of one or two extra syscalls, you don't want to
> > introduce a pile of unnecessary cache misses in the processes. I'd
> > suggest inlining cmds as an array at the end of the structure, and
> > turning "void *data" into an inline epoll_event. (Or, you could use
> > "events" as an in/out parameter.)
> >
> > You could drop EPOLL_CTL_SET_TIMEOUT, and just include a clockid and
> > timespec directly in the top-level structure.
> >
> > And I'd suggest either making flags a top-level parameter or putting it
> > at the start of the structure, to make future extension easier.
>
> Makes sense to me, thanks.
>
> Also the number of cmds are undecided until we do a copy_from_user for the
> header fields before another one for specified number of cmds. So I think it's
> better to move ncmds and cmds to top level parameter.
That seems like an even better idea, yeah.
- Josh Triplett
WARNING: multiple messages have this Message-ID (diff)
From: Josh Triplett <josh@joshtriplett.org>
To: Fam Zheng <famz@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
Miklos Szeredi <mszeredi@suse.cz>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
X86 ML <x86@kernel.org>, Alexander Viro <viro@zeniv.linux.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Juri Lelli <juri.lelli@gmail.com>, Zach Brown <zab@zabbo.net>,
David Drysdale <drysdale@google.com>,
Kees Cook <keescook@chromium.org>,
Alexei Starovoitov <ast@plumgrid.com>,
David Herrmann <dh.herrmann@gmail.com>,
Dario Faggioli <raistlin@linux.it>, Theodore Ts'o <tytso@mit.edu>,
Peter Zijlstra <peterz@infradead.org>,
Vivek Goyal <vgoyal@redhat.com>,
Mike Frysinger <vapier@gentoo.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Oleg Nesterov <oleg@redhat.com>,
Mathieu Desn
Subject: Re: [PATCH 0/3] epoll: Add epoll_pwait1 syscall
Date: Mon, 12 Jan 2015 02:08:37 -0800 [thread overview]
Message-ID: <20150112100836.GA13150@thin> (raw)
In-Reply-To: <20150112082400.GA21123@fam-t430.nay.redhat.com>
On Mon, Jan 12, 2015 at 04:24:00PM +0800, Fam Zheng wrote:
> On Thu, 01/08 21:21, Josh Triplett wrote:
> > On Fri, Jan 09, 2015 at 12:49:08PM +0800, Fam Zheng wrote:
> > > On Thu, 01/08 18:24, Andy Lutomirski wrote:
> > > > On Thu, Jan 8, 2015 at 5:52 PM, Fam Zheng <famz@redhat.com> wrote:
> > > > > On Thu, 01/08 17:28, Andy Lutomirski wrote:
> > > > >> On Thu, Jan 8, 2015 at 5:25 PM, Fam Zheng <famz@redhat.com> wrote:
> > > > >> > On Thu, 01/08 09:57, Andy Lutomirski wrote:
> > > > >> >> I'd like to see a more ambitious change, since the timer isn't the
> > > > >> >> only problem like this. Specifically, I'd like a syscall that does a
> > > > >> >> list of epoll-related things and then waits. The list of things could
> > > > >> >> include, at least:
> > > > >> >>
> > > > >> >> - EPOLL_CTL_MOD actions: level-triggered epoll users are likely to
> > > > >> >> want to turn on and off their requests for events on a somewhat
> > > > >> >> regular basis.
> > > > >> >
> > > > >> > This sounds good to me.
> > > > >> >
> > > > >> >>
> > > > >> >> - timerfd_settime actions: this allows a single syscall to wait and
> > > > >> >> adjust *both* monotonic and real-time wakeups.
> > > > >> >
> > > > >> > I'm not sure, doesn't this break orthogonality between epoll and timerfd?
> > > > >>
> > > > >> Yes. It's not very elegant, and more elegant ideas are welcome.
> > > > >
> > > > > What is the purpose of embedding timerfd operation here? Modifying timerfd
> > > > > for each poll doesn't sound a common pattern to me.
> > > >
> > > > Setting a timeout is definitely a common pattern, hence this thread.
> > > > But the current timeout interface sucks, and people should really use
> > > > absolute time. (My epoll software uses absolute time.) But then
> > > > users need to decide whether to have their timeout based on the
> > > > monotonic clock or the realtime clock (or something else entirely).
> > > > Some bigger programs may want both -- they may have internal events
> > > > queued for certain times and for certain timeouts, and those should
> > > > use realtime and monotonic respectively. Heck, users may also want
> > > > separate slack values on those.
> > > >
> > > > Timerfd is the only thing we have right now that is anywhere near
> > > > flexible enough. Obviously if epoll became fancy enough, then we
> > > > could do away with the timerfd entirely here.
> > > >
> > > > >
> > > > >>
> > > > >> >
> > > > >> >>
> > > > >> >> Would this make sense? It could look like:
> > > > >> >>
> > > > >> >> int epoll_mod_and_pwait(int epfd,
> > > > >> >> struct epoll_event *events, int maxevents,
> > > > >> >> struct epoll_command *commands, int ncommands,
> > > > >> >> const sigset_t *sigmask);
> > > > >> >
> > > > >> > What about flags?
> > > > >> >
> > > > >>
> > > > >> No room. Maybe it should just be a struct for everything instead of
> > > > >> separate args.
> > > > >
> > > > > Also no room for timeout. A single struct sounds the only way to go.
> > > >
> > > > That's what timerfd is for. I think it would be a bit weird to
> > > > support "timeout" and detailed timerfd control.
> > >
> > > I see what you mean. Thanks.
> > >
> > > I still don't like hooking timerfd in the interface. Besides the unclean
> > > interface, it also feels cubersome and overkill to let users setup and add a
> > > dedicated timerfd to implement timeout.
> > >
> > > How about this:
> > >
> > > int epoll_mod_wait(int epfd, struct epoll_mod_wait_data *data);
> > >
> > > struct epoll_mod_wait_data {
> > > struct epoll_event *events;
> > > int maxevents;
> > > struct epoll_mod_cmd {
> > > int op,
> > > int fd;
> > > void *data;
> > > } *cmds;
> > > int ncmds;
> > > int flags;
> > > sigset_t *sigmask;
> > > };
> > >
> > > Commands ops are:
> > >
> > > EPOLL_CTL_ADD
> > > @fd is the fd to modify; @data is epoll_event.
> > > EPOLL_CTL_MOD
> > > @fd is the fd to modify; @data is epoll_event.
> > > EPOLL_CTL_DEL
> > > @fd is the fd to modify; @data is epoll_event.
> > >
> > > EPOLL_CTL_SET_TIMEOUT
> > > @fd is ignored, @data is timespec.
> > > Clock type and relative/absolute are selected by flags as below.
> > >
> > > Flags are given to override timeout defaults:
> > > EPOLL_FL_MONOTONIC_CLOCK
> > > If set, don't use realtime clock, use monotonic clock.
> > > EPOLL_FL_ABSOLUTE_TIMEOUT
> > > If set, don't use relative timeout, use absolute timeout.
> >
> > I'd suggest using an "int clockid" field instead, like timerfd_settime;
> > even if it only accepts CLOCK_REALTIME and CLOCK_MONOTONIC, if it needs
> > extending in the future, it'd be painful to have to remap new CLOCK_*
> > constants into the EPOLL_FL_* namespace. (I do think dropping timeouts
> > in favor of timerfds makes things more nicely orthogonal, but epoll_wait
> > already has a timeout parameter, so *shrug*.)
> >
> > Also, I think that structure has too many levels of indirection; it'd
> > produce many unnecessary cache misses; considering you're trying to
> > eliminate the overhead of one or two extra syscalls, you don't want to
> > introduce a pile of unnecessary cache misses in the processes. I'd
> > suggest inlining cmds as an array at the end of the structure, and
> > turning "void *data" into an inline epoll_event. (Or, you could use
> > "events" as an in/out parameter.)
> >
> > You could drop EPOLL_CTL_SET_TIMEOUT, and just include a clockid and
> > timespec directly in the top-level structure.
> >
> > And I'd suggest either making flags a top-level parameter or putting it
> > at the start of the structure, to make future extension easier.
>
> Makes sense to me, thanks.
>
> Also the number of cmds are undecided until we do a copy_from_user for the
> header fields before another one for specified number of cmds. So I think it's
> better to move ncmds and cmds to top level parameter.
That seems like an even better idea, yeah.
- Josh Triplett
WARNING: multiple messages have this Message-ID (diff)
From: Josh Triplett <josh@joshtriplett.org>
To: Fam Zheng <famz@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
Miklos Szeredi <mszeredi@suse.cz>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
X86 ML <x86@kernel.org>, Alexander Viro <viro@zeniv.linux.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Juri Lelli <juri.lelli@gmail.com>, Zach Brown <zab@zabbo.net>,
David Drysdale <drysdale@google.com>,
Kees Cook <keescook@chromium.org>,
Alexei Starovoitov <ast@plumgrid.com>,
David Herrmann <dh.herrmann@gmail.com>,
Dario Faggioli <raistlin@linux.it>,
"Theodore Ts'o" <tytso@mit.edu>,
Peter Zijlstra <peterz@infradead.org>,
Vivek Goyal <vgoyal@redhat.com>,
Mike Frysinger <vapier@gentoo.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Oleg Nesterov <oleg@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Fabian Frederick <fabf@skynet.be>,
"David S. Miller" <davem@davemloft.net>,
Linux FS Devel <linux-fsdevel@vger.kernel.org>,
Linux API <linux-api@vger.kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
"Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
Subject: Re: [PATCH 0/3] epoll: Add epoll_pwait1 syscall
Date: Mon, 12 Jan 2015 02:08:37 -0800 [thread overview]
Message-ID: <20150112100836.GA13150@thin> (raw)
In-Reply-To: <20150112082400.GA21123@fam-t430.nay.redhat.com>
On Mon, Jan 12, 2015 at 04:24:00PM +0800, Fam Zheng wrote:
> On Thu, 01/08 21:21, Josh Triplett wrote:
> > On Fri, Jan 09, 2015 at 12:49:08PM +0800, Fam Zheng wrote:
> > > On Thu, 01/08 18:24, Andy Lutomirski wrote:
> > > > On Thu, Jan 8, 2015 at 5:52 PM, Fam Zheng <famz@redhat.com> wrote:
> > > > > On Thu, 01/08 17:28, Andy Lutomirski wrote:
> > > > >> On Thu, Jan 8, 2015 at 5:25 PM, Fam Zheng <famz@redhat.com> wrote:
> > > > >> > On Thu, 01/08 09:57, Andy Lutomirski wrote:
> > > > >> >> I'd like to see a more ambitious change, since the timer isn't the
> > > > >> >> only problem like this. Specifically, I'd like a syscall that does a
> > > > >> >> list of epoll-related things and then waits. The list of things could
> > > > >> >> include, at least:
> > > > >> >>
> > > > >> >> - EPOLL_CTL_MOD actions: level-triggered epoll users are likely to
> > > > >> >> want to turn on and off their requests for events on a somewhat
> > > > >> >> regular basis.
> > > > >> >
> > > > >> > This sounds good to me.
> > > > >> >
> > > > >> >>
> > > > >> >> - timerfd_settime actions: this allows a single syscall to wait and
> > > > >> >> adjust *both* monotonic and real-time wakeups.
> > > > >> >
> > > > >> > I'm not sure, doesn't this break orthogonality between epoll and timerfd?
> > > > >>
> > > > >> Yes. It's not very elegant, and more elegant ideas are welcome.
> > > > >
> > > > > What is the purpose of embedding timerfd operation here? Modifying timerfd
> > > > > for each poll doesn't sound a common pattern to me.
> > > >
> > > > Setting a timeout is definitely a common pattern, hence this thread.
> > > > But the current timeout interface sucks, and people should really use
> > > > absolute time. (My epoll software uses absolute time.) But then
> > > > users need to decide whether to have their timeout based on the
> > > > monotonic clock or the realtime clock (or something else entirely).
> > > > Some bigger programs may want both -- they may have internal events
> > > > queued for certain times and for certain timeouts, and those should
> > > > use realtime and monotonic respectively. Heck, users may also want
> > > > separate slack values on those.
> > > >
> > > > Timerfd is the only thing we have right now that is anywhere near
> > > > flexible enough. Obviously if epoll became fancy enough, then we
> > > > could do away with the timerfd entirely here.
> > > >
> > > > >
> > > > >>
> > > > >> >
> > > > >> >>
> > > > >> >> Would this make sense? It could look like:
> > > > >> >>
> > > > >> >> int epoll_mod_and_pwait(int epfd,
> > > > >> >> struct epoll_event *events, int maxevents,
> > > > >> >> struct epoll_command *commands, int ncommands,
> > > > >> >> const sigset_t *sigmask);
> > > > >> >
> > > > >> > What about flags?
> > > > >> >
> > > > >>
> > > > >> No room. Maybe it should just be a struct for everything instead of
> > > > >> separate args.
> > > > >
> > > > > Also no room for timeout. A single struct sounds the only way to go.
> > > >
> > > > That's what timerfd is for. I think it would be a bit weird to
> > > > support "timeout" and detailed timerfd control.
> > >
> > > I see what you mean. Thanks.
> > >
> > > I still don't like hooking timerfd in the interface. Besides the unclean
> > > interface, it also feels cubersome and overkill to let users setup and add a
> > > dedicated timerfd to implement timeout.
> > >
> > > How about this:
> > >
> > > int epoll_mod_wait(int epfd, struct epoll_mod_wait_data *data);
> > >
> > > struct epoll_mod_wait_data {
> > > struct epoll_event *events;
> > > int maxevents;
> > > struct epoll_mod_cmd {
> > > int op,
> > > int fd;
> > > void *data;
> > > } *cmds;
> > > int ncmds;
> > > int flags;
> > > sigset_t *sigmask;
> > > };
> > >
> > > Commands ops are:
> > >
> > > EPOLL_CTL_ADD
> > > @fd is the fd to modify; @data is epoll_event.
> > > EPOLL_CTL_MOD
> > > @fd is the fd to modify; @data is epoll_event.
> > > EPOLL_CTL_DEL
> > > @fd is the fd to modify; @data is epoll_event.
> > >
> > > EPOLL_CTL_SET_TIMEOUT
> > > @fd is ignored, @data is timespec.
> > > Clock type and relative/absolute are selected by flags as below.
> > >
> > > Flags are given to override timeout defaults:
> > > EPOLL_FL_MONOTONIC_CLOCK
> > > If set, don't use realtime clock, use monotonic clock.
> > > EPOLL_FL_ABSOLUTE_TIMEOUT
> > > If set, don't use relative timeout, use absolute timeout.
> >
> > I'd suggest using an "int clockid" field instead, like timerfd_settime;
> > even if it only accepts CLOCK_REALTIME and CLOCK_MONOTONIC, if it needs
> > extending in the future, it'd be painful to have to remap new CLOCK_*
> > constants into the EPOLL_FL_* namespace. (I do think dropping timeouts
> > in favor of timerfds makes things more nicely orthogonal, but epoll_wait
> > already has a timeout parameter, so *shrug*.)
> >
> > Also, I think that structure has too many levels of indirection; it'd
> > produce many unnecessary cache misses; considering you're trying to
> > eliminate the overhead of one or two extra syscalls, you don't want to
> > introduce a pile of unnecessary cache misses in the processes. I'd
> > suggest inlining cmds as an array at the end of the structure, and
> > turning "void *data" into an inline epoll_event. (Or, you could use
> > "events" as an in/out parameter.)
> >
> > You could drop EPOLL_CTL_SET_TIMEOUT, and just include a clockid and
> > timespec directly in the top-level structure.
> >
> > And I'd suggest either making flags a top-level parameter or putting it
> > at the start of the structure, to make future extension easier.
>
> Makes sense to me, thanks.
>
> Also the number of cmds are undecided until we do a copy_from_user for the
> header fields before another one for specified number of cmds. So I think it's
> better to move ncmds and cmds to top level parameter.
That seems like an even better idea, yeah.
- Josh Triplett
next prev parent reply other threads:[~2015-01-12 10:08 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1420705550-24245-1-git-send-email-famz@redhat.com>
2015-01-08 9:12 ` [PATCH 0/3] epoll: Add epoll_pwait1 syscall Miklos Szeredi
2015-01-08 9:12 ` Miklos Szeredi
2015-01-08 9:12 ` Miklos Szeredi
[not found] ` <1420708372.18399.15.camel-AlSwsSmVLrQ@public.gmane.org>
2015-01-08 11:07 ` Michael Kerrisk (man-pages)
2015-01-08 11:07 ` Michael Kerrisk (man-pages)
2015-01-08 11:07 ` Michael Kerrisk (man-pages)
2015-01-08 17:57 ` Andy Lutomirski
2015-01-08 17:57 ` Andy Lutomirski
[not found] ` <CALCETrVyPij1Zxwmw7p06UrZjoyYDXqEjmxyQ-KJ8Y7dx7mL3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-08 18:42 ` josh-iaAMLnmF4UmaiuxdJuQwMA
2015-01-08 18:42 ` josh
2015-01-08 18:42 ` josh-iaAMLnmF4UmaiuxdJuQwMA
2015-01-08 19:31 ` Alexei Starovoitov
2015-01-08 19:31 ` Alexei Starovoitov
2015-01-08 19:31 ` Alexei Starovoitov
2015-01-08 19:42 ` Andy Lutomirski
2015-01-08 19:42 ` Andy Lutomirski
2015-01-08 19:42 ` Andy Lutomirski
2015-01-09 1:25 ` Fam Zheng
2015-01-09 1:25 ` Fam Zheng
[not found] ` <20150109011608.GA2924-+wGkCoP0yD+sDdueE5tM26fLeoKvNuZc@public.gmane.org>
2015-01-09 1:28 ` Andy Lutomirski
2015-01-09 1:28 ` Andy Lutomirski
2015-01-09 1:52 ` Fam Zheng
2015-01-09 1:52 ` Fam Zheng
[not found] ` <20150109015248.GA5034-+wGkCoP0yD+sDdueE5tM26fLeoKvNuZc@public.gmane.org>
2015-01-09 2:24 ` Andy Lutomirski
2015-01-09 2:24 ` Andy Lutomirski
2015-01-09 4:49 ` Fam Zheng
2015-01-09 4:49 ` Fam Zheng
2015-01-09 5:21 ` Josh Triplett
2015-01-09 5:21 ` Josh Triplett
2015-01-09 5:21 ` Josh Triplett
2015-01-12 8:24 ` Fam Zheng
2015-01-12 8:24 ` Fam Zheng
2015-01-12 8:24 ` Fam Zheng
2015-01-12 10:08 ` Josh Triplett [this message]
2015-01-12 10:08 ` Josh Triplett
2015-01-12 10:08 ` Josh Triplett
2015-01-12 13:23 ` Fam Zheng
2015-01-12 13:23 ` Fam Zheng
2015-01-12 13:23 ` Fam Zheng
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=20150112100836.GA13150@thin \
--to=josh@joshtriplett.org \
--cc=akpm@linux-foundation.org \
--cc=ast@plumgrid.com \
--cc=dh.herrmann@gmail.com \
--cc=drysdale@google.com \
--cc=famz@redhat.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=juri.lelli@gmail.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=mszeredi@suse.cz \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=raistlin@linux.it \
--cc=tglx@linutronix.de \
--cc=tytso@mit.edu \
--cc=vapier@gentoo.org \
--cc=vgoyal@redhat.com \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
--cc=zab@zabbo.net \
/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.