Thread: [SSI-devel] SSI-1.9 on kernel-2.6.11
Brought to you by:
brucewalker,
rogertsang
From: Roger T. <rog...@gm...> - 2007-02-25 10:57:53
|
Hi, I'm pleased to announce that SSI-1.9 has been ported kernel-2.6.11 on my dev machine. So far running aok. Roger |
From: Roger T. <rog...@gm...> - 2007-02-25 21:38:31
|
You can find this SSI kernel at http://radian.org/~roger/OPENSSI-FC/kernel/2.6.11/ for testing. On 2/25/07, Roger Tsang <rog...@gm...> wrote: > Hi, > > I'm pleased to announce that SSI-1.9 has been ported kernel-2.6.11 on > my dev machine. So far running aok. > > Roger > |
From: John H. <john@Calva.COM> - 2007-02-26 12:28:39
|
Roger Tsang wrote: > Hi, > > I'm pleased to announce that SSI-1.9 has been ported kernel-2.6.11 on > my dev machine. So far running aok. > Yipeee! Could you outline the process for doing this? I'd love to spend some of my copious free time trying playing around with moving to more recent kernel versions. |
From: Roger T. <rog...@gm...> - 2007-02-27 12:27:59
|
Apply the patch-2.6.11.bz2 from kernel.org on top of linux-ssi, resolve conflicts, and update OpenSSI components. Then fix new bugs introducted in the patch. New issues in 2.6.11-ssi, if fixed will be in next linux-ssi src tarball: - ipvs sync daemon mostly in uninterruptible I/O causing loadavg > 1 on LVS cluster (fixed). - VPROC to be updated to new signal and task struct changes (believed to be fixed). - `onnode {other_node} bash` exits by itself too soon... still investigating looks like rmtfb but did not run into asserts. Most `onnode` that involves remote tty exits too soon. However `onnode {other_node_running_2.6.10-ssi} bash` works fine. Roger On 2/26/07, John Hughes <jo...@ca...> wrote: > Roger Tsang wrote: > > Hi, > > > > I'm pleased to announce that SSI-1.9 has been ported kernel-2.6.11 on > > my dev machine. So far running aok. > > > Yipeee! > > Could you outline the process for doing this? I'd love to spend some of > my copious free time trying playing around with moving to more recent > kernel versions. > > |
From: John H. <john@Calva.COM> - 2007-07-25 09:08:30
|
Roger Tsang wrote: > New issues in 2.6.11-ssi, if fixed will be in next linux-ssi src tarball: > > - `onnode {other_node} bash` exits by itself too soon... still > investigating looks like rmtfb but did not run into asserts. Most > `onnode` that involves remote tty exits too soon. However `onnode > {other_node_running_2.6.10-ssi} bash` works fine. Did you get this fixed? |
From: John H. <john@Calva.COM> - 2007-07-25 12:02:37
|
John Hughes wrote: > Roger Tsang wrote: > >> New issues in 2.6.11-ssi, if fixed will be in next linux-ssi src tarball: >> >> - `onnode {other_node} bash` exits by itself too soon... still >> investigating looks like rmtfb but did not run into asserts. Most >> `onnode` that involves remote tty exits too soon. However `onnode >> {other_node_running_2.6.10-ssi} bash` works fine. >> > Did you get this fixed? > Amusing, seems the problem is only the first I/O works: john@node1:~$ onnode 2 strace -o zz perl -e '$| = 1; print "one\n"; print "two\n"' one john@node1:~$ cat zz [...] write(1, "one\n", 4) = 4 write(1, "two\n", 4) = -1 EINVAL (Invalid argument) exit_group(0) = ? Problem happens for all writes to tty like devices. Aha - nothing to do with migration, just cross node device access: john@node1$ strace -e trace=write perl -e '$| = 1; print "one\n"; print "two\n"' >/dev/2/tty2 write(1, "one\n", 4) = 4 write(1, "two\n", 4) = -1 EINVAL (Invalid argument) |
From: Roger T. <rog...@gm...> - 2007-07-25 16:18:33
|
It's fixed. I think it is in the patch that was released soon after the tarball. Roger On 7/25/07, John Hughes <jo...@ca...> wrote: > John Hughes wrote: > > Roger Tsang wrote: > > > >> New issues in 2.6.11-ssi, if fixed will be in next linux-ssi src tarball: > >> > >> - `onnode {other_node} bash` exits by itself too soon... still > >> investigating looks like rmtfb but did not run into asserts. Most > >> `onnode` that involves remote tty exits too soon. However `onnode > >> {other_node_running_2.6.10-ssi} bash` works fine. > >> > > Did you get this fixed? > > > Amusing, seems the problem is only the first I/O works: > > john@node1:~$ onnode 2 strace -o zz perl -e '$| = 1; print "one\n"; print "two\n"' > one > john@node1:~$ cat zz > [...] > write(1, "one\n", 4) = 4 > write(1, "two\n", 4) = -1 EINVAL (Invalid argument) > exit_group(0) = ? > > Problem happens for all writes to tty like devices. > > Aha - nothing to do with migration, just cross node device access: > > john@node1$ strace -e trace=write perl -e '$| = 1; print "one\n"; print "two\n"' >/dev/2/tty2 > write(1, "one\n", 4) = 4 > write(1, "two\n", 4) = -1 EINVAL (Invalid argument) > > > > |
From: John H. <john@Calva.COM> - 2007-07-25 18:53:53
|
Roger Tsang wrote: > It's fixed. I think it is in the patch that was released soon after > the tarball. I don't think so - unless I made some kind of stupid error (not unheard of) I've got that patch applied. ... checking... AARGH! You're right - I seem to have dropped the patch on the floor. Sorry for wasting your time. |
From: Roger T. <rog...@gm...> - 2007-07-26 09:04:25
|
There's a bit more code changes since then. Here's what I have reviewed so far, but that is just against the files in CVS openssi/kernel tree. Since it also includes KDB, etc. I still have to clean up those in kernel.patches for 2.6.11. arch/i386/kernel/i386_ksyms.c | 2 arch/i386/kernel/process.c | 38 - arch/i386/kernel/ptrace.c | 157 ++++ arch/i386/kernel/signal.c | 44 - arch/i386/lib/usercopy.c | 4 arch/x86_64/ia32/ia32_aout.c | 17 cluster/Makefile | 4 cluster/arch/i386/vproc/rproc_arch.c | 2 cluster/ssi/cfs/cfs_chard.c | 16 cluster/ssi/cfs/cfs_mnthooks.c | 16 cluster/ssi/cfs/cfs_subr.c | 71 +- cluster/ssi/cfs/cfs_svc.c | 113 +++ cluster/ssi/cfs/cfsfh.c | 10 cluster/ssi/cfs/cfsproc.c | 207 +++++- cluster/ssi/cfs/cfstok.c | 45 + cluster/ssi/cfs/dir.c | 138 +++- cluster/ssi/cfs/file.c | 59 + cluster/ssi/cfs/inode.c | 52 + cluster/ssi/cfs/pagelist.c | 13 cluster/ssi/cfs/proc.c | 118 ++- cluster/ssi/cfs/read.c | 308 ++------- cluster/ssi/cfs/svrcfs.c | 81 ++ cluster/ssi/cfs/symlink.c | 5 cluster/ssi/cfs/vfs.c | 233 +++++-- cluster/ssi/cfs/write.c | 415 ++++--------- cluster/ssi/clreg/clreg_head.c | 6 cluster/ssi/ipc/namesvr_clnt.c | 7 cluster/ssi/ipc/namesvr_svr.c | 3 cluster/ssi/ipc/rmtunix.c | 49 + cluster/ssi/ipc/unixnm.c | 13 cluster/ssi/mosixll/freemem.c | 4 cluster/ssi/mosixll/info.c | 4 cluster/ssi/mosixll/kernel.c | 4 cluster/ssi/mosixll/service.c | 8 cluster/ssi/net/ipvs_svr.c | 15 cluster/ssi/util/fifonm.c | 8 cluster/ssi/util/rmtfb.c | 7 cluster/ssi/util/rmtsock.c | 46 + cluster/ssi/util/ssidev.c | 4 cluster/ssi/util/ssidev_ics.c | 2 cluster/ssi/util/ssipty.c | 2 cluster/ssi/vproc/as_xscribe.c | 18 cluster/ssi/vproc/dvp_ics.c | 3 cluster/ssi/vproc/dvp_move.c | 2 cluster/ssi/vproc/dvp_pvpops.c | 13 cluster/ssi/vproc/dvp_pvpsops.c | 2 cluster/ssi/vproc/dvp_vpops.c | 2 cluster/ssi/vproc/nsc_initproc.c | 17 cluster/ssi/vproc/reopen.c | 11 cluster/ssi/vproc/rproc_cli_pproc.c | 25 cluster/ssi/vproc/rproc_svr_pproc.c | 3 cluster/ssi/vproc/vp_debug.c | 3 drivers/block/Kconfig | 130 +++- drivers/char/n_tty.c | 10 drivers/char/pty.c | 10 drivers/char/tty_io.c | 96 +-- drivers/char/vt.c | 431 ++++++------- drivers/char/vt_ioctl.c | 2 fs/binfmt_aout.c | 23 fs/binfmt_elf.c | 127 ++- fs/binfmt_em86.c | 2 fs/binfmt_misc.c | 5 fs/binfmt_script.c | 2 fs/binfmt_som.c | 2 fs/block_dev.c | 5 fs/dcache.c | 103 +++ fs/devpts/inode.c | 3 fs/dquot.c | 209 +++--- fs/exec.c | 111 ++- fs/fat/dir.c | 251 ++++--- fs/fcntl.c | 34 - fs/fifo.c | 15 fs/file_table.c | 7 fs/fs-writeback.c | 125 ++- fs/inode.c | 188 ++++- fs/lockd/svc.c | 16 fs/locks.c | 18 fs/namei.c | 90 +- fs/namespace.c | 2 fs/nfs/file.c | 61 + fs/nfs/inode.c | 110 ++- fs/nfsd/export.c | 5 fs/nfsd/nfssvc.c | 2 fs/open.c | 33 - fs/pipe.c | 239 +++++-- fs/proc/array.c | 23 fs/proc/base.c | 288 ++++++--- fs/proc/inode.c | 1 fs/proc/proc_misc.c | 207 ++++-- fs/select.c | 1 fs/super.c | 8 include/asm-alpha/uaccess.h | 8 include/asm-i386/checksum.h | 16 include/asm-i386/desc.h | 9 include/asm-i386/uaccess.h | 8 include/cluster/gen/cfs.svc | 8 include/cluster/gen/rproc_platform.x | 21 include/cluster/ssi/cfs/cfs_clnt.h | 16 include/cluster/ssi/cfs/cfs_fs.h | 18 include/cluster/ssi/cfs/cfs_fs_i.h | 4 include/cluster/ssi/cfs/cfs_fs_sb.h | 2 include/cluster/ssi/cfs/cfs_xdr.h | 15 include/cluster/ssi/cfs/cfsd.h | 13 include/cluster/ssi/cfs/cfsfh.h | 5 include/cluster/ssi/cfs/cfstok.h | 4 include/linux/binfmts.h | 4 include/linux/capability.h | 4 include/linux/config.h | 24 include/linux/dcache.h | 25 include/linux/fs.h | 102 +-- include/linux/mm.h | 96 ++- include/linux/net.h | 4 include/linux/nfs_fs.h | 71 +- include/linux/pipe_fs_i.h | 29 include/linux/prctl.h | 1 include/linux/proc_fs.h | 5 include/linux/ptrace.h | 1 include/linux/sem.h | 1 include/linux/smp_lock.h | 14 include/linux/syscalls.h | 2 include/linux/tty.h | 2 init/do_mounts.c | 15 ipc/sem.c | 27 kernel/acct.c | 33 + kernel/capability.c | 69 +- kernel/exit.c | 96 +-- kernel/pid.c | 4 kernel/ptrace.c | 76 +- kernel/sched.c | 1032 ++++++++++++++++++++++---------- kernel/sys.c | 48 - kernel/sysctl.c | 148 ++++ kernel/timer.c | 123 +-- mm/memory.c | 1117 ++++++++++++++++++++++++----------- mm/mlock.c | 14 mm/mmap.c | 284 ++++++-- mm/rmap.c | 33 - mm/shmem.c | 12 mm/vmscan.c | 53 + net/ipv4/af_inet.c | 20 net/ipv4/ipvs/ip_vs_core.c | 45 - net/ipv4/ipvs/ip_vs_ctl.c | 41 + net/ipv4/ipvs/ip_vs_sched.c | 2 net/ipv6/af_inet6.c | 18 net/socket.c | 42 - net/sunrpc/svcsock.c | 6 net/unix/af_unix.c | 15 146 files changed, 6173 insertions(+), 3176 deletions(-) On 7/25/07, John Hughes <jo...@ca...> wrote: > Roger Tsang wrote: > > It's fixed. I think it is in the patch that was released soon after > > the tarball. > I don't think so - unless I made some kind of stupid error (not unheard > of) I've got that patch applied. > > ... checking... > > AARGH! You're right - I seem to have dropped the patch on the floor. > > Sorry for wasting your time. > > |
From: John H. <john@Calva.COM> - 2007-07-26 09:59:34
|
Roger Tsang wrote: > There's a bit more code changes since then. Here's what I have > reviewed so far, but that is just against the files in CVS > openssi/kernel tree. Since it also includes KDB, etc. I still have to > clean up those in kernel.patches for 2.6.11. > > arch/i386/kernel/i386_ksyms.c | 2 [...] > net/unix/af_unix.c | 15 > 146 files changed, 6173 insertions(+), 3176 deletions(-) Very interesting. By the way, my initial testing shows you've missed one of my little patches to the 2.6.10 kernel: Update of /cvsroot/ci-linux/ci/kernel/cluster/util In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv9787 Modified Files: Tag: OPENSSI-DEBIAN nsc_scalls.c Log Message: Make sure root filesystem module loaded; fixes bug 1654001 Index: nsc_scalls.c =================================================================== RCS file: /cvsroot/ci-linux/ci/kernel/cluster/util/nsc_scalls.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- nsc_scalls.c 6 Jun 2006 04:30:37 -0000 1.22 +++ nsc_scalls.c 9 Feb 2007 10:09:15 -0000 1.23 @@ -2260,9 +2260,13 @@ } char *root_fs = NULL; +struct file_system_type *root_fs_type = NULL; char *root_dev_name = NULL; struct block_device *root_bdev = NULL; +/* Why not in fs.h? */ +extern void put_filesystem(struct file_system_type *); + static long ssisys_cfs_setroot( caddr_t uaddrin, @@ -2275,6 +2279,7 @@ unsigned long dev_page; cfs_setroot_args_t inargs; int error = 0; + struct file_system_type* fstype; if (uaddrin_len <= 0 || uaddrin_len > sizeof(inargs) || @@ -2295,6 +2300,17 @@ goto out2; root_fs = (char *)type_page; + fstype = get_fs_type (root_fs); + + if (!fstype) { + error = -ENOENT; + goto out1; + } + + if (root_fs_type) put_filesystem (root_fs_type); + + root_fs_type = fstype; + root_dev_name = (char *)dev_page; if (root_dev_name && !memchr(root_dev_name, 0, PAGE_SIZE)) { @@ -2315,6 +2331,10 @@ free_page(type_page); if (error) { + if (root_fs_type) { + put_filesystem (root_fs_type); + root_fs_type = NULL; + } root_fs = NULL; root_dev_name = NULL; root_bdev = NULL; |
From: Roger T. <rog...@gm...> - 2007-07-26 16:16:04
|
It'll be in the real 1.9.3 release.. I updated my CI sandbox yesterday. Roger On 7/26/07, John Hughes <jo...@ca...> wrote: > Roger Tsang wrote: > > There's a bit more code changes since then. Here's what I have > > reviewed so far, but that is just against the files in CVS > > openssi/kernel tree. Since it also includes KDB, etc. I still have to > > clean up those in kernel.patches for 2.6.11. > > > > arch/i386/kernel/i386_ksyms.c | 2 > [...] > > net/unix/af_unix.c | 15 > > 146 files changed, 6173 insertions(+), 3176 deletions(-) > Very interesting. > > By the way, my initial testing shows you've missed one of my little > patches to the 2.6.10 kernel: > > Update of /cvsroot/ci-linux/ci/kernel/cluster/util > In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv9787 > > Modified Files: > Tag: OPENSSI-DEBIAN > nsc_scalls.c > Log Message: > Make sure root filesystem module loaded; fixes bug 1654001 > > Index: nsc_scalls.c > =================================================================== > RCS file: /cvsroot/ci-linux/ci/kernel/cluster/util/nsc_scalls.c,v > retrieving revision 1.22 > retrieving revision 1.23 > diff -u -d -r1.22 -r1.23 > --- nsc_scalls.c 6 Jun 2006 04:30:37 -0000 1.22 > +++ nsc_scalls.c 9 Feb 2007 10:09:15 -0000 1.23 > @@ -2260,9 +2260,13 @@ > } > > char *root_fs = NULL; > +struct file_system_type *root_fs_type = NULL; > char *root_dev_name = NULL; > struct block_device *root_bdev = NULL; > > +/* Why not in fs.h? */ > +extern void put_filesystem(struct file_system_type *); > + > static long > ssisys_cfs_setroot( > caddr_t uaddrin, > @@ -2275,6 +2279,7 @@ > unsigned long dev_page; > cfs_setroot_args_t inargs; > int error = 0; > + struct file_system_type* fstype; > > if (uaddrin_len <= 0 || > uaddrin_len > sizeof(inargs) || > @@ -2295,6 +2300,17 @@ > goto out2; > > root_fs = (char *)type_page; > + fstype = get_fs_type (root_fs); > + > + if (!fstype) { > + error = -ENOENT; > + goto out1; > + } > + > + if (root_fs_type) put_filesystem (root_fs_type); > + > + root_fs_type = fstype; > + > root_dev_name = (char *)dev_page; > > if (root_dev_name && !memchr(root_dev_name, 0, PAGE_SIZE)) { > @@ -2315,6 +2331,10 @@ > free_page(type_page); > > if (error) { > + if (root_fs_type) { > + put_filesystem (root_fs_type); > + root_fs_type = NULL; > + } > root_fs = NULL; > root_dev_name = NULL; > root_bdev = NULL; > > |