Inclusion of (large parts of) the vserver extension into the core?

From: Stephen R. van den Berg
Date: Wed Sep 24 2008 - 07:23:29 EST


Pardon me if this has been discussed to death already, feel free to
point me to the proper archives.

However, I'm willing to do a bit of legwork to get the vserver patches
(most, if not all) into mainstream Linux.

The project exists since october 2001, and it has matured quite a bit
since then.
Is there any reason why some or all of the changes cannot be included
into mainstream Linux?
What would be the most painless method to get part of (or all) of the
vserver patches included into the kernel proper?

For reference, the project can be found at: http://linux-vserver.org/
The most recent patches can be found at:
http://vserver.13thfloor.at/Experimental/

Summarised, the most recent patch looks like (if so desired I could post
the whole patch here):

commit 5dc8f663e6cd481077cc1079297500779ec91916
Date: Mon Sep 22 21:27:05 2008 +0200

vserver 2.3.0.35.6pre

Documentation/vserver/debug.txt | 154 ++++
Makefile | 2 +-
arch/alpha/Kconfig | 2 +
arch/alpha/kernel/entry.S | 23 +-
arch/alpha/kernel/osf_sys.c | 2 +-
arch/alpha/kernel/ptrace.c | 1 +
arch/alpha/kernel/systbls.S | 2 +-
arch/alpha/kernel/traps.c | 3 +-
arch/alpha/mm/fault.c | 4 +-
arch/arm/Kconfig | 2 +
arch/arm/kernel/calls.S | 2 +-
arch/arm/kernel/process.c | 3 +-
arch/arm/kernel/traps.c | 4 +-
arch/arm/mm/fault.c | 3 +-
arch/cris/Kconfig | 2 +
arch/frv/kernel/kernel_thread.S | 2 +-
arch/h8300/Kconfig | 2 +
arch/ia64/Kconfig | 2 +
arch/ia64/ia32/ia32_entry.S | 2 +-
arch/ia64/ia32/sys_ia32.c | 2 +-
arch/ia64/kernel/entry.S | 2 +-
arch/ia64/kernel/perfmon.c | 3 +-
arch/ia64/kernel/process.c | 4 +-
arch/ia64/kernel/ptrace.c | 1 +
arch/ia64/kernel/traps.c | 10 +-
arch/ia64/mm/fault.c | 1 +
arch/m32r/kernel/traps.c | 5 +-
arch/m68k/Kconfig | 2 +
arch/m68k/kernel/ptrace.c | 3 +
arch/m68k/kernel/traps.c | 4 +-
arch/m68knommu/Kconfig | 2 +
arch/m68knommu/kernel/traps.c | 5 +-
arch/mips/Kconfig | 2 +
arch/mips/kernel/linux32.c | 2 +-
arch/mips/kernel/ptrace.c | 4 +
arch/mips/kernel/scall32-o32.S | 2 +-
arch/mips/kernel/scall64-64.S | 2 +-
arch/mips/kernel/scall64-n32.S | 2 +-
arch/mips/kernel/scall64-o32.S | 2 +-
arch/mips/kernel/traps.c | 7 +-
arch/mips/mm/fault.c | 3 +-
arch/parisc/Kconfig | 2 +
arch/parisc/kernel/sys_parisc32.c | 4 +-
arch/parisc/kernel/syscall_table.S | 2 +-
arch/parisc/kernel/traps.c | 9 +-
arch/parisc/mm/fault.c | 8 +-
arch/powerpc/Kconfig | 2 +
arch/powerpc/kernel/irq.c | 1 +
arch/powerpc/kernel/process.c | 5 +-
arch/powerpc/kernel/sys_ppc32.c | 2 +-
arch/powerpc/kernel/traps.c | 5 +-
arch/powerpc/kernel/vdso.c | 1 +
arch/powerpc/mm/fault.c | 3 +-
arch/s390/Kconfig | 2 +
arch/s390/kernel/compat_linux.c | 2 +-
arch/s390/kernel/ptrace.c | 1 +
arch/s390/kernel/syscalls.S | 2 +-
arch/s390/mm/fault.c | 3 +-
arch/sh/Kconfig | 2 +
arch/sh/kernel/irq.c | 1 +
arch/sh/kernel/vsyscall/vsyscall.c | 1 +
arch/sparc/Kconfig | 2 +
arch/sparc/kernel/ptrace.c | 1 +
arch/sparc/kernel/systbls.S | 2 +-
arch/sparc/kernel/traps.c | 3 +-
arch/sparc/mm/fault.c | 3 +-
arch/sparc64/Kconfig | 2 +
arch/sparc64/kernel/ptrace.c | 1 +
arch/sparc64/kernel/sys_sparc32.c | 2 +-
arch/sparc64/kernel/systbls.S | 4 +-
arch/sparc64/kernel/traps.c | 3 +-
arch/sparc64/mm/fault.c | 3 +-
arch/um/Kconfig | 2 +
arch/um/kernel/trap.c | 3 +-
arch/x86/Kconfig | 2 +
arch/x86/ia32/ia32entry.S | 2 +-
arch/x86/kernel/syscall_table_32.S | 2 +-
drivers/block/Kconfig | 7 +
drivers/block/Makefile | 1 +
drivers/block/loop.c | 11 +-
drivers/block/vroot.c | 283 ++++++
drivers/char/sysrq.c | 24 +-
drivers/char/tty_io.c | 2 +
drivers/infiniband/hw/ipath/ipath_user_pages.c | 10 +-
drivers/md/dm-ioctl.c | 23 +-
drivers/md/dm.c | 25 +-
drivers/md/dm.h | 2 +
drivers/net/tun.c | 20 +-
fs/attr.c | 29 +-
fs/binfmt_aout.c | 1 +
fs/binfmt_elf.c | 1 +
fs/binfmt_flat.c | 1 +
fs/binfmt_som.c | 1 +
fs/block_dev.c | 9 +-
fs/char_dev.c | 11 +-
fs/dcache.c | 10 +
fs/devpts/inode.c | 44 +-
fs/exec.c | 6 +-
fs/ext2/balloc.c | 14 +-
fs/ext2/ext2.h | 1 +
fs/ext2/file.c | 1 +
fs/ext2/ialloc.c | 14 +-
fs/ext2/inode.c | 76 ++-
fs/ext2/ioctl.c | 10 +-
fs/ext2/namei.c | 4 +
fs/ext2/super.c | 29 +-
fs/ext2/symlink.c | 2 +
fs/ext2/xattr.c | 7 +
fs/ext3/balloc.c | 45 +-
fs/ext3/file.c | 1 +
fs/ext3/ialloc.c | 15 +-
fs/ext3/inode.c | 102 ++-
fs/ext3/ioctl.c | 11 +-
fs/ext3/namei.c | 4 +
fs/ext3/super.c | 29 +-
fs/ext3/symlink.c | 2 +
fs/ext3/xattr.c | 9 +-
fs/ext4/balloc.c | 12 +-
fs/ext4/ext4.h | 6 +
fs/ext4/file.c | 1 +
fs/ext4/ialloc.c | 15 +-
fs/ext4/inode.c | 103 ++-
fs/ext4/ioctl.c | 11 +-
fs/ext4/namei.c | 4 +
fs/ext4/super.c | 28 +
fs/ext4/symlink.c | 2 +
fs/ext4/xattr.c | 9 +-
fs/fcntl.c | 10 +-
fs/file.c | 3 +
fs/file_table.c | 8 +
fs/hfsplus/ioctl.c | 1 +
fs/inode.c | 8 +
fs/ioctl.c | 3 +
fs/ioprio.c | 5 +
fs/jfs/acl.c | 3 +-
fs/jfs/file.c | 1 +
fs/jfs/inode.c | 2 +
fs/jfs/ioctl.c | 10 +-
fs/jfs/jfs_dinode.h | 8 +-
fs/jfs/jfs_dtree.c | 41 +-
fs/jfs/jfs_extent.c | 19 +
fs/jfs/jfs_filsys.h | 1 +
fs/jfs/jfs_imap.c | 25 +-
fs/jfs/jfs_inode.c | 51 +-
fs/jfs/jfs_inode.h | 1 +
fs/jfs/jfs_xtree.c | 26 +
fs/jfs/namei.c | 3 +
fs/jfs/super.c | 31 +-
fs/jfs/xattr.c | 24 +-
fs/libfs.c | 18 +-
fs/locks.c | 50 +-
fs/namei.c | 318 +++++++-
fs/namespace.c | 119 +++-
fs/nfs/client.c | 7 +
fs/nfs/dir.c | 2 +
fs/nfs/inode.c | 38 +-
fs/nfs/nfs3xdr.c | 28 +-
fs/nfs/nfsroot.c | 21 +-
fs/nfs/super.c | 2 +
fs/nfsd/auth.c | 11 +-
fs/nfsd/nfs3xdr.c | 18 +-
fs/nfsd/nfs4xdr.c | 9 +-
fs/nfsd/nfsxdr.c | 16 +-
fs/ocfs2/dlm/dlmfs.c | 3 +
fs/ocfs2/dlmglue.c | 2 +
fs/ocfs2/dlmglue.h | 3 +-
fs/ocfs2/file.c | 5 +-
fs/ocfs2/inode.c | 104 ++-
fs/ocfs2/inode.h | 1 +
fs/ocfs2/ioctl.c | 7 +-
fs/ocfs2/ioctl.h | 3 +
fs/ocfs2/namei.c | 17 +-
fs/ocfs2/ocfs2.h | 1 +
fs/ocfs2/ocfs2_fs.h | 29 +-
fs/ocfs2/super.c | 28 +
fs/open.c | 40 +-
fs/proc/array.c | 75 ++-
fs/proc/base.c | 29 +-
fs/proc/generic.c | 12 +-
fs/proc/inode.c | 2 +
fs/proc/internal.h | 11 +-
fs/proc/proc_misc.c | 31 +-
fs/proc/root.c | 5 +
fs/quota.c | 65 ++-
fs/reiserfs/bitmap.c | 42 +-
fs/reiserfs/file.c | 1 +
fs/reiserfs/inode.c | 91 ++-
fs/reiserfs/ioctl.c | 12 +-
fs/reiserfs/namei.c | 6 +
fs/reiserfs/stree.c | 19 +-
fs/reiserfs/super.c | 18 +
fs/reiserfs/xattr.c | 1 +
fs/stat.c | 1 +
fs/super.c | 18 +-
fs/sysfs/mount.c | 4 +-
fs/utimes.c | 2 +
fs/xattr.c | 1 +
fs/xfs/linux-2.6/xfs_ioctl.c | 45 +-
fs/xfs/linux-2.6/xfs_iops.c | 69 ++
fs/xfs/linux-2.6/xfs_linux.h | 1 +
fs/xfs/linux-2.6/xfs_super.c | 30 +
fs/xfs/quota/xfs_qm_syscalls.c | 9 +-
fs/xfs/xfs_clnt.h | 1 +
fs/xfs/xfs_dinode.h | 17 +-
fs/xfs/xfs_fs.h | 6 +-
fs/xfs/xfs_ialloc.c | 2 +
fs/xfs/xfs_inode.c | 60 +-
fs/xfs/xfs_inode.h | 8 +-
fs/xfs/xfs_itable.c | 1 +
fs/xfs/xfs_log_recover.c | 3 +-
fs/xfs/xfs_mount.h | 1 +
fs/xfs/xfs_vnodeops.c | 7 +
include/asm-generic/tlb.h | 1 +
include/asm-x86/unistd_64.h | 2 +-
include/linux/Kbuild | 3 +
include/linux/capability.h | 9 +-
include/linux/devpts_fs.h | 1 -
include/linux/ext2_fs.h | 8 +-
include/linux/ext3_fs.h | 13 +-
include/linux/fs.h | 53 +-
include/linux/if_tun.h | 1 +
include/linux/init_task.h | 4 +
include/linux/interrupt.h | 2 +-
include/linux/ipc.h | 1 +
include/linux/loop.h | 1 +
include/linux/magic.h | 3 +-
include/linux/major.h | 1 +
include/linux/mm_types.h | 1 +
include/linux/mount.h | 5 +
include/linux/net.h | 1 +
include/linux/nfs_mount.h | 3 +-
include/linux/nsproxy.h | 24 +-
include/linux/pid.h | 4 +-
include/linux/proc_fs.h | 8 +
include/linux/reiserfs_fs.h | 9 +
include/linux/reiserfs_fs_sb.h | 1 +
include/linux/sched.h | 41 +-
include/linux/shmem_fs.h | 3 +
include/linux/stat.h | 1 +
include/linux/sunrpc/auth.h | 1 +
include/linux/sunrpc/clnt.h | 3 +-
include/linux/syscalls.h | 2 +
include/linux/sysctl.h | 2 +
include/linux/sysfs.h | 2 +
include/linux/time.h | 3 +
include/linux/types.h | 3 +
include/linux/vroot.h | 51 ++
include/linux/vs_base.h | 10 +
include/linux/vs_context.h | 227 +++++
include/linux/vs_cowbl.h | 47 +
include/linux/vs_cvirt.h | 50 ++
include/linux/vs_device.h | 45 +
include/linux/vs_dlimit.h | 211 +++++
include/linux/vs_inet.h | 342 ++++++++
include/linux/vs_inet6.h | 229 +++++
include/linux/vs_limit.h | 140 +++
include/linux/vs_memory.h | 159 ++++
include/linux/vs_network.h | 169 ++++
include/linux/vs_pid.h | 95 ++
include/linux/vs_sched.h | 110 +++
include/linux/vs_socket.h | 67 ++
include/linux/vs_tag.h | 43 +
include/linux/vs_time.h | 19 +
include/linux/vserver/Kbuild | 8 +
include/linux/vserver/base.h | 157 ++++
include/linux/vserver/cacct.h | 15 +
include/linux/vserver/cacct_cmd.h | 23 +
include/linux/vserver/cacct_def.h | 43 +
include/linux/vserver/cacct_int.h | 21 +
include/linux/vserver/check.h | 89 ++
include/linux/vserver/context.h | 176 ++++
include/linux/vserver/context_cmd.h | 128 +++
include/linux/vserver/cvirt.h | 20 +
include/linux/vserver/cvirt_cmd.h | 53 ++
include/linux/vserver/cvirt_def.h | 80 ++
include/linux/vserver/debug.h | 127 +++
include/linux/vserver/debug_cmd.h | 58 ++
include/linux/vserver/device.h | 15 +
include/linux/vserver/device_cmd.h | 44 +
include/linux/vserver/device_def.h | 17 +
include/linux/vserver/dlimit.h | 54 ++
include/linux/vserver/dlimit_cmd.h | 74 ++
include/linux/vserver/global.h | 20 +
include/linux/vserver/history.h | 197 +++++
include/linux/vserver/inode.h | 38 +
include/linux/vserver/inode_cmd.h | 59 ++
include/linux/vserver/limit.h | 70 ++
include/linux/vserver/limit_cmd.h | 69 ++
include/linux/vserver/limit_def.h | 47 +
include/linux/vserver/limit_int.h | 198 +++++
include/linux/vserver/monitor.h | 96 +++
include/linux/vserver/network.h | 146 ++++
include/linux/vserver/network_cmd.h | 150 ++++
include/linux/vserver/percpu.h | 14 +
include/linux/vserver/pid.h | 51 ++
include/linux/vserver/sched.h | 26 +
include/linux/vserver/sched_cmd.h | 108 +++
include/linux/vserver/sched_def.h | 68 ++
include/linux/vserver/signal.h | 14 +
include/linux/vserver/signal_cmd.h | 43 +
include/linux/vserver/space.h | 13 +
include/linux/vserver/space_cmd.h | 29 +
include/linux/vserver/switch.h | 100 +++
include/linux/vserver/tag.h | 143 ++++
include/linux/vserver/tag_cmd.h | 22 +
include/net/addrconf.h | 3 +-
include/net/af_unix.h | 1 +
include/net/inet_sock.h | 7 +-
include/net/inet_timewait_sock.h | 9 +-
include/net/route.h | 28 +-
include/net/sock.h | 8 +
init/main.c | 7 +-
ipc/mqueue.c | 15 +-
ipc/msg.c | 2 +
ipc/namespace.c | 4 +
ipc/sem.c | 6 +
ipc/shm.c | 15 +-
kernel/Makefile | 1 +
kernel/capability.c | 8 +
kernel/compat.c | 4 +-
kernel/exit.c | 12 +
kernel/fork.c | 55 ++-
kernel/kthread.c | 3 +-
kernel/nsproxy.c | 74 ++-
kernel/pid.c | 18 +-
kernel/pid_namespace.c | 3 +
kernel/posix-timers.c | 18 +-
kernel/printk.c | 30 +-
kernel/ptrace.c | 10 +
kernel/sched.c | 32 +-
kernel/sched_fair.c | 5 +
kernel/sched_hard.h | 324 +++++++
kernel/sched_mon.h | 200 +++++
kernel/signal.c | 35 +-
kernel/softirq.c | 1 +
kernel/sys.c | 22 +-
kernel/sysctl.c | 10 +
kernel/sysctl_check.c | 18 +
kernel/time.c | 9 +-
kernel/timer.c | 27 +-
kernel/user.c | 22 +-
kernel/user_namespace.c | 3 +
kernel/utsname.c | 3 +
kernel/vserver/Kconfig | 251 ++++++
kernel/vserver/Makefile | 18 +
kernel/vserver/cacct.c | 42 +
kernel/vserver/cacct_init.h | 25 +
kernel/vserver/cacct_proc.h | 53 ++
kernel/vserver/context.c | 1010 ++++++++++++++++++++++
kernel/vserver/cvirt.c | 301 +++++++
kernel/vserver/cvirt_init.h | 69 ++
kernel/vserver/cvirt_proc.h | 135 +++
kernel/vserver/debug.c | 32 +
kernel/vserver/device.c | 443 ++++++++++
kernel/vserver/dlimit.c | 522 ++++++++++++
kernel/vserver/helper.c | 199 +++++
kernel/vserver/history.c | 258 ++++++
kernel/vserver/inet.c | 225 +++++
kernel/vserver/init.c | 45 +
kernel/vserver/inode.c | 410 +++++++++
kernel/vserver/limit.c | 319 +++++++
kernel/vserver/limit_init.h | 31 +
kernel/vserver/limit_proc.h | 57 ++
kernel/vserver/monitor.c | 138 +++
kernel/vserver/network.c | 864 +++++++++++++++++++
kernel/vserver/proc.c | 1086 ++++++++++++++++++++++++
kernel/vserver/sched.c | 413 +++++++++
kernel/vserver/sched_init.h | 50 ++
kernel/vserver/sched_proc.h | 57 ++
kernel/vserver/signal.c | 132 +++
kernel/vserver/space.c | 372 ++++++++
kernel/vserver/switch.c | 537 ++++++++++++
kernel/vserver/sysctl.c | 244 ++++++
kernel/vserver/tag.c | 63 ++
kernel/vserver/vci_config.h | 81 ++
mm/filemap_xip.c | 1 +
mm/fremap.c | 1 +
mm/hugetlb.c | 1 +
mm/memory.c | 23 +-
mm/mlock.c | 14 +-
mm/mmap.c | 34 +-
mm/mremap.c | 12 +-
mm/nommu.c | 6 +-
mm/oom_kill.c | 19 +-
mm/page_alloc.c | 8 +
mm/rmap.c | 1 +
mm/shmem.c | 5 +-
mm/slab.c | 5 +
mm/slab_vs.h | 27 +
mm/swapfile.c | 4 +
net/core/dev.c | 6 +
net/core/rtnetlink.c | 5 +
net/core/sock.c | 24 +
net/ipv4/af_inet.c | 21 +-
net/ipv4/devinet.c | 15 +-
net/ipv4/fib_hash.c | 2 +-
net/ipv4/inet_connection_sock.c | 36 +-
net/ipv4/inet_diag.c | 24 +-
net/ipv4/inet_hashtables.c | 10 +-
net/ipv4/netfilter.c | 2 +-
net/ipv4/netfilter/nf_nat_helper.c | 1 +
net/ipv4/raw.c | 38 +-
net/ipv4/syncookies.c | 1 +
net/ipv4/tcp.c | 1 +
net/ipv4/tcp_ipv4.c | 43 +-
net/ipv4/tcp_minisocks.c | 9 +
net/ipv4/udp.c | 38 +-
net/ipv6/Kconfig | 4 +-
net/ipv6/addrconf.c | 49 +-
net/ipv6/af_inet6.c | 27 +-
net/ipv6/fib6_rules.c | 2 +-
net/ipv6/inet6_hashtables.c | 4 +
net/ipv6/ip6_output.c | 2 +-
net/ipv6/ndisc.c | 2 +-
net/ipv6/route.c | 3 +-
net/ipv6/tcp_ipv6.c | 12 +-
net/ipv6/udp.c | 5 +
net/ipv6/xfrm6_policy.c | 2 +-
net/netlink/af_netlink.c | 11 +-
net/sctp/ipv6.c | 3 +-
net/socket.c | 48 +-
net/sunrpc/auth.c | 3 +
net/sunrpc/auth_unix.c | 16 +-
net/sunrpc/clnt.c | 4 +
net/unix/af_unix.c | 9 +-
net/x25/af_x25.c | 5 +-
scripts/checksyscalls.sh | 1 -
security/commoncap.c | 23 +-
security/selinux/hooks.c | 1 -
429 files changed, 18083 insertions(+), 641 deletions(-)
--
Sincerely,
Stephen R. van den Berg.

"My name is Smith, the P is not pronounced."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/