public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Jiri Kosina <jkosina@suse.cz>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
	Vojtech Pavlik <vojtech@suse.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Ingo Molnar <mingo@redhat.com>,
	Seth Jennings <sjenning@redhat.com>,
	linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: live patching design (was: Re: [PATCH 1/3] sched: add sched_task_call())
Date: Sun, 22 Feb 2015 11:17:37 +0100	[thread overview]
Message-ID: <20150222101737.GA24570@gmail.com> (raw)
In-Reply-To: <alpine.LNX.2.00.1502220945370.2357@pobox.suse.cz>


* Jiri Kosina <jkosina@suse.cz> wrote:

> On Sat, 21 Feb 2015, Ingo Molnar wrote:
> 
> > > Plus a lot of processes would see EINTR, causing more 
> > > havoc.
> > 
> > Parking threads safely in user mode does not require 
> > the propagation of syscall interruption to user-space.
> 
> BTW how exactly do you envision this will work? Do I 
> understand your proposal correctly that EINTR will be 
> "handled" somewhere in the "live patching special signal 
> handler" and then have the interrupted syscall restarted?

If you want to think about it in signal handling terms then 
it's a new automatic in-kernel handler, which does not 
actually return back to user-mode at all.

We can do it via the signals machinery (mainly to reuse all 
the existing signal_pending() code in various syscalls), or 
via new TIF flags like the user work machinery: the 
principle is the same: interrupt out of syscall functions 
into a central place and restart them, and return to 
user-space later on as if a single call had been performed.

This necessarily means some changes to syscalls, but not 
insurmountable ones - and checkpoint/restore support would 
want to have similar changes in any case so we can hit two 
birds with the same stone.

> Even without EINTR propagation to userspace, this would 
> make a lot of new syscall restarts that were not there 
> before, [...]

That's only a problem if you do system call restarts by 
restarting them via user-space system call restart handler 
- I'm not proposing that.

I'm suggesting a completely user-space transparent way to 
execute long lasting system calls in a smarter way. I.e. it 
would not be observable via strace either.

