[Devel] [cr][git]linux-cr branch, ckpt-v18-dev, updated. v2.6.31-121-g066f73a
orenl at cs.columbia.edu
orenl at cs.columbia.edu
Mon Oct 26 17:33:16 PDT 2009
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "linux-cr".
The branch, ckpt-v18-dev has been updated
via 066f73af9c55d4fa285f3065a9403a81d52228c8 (commit)
via ddc2e0182fd6a0a3c472511d70bf7ad53adc36bd (commit)
via 27c330128468149a9cf72bd2c357c64f10f3b708 (commit)
via 90c3bb2299d31ec2674ebc8b395b7e8e316f26e5 (commit)
via 782b028736703077eb5eb49275814ceb7ba8c207 (commit)
via 0b793d1e4e3cb68ef0640ab59db9b71dde5a9ac6 (commit)
via e57f0b4bb8daf82c15a99095ecf38cb7383fae08 (commit)
via cdcf6fb28deb49c1c6894ffcc69f3d6ba7143c45 (commit)
via 3e2a0222bd4fb4e2ec1832067fa0b0a34fee2508 (commit)
via eb0d0fcb9773e39196279d70aa6cd33175f6490d (commit)
via 0281537867abbff0b2fddd62945dd66df0a509ab (commit)
via c98f0ecec7bb88c6ead0a7ac6792c8c87ea9a015 (commit)
via de65dad23dd4f32df9c073c8261000e1c515b999 (commit)
via 8510e48fda09b2246f1dc028cf887a36be20db81 (commit)
via 47cd8119e3d861be46eb029d1c9b81c7684a2030 (commit)
from c61e759d910952d9457ccb109bf4e91514af087f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 066f73af9c55d4fa285f3065a9403a81d52228c8
Author: Matt Helsley <matthltc at us.ibm.com>
Date: Mon Oct 26 20:31:14 2009 -0400
[RFC] Checkpoint/restart eventfd
Save/restore eventfd files. These are anon_inodes just like epoll
but instead of a set of files to poll they are a 64-bit counter
and a flag value. Used for AIO.
[Oren Laadan] Added #ifdef's around checkpoint/restart to compile even
without CONFIG_CHECKPOINT
Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
Acked-by: Oren Laadan <orenl at cs.columbia.edu>
NOTE: Marked [RFC] because it strangely does not pass my adapted LTP
test cases unless it's running from a checkpointed image.
Seems to be a mistake in the test case adaptation.
commit ddc2e0182fd6a0a3c472511d70bf7ad53adc36bd
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Oct 26 20:30:58 2009 -0400
c/r: update documentation
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 27c330128468149a9cf72bd2c357c64f10f3b708
Author: Liu Aleaxander <aleaxander at gmail.com>
Date: Mon Oct 26 17:10:33 2009 -0400
Fix a typo in Documentation/checkpoint/readme.txt
Fix a typo in Documentation/checkpoint/readme.txt
Signed-off-by: Liu Aleaxander <Aleaxander at gmail.com>
commit 90c3bb2299d31ec2674ebc8b395b7e8e316f26e5
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Oct 26 17:10:32 2009 -0400
c/r: coordinator to report correct error on restart failure
If restart fails it is usually due to an error for a restoring task,
which is place in ctx->errno. Then the coordinator wakes up and sees
an -EINTR.
This patch changes the coordinator's behavior to report the error
value placed in ctx->errno (if an error occurred) rather than report
a confusing -EINTR.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
Signed-off-by: Serge Hallyn <serue at us.ibm.com>
commit 782b028736703077eb5eb49275814ceb7ba8c207
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Mon Oct 26 17:10:32 2009 -0400
c/r: do not hold mmap_sem while checkpointing vma's
This patch modifies the memory checkpoint code to _not_ hold the
mmap_sem while dumping out the vma's.
The problem with holding the mmap_sem is that it first takes the
mmap_sem and then takes the file's inode semaphore. This violates the
normal locking order, e,g, when taking a page fault during a copyout,
which is inode sem and then the mmap_sem.
Normally this reverse locking order won't cause a lockup because a the
output file for the checkpoint image isn't used by the checkpointee.
However, there a couple of cases where it may be a problem, e.g. when
some async-IO happens to complete and triggers a page fault at the
wrong time.
This fixes complaints from the lockdep about this reverse ordering.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit 0b793d1e4e3cb68ef0640ab59db9b71dde5a9ac6
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Oct 25 18:28:04 2009 -0400
c/r: ckpt_read_buf_type() to accept max payload (excludes ckpt_hdr)
ckpt_read_buf_type() is usually used to read an object originally
writeen using ckpt_write_obj_type() or derivatives. These accept a
buffer size, and a record write size+sizeof(ckpt_hdr) long.
This patch makes ckpt_read_buf_type() interpret the @max argument as
the max payload size (ckpt_hdr excluded).
Nice symmetry between checkpoint and restart - both use same size.
(Previously, using the same size was a bug, and this occurs in two
instances - reading a filename, and reading groupinfo).
Original report and patch by Matt Helsley <matthltc at us.ibm.com>.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit e57f0b4bb8daf82c15a99095ecf38cb7383fae08
Author: Oren Laadan <orenl at cs.columbia.edu>
Date: Sun Oct 25 18:28:03 2009 -0400
c/r: ensure null-termination of file names read from image
Don't rely on the checkpoint image to properly terminate the filename
(similar to ckpt_read_string).
Original report and patch by Matt Helsley <matthltc at us.ibm.com>.
Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
commit cdcf6fb28deb49c1c6894ffcc69f3d6ba7143c45
Author: Matt Helsley <matthltc at us.ibm.com>
Date: Sun Oct 25 18:28:03 2009 -0400
epoll: Add support for restoring many epoll items
This completes the work necessary to make checkpoint/restart of
thousands of epoll items more reliable when higher order kmallocs
would fail. We grab a piece of memory suitable to store a "chunk"
of items for input. Read the input one chunk at a time and add
epoll items for each item in the chunk.
Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
commit 3e2a0222bd4fb4e2ec1832067fa0b0a34fee2508
Author: Matt Helsley <matthltc at us.ibm.com>
Date: Fri Oct 23 20:35:31 2009 -0400
epoll: Add support for checkpointing large numbers of epoll items
Currently we allocate memory to output all of the epoll items in one
big chunk. At 20 bytes per item, and since epoll was designed to
support on the order of 10,000 items, we may find ourselves kmalloc'ing
200,000 bytes. That's an order 7 allocation whereas the heuristic for
difficult allocations, PAGE_ALLOC_COST_ORDER, is 3.
Instead, output the epoll header and items separately. Chunk the output
much like the pid array gets chunked. This ensures that even sub-order 0
allocations will enable checkpoint of large epoll sets. A subsequent
patch will do something similar for the restore path.
[Oren Laadan] Fix the chunk size instead of auto-tune
Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
Acked-by: Oren Laadan <orenl at cs.columbia.edu>
Acked-by: Serge Hallyn <serue at us.ibm.com>
commit eb0d0fcb9773e39196279d70aa6cd33175f6490d
Author: Matt Helsley <matthltc at us.ibm.com>
Date: Fri Oct 23 20:16:17 2009 -0400
Checkpoint/restart epoll sets
Save/restore epoll items during checkpoint/restart respectively.
kmalloc failures should be dealt with more kindly than just error-out
because epoll is made to poll many thousands of file descriptors.
Subsequent patches will change epoll c/r to "chunk" its output/input
respectively.
Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
Acked-by: Oren Laadan <orenl at cs.columbia.edu>
Acked-by: Serge Hallyn <serue at us.ibm.com>
Changelog:
[Oren Laadan] Return -EBUSY (not BUG_ON) if fd is gone on restart
v5:
Fix potential recursion during collect.
Replace call to ckpt_obj_collect() with ckpt_collect_file().
[Oren]
Fix checkpoint leak detection when there are more items than
expected.
Cleanup/simplify error write paths. (will complicate in a later
patch) [Oren]
Remove files_deferq bits. [Oren]
Remove extra newline. [Oren]
Remove aggregate check on number of watches added. [Oren]
This is OK since these will be done individually anyway.
Remove check for negative objrefs during restart. [Oren]
Fixup comment regarding race that indicates checkpoint leaks.
[Oren]
s/ckpt_read_obj/ckpt_read_buf_type/ [Oren]
Patch for lots of epoll items follows.
Moved sys_close(epfd) right under fget(). [Oren]
Use CKPT_HDR_BUFFER rather than custome ckpt_read/write_*
This makes it more similar to the pid array code. [Oren]
It also simplifies the error recovery paths.
Tested polling a pipe and 50,000 UNIX sockets.
v4: ckpt-v18
Use files_deferq as submitted by Dan Smith
Cleanup to only report >= 1 items when debugging.
v3: [unposted]
Removed most of the TODOs -- the remainder will be removed by
subsequent patches.
Fixed missing ep_file_collect() [Serge]
Rather than include checkpoint_hdr.h declare (but do not define)
the two structs needed in eventpoll.h [Oren]
Complain with ckpt_write_err() when we detect checkpoint obj
leaks. [Oren]
Remove redundant is_epoll_file() check in collect. [Oren]
Move epfile_objref lookup to simplify error handling. [Oren]
Simplify error handling with early return in
ep_eventpoll_checkpoint(). [Oren]
Cleaned up a comment. [Oren]
Shorten CKPT_HDR_FILE_EPOLL_ITEMS (-FILE) [Oren]
Renumbered to indicate that it follows the file table.
Renamed the epoll struct in checkpoint_hdr.h [Oren]
Also renamed substruct.
Fixup return of empty ep_file_restore(). [Oren]
Changed some error returns. [Oren]
Changed some tests to BUG_ON(). [Oren]
Factored out watch insert with epoll_ctl() into do_epoll_ctl().
[Cedric, Oren]
Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
commit 0281537867abbff0b2fddd62945dd66df0a509ab
Author: Serge E. Hallyn <serue at us.ibm.com>
Date: Fri Oct 23 14:55:14 2009 -0400
ipc_ind_to_str unused if !CONFIG_CHECKPOINT_DEBUG
(compilation cleanup on top of
fix-compile-with-CONFIG_CHECKPOINT_DEBUG-n.patch
)
Signed-off-by: Serge E. Hallyn <serue at us.ibm.com>
commit c98f0ecec7bb88c6ead0a7ac6792c8c87ea9a015
Author: Serge E. Hallyn <serue at us.ibm.com>
Date: Fri Oct 23 14:54:09 2009 -0400
fix compile with CONFIG_CHECKPOINT_DEBUG=n
On the one hand, compiling without checkpoing debug saves a
lot of kernel size:
with debug:
-rwxrwxr-x 1 hallyn hallyn 62391508 Oct 21 22:08 vmlinux
without debug:
-rwxrwxr-x 1 hallyn hallyn 62298077 Oct 21 22:33 vmlinux
OTOH the need for this patch just proves my point that we don't
want any more config options than we need (especially no
CONFIG_CHECKPOINT_LOGGING in addition to _DEBUG).
So that begs the question - is there something we can do to
avoid having to recompile the kernel to turn on debugging,
but not take up 100k of space in vmlinux? Maybe get rid of
the ckpt_debugs altogether and instead provide pre-written
kprobe sets to turn on debugging at specific places?
Signed-off-by: Serge E. Hallyn <serue at us.ibm.com>
commit de65dad23dd4f32df9c073c8261000e1c515b999
Author: Matt Helsley <matthltc at us.ibm.com>
Date: Fri Oct 23 14:45:13 2009 -0400
Fix total byte read/write count for large checkpoint images
Though currently unused, total relies on checkpoint images being less
than 2GB. Since we've had 64-bit archs and LARGEFILE support for some
time it's not totally unreasonable to make this a 64-bit quantity.
Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
commit 8510e48fda09b2246f1dc028cf887a36be20db81
Author: \"Serge E. Hallyn\ <serue at us.ibm.com>
Date: Fri Oct 23 14:24:08 2009 -0400
test_and_set_bit returns oldval
ckpt_set_ctx_error() was not setting ctx->errno when it should - it
apparently thought that test_and_set_bit(x,y) would return 1 if the
set_bit succeeded?
Fix ckpt_set_ctx_error() to set ctx->errno the first (and only the
first) time that CKPT_CTX_ERROR gets set in ctx->kflags.
Signed-off-by: Serge E. Hallyn <serue at us.ibm.com>
commit 47cd8119e3d861be46eb029d1c9b81c7684a2030
Author: Dan Smith <danms at us.ibm.com>
Date: Tue Oct 20 16:46:10 2009 -0400
Pass the stored sock->protocol into sock_create() on restore
This should be fine because the protocol sanity-checks the number to
make sure it's valid given the type specified.
Cc: John Dykstra <john.dykstra1 at gmail.com>
Cc: Oren Laadan <orenl at librato.com>
Signed-off-by: Dan Smith <danms at us.ibm.com>
-----------------------------------------------------------------------
Summary of changes:
Documentation/checkpoint/checkpoint.c | 9 +-
Documentation/checkpoint/checkpoint_self.c | 57 -----
Documentation/checkpoint/readme.txt | 2 +-
Documentation/checkpoint/restart_self.c | 20 --
Documentation/checkpoint/self_checkpoint.c | 69 ++++++
Documentation/checkpoint/self_restart.c | 40 ++++
Documentation/checkpoint/test.c | 48 ----
Documentation/checkpoint/usage.txt | 7 +-
checkpoint/files.c | 27 ++-
checkpoint/memory.c | 133 ++++++++----
checkpoint/restart.c | 46 +++-
fs/eventfd.c | 56 +++++
fs/eventpoll.c | 336 +++++++++++++++++++++++++---
include/linux/checkpoint_hdr.h | 26 +++
include/linux/checkpoint_types.h | 2 +-
include/linux/eventfd.h | 12 +
include/linux/eventpoll.h | 17 ++-
ipc/checkpoint.c | 2 +
net/checkpoint.c | 3 +-
19 files changed, 693 insertions(+), 219 deletions(-)
delete mode 100644 Documentation/checkpoint/checkpoint_self.c
delete mode 100644 Documentation/checkpoint/restart_self.c
create mode 100644 Documentation/checkpoint/self_checkpoint.c
create mode 100644 Documentation/checkpoint/self_restart.c
delete mode 100644 Documentation/checkpoint/test.c
hooks/post-receive
--
linux-cr
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list