All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oren Laadan <orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
To: Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: Re: [RFC v14-rc2][PATCH 5/7] Infrastructure for work postponed to the end of checkpoint/restart
Date: Tue, 31 Mar 2009 12:00:10 -0400	[thread overview]
Message-ID: <49D23E0A.2030308@cs.columbia.edu> (raw)
In-Reply-To: <1238512639.8286.658.camel@nimitz>


Dave Hansen wrote:
> On Tue, 2009-03-31 at 01:32 -0400, Oren Laadan wrote:
>> Add a interface to postpone an action until the end of the entire
>> checkpoint or restart operation. This is useful when during the
>> scan of tasks an operation cannot be performed in place, to avoid
>> the need for a second scan.
> 
> Why aren't we using the existing kernel workqueue mechanism?

Because we need to defer to work until the end of the operation:
not earlier, because it we defer it for a reason; not later, because
we will block waiting for it.

The kernel's workqueue schedules the work for 'some time later'.
It may be in particular too early. Although unlikely, it can also
occur arbitrarily later, so finishing and cleaning up a checkpoint
or a restart will have to block on it.

Also, the kernel workqueue cannot make any assumptions about the task
context in which the work is performed. The restart many times builds
on running in the context of some specific restarting task.

Example: this patch assumes a single (common) ipc namespace, but that
is easy to change. To support more than one, we'll need to perform the
deferred ipc action in the context of the process that has that ipc_ns.
(this means that this mechanism will evolve to per-task.)

If we were to use that workqueue, we would probably need to create a
queue per c/r operation to allow efficient flush; recall that each
workqueue comes with its own thread(s). In general, the mechanism
is too heavy.

What we need is a simple way for the c/r operation as a whole, and
later a task in particular, to defer some action until later _in the
restart_ process (not arbitrarily).

I should have named it cr_deferwork, and wrote this ^^^ in the patch.

Oren.

  reply	other threads:[~2009-03-31 16:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-31  5:32 [PATCH 00/07] sysv SHM checkpoint/restart Oren Laadan
     [not found] ` <1238477552-17083-1-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 1/7] ipc: allow allocation of an ipc object with desired identifier Oren Laadan
     [not found]     ` <1238477552-17083-2-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-04-02 17:22       ` Serge E. Hallyn
     [not found]         ` <20090402172233.GB9984-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-04-02 22:26           ` Oren Laadan
     [not found]             ` <49D53BB1.7000501-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-04-02 22:49               ` Serge E. Hallyn
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 2/7] ipc: helpers to save and restore kern_ipc_perm structures Oren Laadan
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 3/7] sysvipc-shm: checkpoint Oren Laadan
     [not found]     ` <1238477552-17083-4-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-03-31 20:06       ` Serge E. Hallyn
     [not found]         ` <20090331200658.GA19038-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-03-31 20:52           ` Oren Laadan
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 4/7] sysvipc-shm: restart Oren Laadan
     [not found]     ` <1238477552-17083-5-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-04-03  3:42       ` Matt Helsley
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 5/7] Infrastructure for work postponed to the end of checkpoint/restart Oren Laadan
     [not found]     ` <1238477552-17083-6-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-03-31 15:17       ` Dave Hansen
2009-03-31 16:00         ` Oren Laadan [this message]
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 6/7] sysvipc-shm: export interface from ipc/shm.c to delete ipc shm Oren Laadan
     [not found]     ` <1238477552-17083-7-git-send-email-orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-04-03  3:32       ` Matt Helsley
     [not found]         ` <20090403033200.GG4083-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-04-06  0:18           ` Oren Laadan
2009-03-31  5:32   ` [RFC v14-rc2][PATCH 7/7] sysvipc-shm: correctly handle deleted (active) ipc shared memory Oren Laadan

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=49D23E0A.2030308@cs.columbia.edu \
    --to=orenl-eqauephvms7envbuuze7ea@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.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 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.