Thanks,

	Ingo

  reply	other threads:[~2015-02-22 10:17 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-16 18:52 [PATCH 0/3] prevent /proc/<pid>/stack garbage for running tasks Josh Poimboeuf
2015-02-16 18:52 ` [PATCH 1/3] sched: add sched_task_call() Josh Poimboeuf
2015-02-16 20:44   ` Peter Zijlstra
2015-02-16 22:05     ` Josh Poimboeuf
2015-02-17  9:24       ` Peter Zijlstra
2015-02-17 14:12         ` Josh Poimboeuf
2015-02-17 18:15           ` Peter Zijlstra
2015-02-17 21:25             ` Josh Poimboeuf
2015-02-18 15:21               ` Peter Zijlstra
2015-02-18 17:12                 ` Josh Poimboeuf
2015-02-19  0:20                   ` Peter Zijlstra
2015-02-19  4:17                     ` Josh Poimboeuf
2015-02-19 10:16                       ` Peter Zijlstra
2015-02-19 16:24                         ` Josh Poimboeuf
2015-02-19 16:33                           ` Vojtech Pavlik
2015-02-19 17:03                             ` Josh Poimboeuf
2015-02-19 17:08                               ` Jiri Kosina
2015-02-19 17:19                               ` Vojtech Pavlik
2015-02-19 17:32                                 ` Josh Poimboeuf
2015-02-19 17:48                                   ` Vojtech Pavlik
2015-02-19 20:40                                   ` Vojtech Pavlik
2015-02-19 21:42                                     ` Josh Poimboeuf
2015-02-20  7:46                                       ` Jiri Kosina
2015-02-20  8:49                                         ` Jiri Kosina
2015-02-20  9:50                                           ` Ingo Molnar
2015-02-20 10:02                                             ` Jiri Kosina
2015-02-20 10:44                                               ` live patching design (was: Re: [PATCH 1/3] sched: add sched_task_call()) Ingo Molnar
2015-02-20 10:58                                                 ` Jiri Kosina
2015-02-20 19:49                                                   ` Ingo Molnar
2015-02-20 21:46                                                     ` Vojtech Pavlik
2015-02-20 22:08                                                       ` Josh Poimboeuf
2015-02-21 18:30                                                         ` Ingo Molnar
2015-02-22  8:52                                                           ` Jiri Kosina
2015-02-22 10:17                                                             ` Ingo Molnar [this message]
2015-02-22 19:18                                                               ` Jiri Kosina
2015-02-23 12:43                                                           ` Jiri Kosina
2015-02-24 10:37                                                             ` Ingo Molnar
2015-02-21 18:18                                                       ` Ingo Molnar
2015-02-21 18:57                                                         ` Jiri Kosina
2015-02-21 19:16                                                           ` Ingo Molnar
2015-02-21 19:31                                                             ` Jiri Kosina
2015-02-21 19:48                                                               ` Ingo Molnar
2015-02-21 20:10                                                                 ` Jiri Kosina
2015-02-21 20:53                                                                   ` Jiri Kosina
2015-02-22  8:46                                                                   ` Ingo Molnar
2015-02-22  9:08                                                                     ` Jiri Kosina
2015-02-22  9:46                                                                     ` live kernel upgrades (was: live kernel patching design) Ingo Molnar
2015-02-22 10:34                                                                       ` Ingo Molnar
2015-02-22 10:48                                                                       ` Ingo Molnar
2015-02-22 19:13                                                                         ` Jiri Kosina
2015-02-22 23:01                                                                           ` Andrew Morton
2015-02-23  0:18                                                                             ` Dave Airlie
2015-02-23  0:44                                                                               ` Arjan van de Ven
2015-02-23  8:17                                                                                 ` Jiri Kosina
2015-02-23 10:42                                                                                   ` Richard Weinberger
2015-02-23 11:08                                                                                     ` Vojtech Pavlik
2015-02-23 11:50                                                                                 ` Pavel Machek
2015-02-24  9:16                                                                                 ` Ingo Molnar
2015-02-24 12:28                                                                                   ` Jiri Slaby
2015-03-05  0:51                                                                                     ` Ingo Molnar
2015-02-23  6:35                                                                             ` Vojtech Pavlik
2015-02-24  9:44                                                                               ` Ingo Molnar
2015-02-24 12:12                                                                                 ` Vojtech Pavlik
2015-02-24 10:53                                                                           ` Ingo Molnar
2015-02-24 12:19                                                                             ` Vojtech Pavlik
2015-02-22 14:37                                                                       ` Josh Poimboeuf
2015-02-22 16:40                                                                         ` Josh Poimboeuf
2015-02-22 19:03                                                                           ` Jiri Kosina
2015-02-24 10:23                                                                         ` Ingo Molnar
2015-02-24 11:10                                                                           ` Petr Mladek
2015-02-24 12:36                                                                           ` Vojtech Pavlik
2015-02-23 11:39                                                                       ` Pavel Machek
2015-02-24 10:25                                                                         ` Ingo Molnar
2015-02-24 12:11                                                                       ` Jiri Slaby
2015-02-24 13:18                                                                         ` live kernel upgrades Pavel Emelyanov
2015-02-20 16:12                                             ` [PATCH 1/3] sched: add sched_task_call() Josh Poimboeuf
2015-02-20 20:08                                               ` Ingo Molnar
2015-02-20 21:22                                                 ` Josh Poimboeuf
2015-02-20 17:05                                           ` Josh Poimboeuf
2015-02-19 21:26                                   ` Jiri Kosina
2015-02-19 21:38                                     ` Jiri Kosina
2015-02-19 23:11                                     ` Josh Poimboeuf
2015-02-16 18:52 ` [PATCH 2/3] stacktrace: add save_stack_trace_tsk_safe() Josh Poimboeuf
2015-02-18  0:13   ` Andrew Morton
2015-02-20  9:32     ` Jiri Kosina
2015-02-16 18:52 ` [PATCH 3/3] proc: fix /proc/<pid>/stack for running tasks Josh Poimboeuf

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=20150222101737.GA24570@gmail.com \
    --to=mingo@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=jkosina@suse.cz \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=sjenning@redhat.com \
    --cc=torvalds@linux-foundation.org \
    --cc=vojtech@suse.com \
    /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