[SSI] openssi ChangeLog,1.246,1.247

Roger Tsang <[email protected]> Fri, 05 Mar 2010 06:36:36 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv11326

Modified Files:
      Tag: OPENSSI-FC
	ChangeLog 
Log Message:
update


Index: ChangeLog
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/ChangeLog,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -d -r1.246 -r1.247
--- ChangeLog	2 Feb 2010 05:26:08 -0000	1.246
+++ ChangeLog	5 Mar 2010 06:36:34 -0000	1.247
@@ -1,5 +1,360 @@
 2010/??/??	*** Release of OpenSSI 2.0.0rc1 ***
 
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE21
+
+	* CFS (#ifdef SVRCFSTOK_SCT_IP_MACRO):
+	- Optimize away redundant. Remove pointer to struct inode in svrcfstok
+	  structure.
+
+	 cluster/ssi/cfs/cfsproc.c        |    2 ++
+	 cluster/ssi/cfs/svrcfs.c         |   29 +++++++++++++++++------------
+	 include/cluster/ssi/cfs/cfstok.h |    6 +++++-
+	 3 files changed, 24 insertions(+), 13 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE20
+
+	* IPC:
+	- Fix partially initialized shmid_kernel_svr.shm_perm structure.
+	- Fix ipc/sem.c:exit_sem() GCC warning: ISO C90 forbids mixed
+	  declarations and code.
+	- Split ssi_shm_setup() into separate functions
+	  ssi_shm_setup_client/new() to reduce stack usage in some paths.
+
+	* IPC (#ifdef IPC_SHM_RACE_FIX):
+	- Fix shm_svr_rmid() called without spinlock for the ID.
+	- Fix race deferencing invalid struct shmid_kernel, shmid_kernel_svr.
+	- Enable lockfree shmid_kernel_svr IPC id lookup. Use ipc_rcu_alloc and
+	  IPC reference counting.
+	- Reduce contention. Avoid the ipc_ids mutex. Use per IPC id spinlock.
+	- Fix cli_ipcname_findid() race with cli_ipcname_getid() could
+	  overwrite existing IPC segment.
+	- Fix non-critical section under shm_ids.sem lock in
+	  shm_create_cli_entry().
+	- Prevent re-acquire shm_ids.sem in shm_destroy() path. ripc_shm_rmid()
+	  no longer returns with shm_ids.sem unlocked.
+	- Remove contention in shmem_svr_lookup(); no longer acquire
+	  shm_ids_svr.sem.
+	- Fix do_shmat() possible hang calling dput() while holding spinlock.
+	- Fix cfs_shm_node_mnts[] race.
+	- Fix inode leak in ssi_shm_setup() error path when do_shm_register()
+	  fails.
+
+	* IPC (#ifdef IPC_SHM_LOCK_DEST_FIX):
+	- Fix [ ssic-linux-Bug 2838006 ] Corrupt SHM_LOCK_DEST flag.
+	- Refactor ipc_shm_nodedown() for SHM_LOCK_DEST flag. Use SHM_LOCK_DEST
+	  flag.
+	- Fix ripc_drop_locks() error path dereferencing NULL pointer in
+	  ipc_drop_locks().
+
+	* IPC (#ifdef CFS_IPCSHM_DENTRY):
+	- ssi_shm_setup_client() use d_instantiate_unique() to prevent
+	  duplicate entries.
+
+	 cluster/ssi/cfs/cfs_ipcshm.c     |  422 ++++++++++++++++++-----------
+	 cluster/ssi/cfs/cfsproc.c        |    6 
+	 cluster/ssi/ipc/ipcshm_svr.c     |  280 +++++++++++--------
+	 cluster/ssi/ipc/namesvr_func.c   |   12 
+	 cluster/ssi/vproc/reopen.c       |   30 +-
+	 include/cluster/ssi/cfs/cfs_fs.h |   16 +
+	 include/cluster/ssi/ipc/shm.h    |   13 
+	 include/linux/shm.h              |    7 
+	 ipc/msg.c                        |    6 
+	 ipc/sem.c                        |   17 -
+	 ipc/shm.c                        |  450 ++++++++++++++++++++-----------
+	 ipc/util.c                       |   18 -
+	 ipc/util.h                       |    5 
+	 mm/shmem.c                       |    9 
+	 14 files changed, 845 insertions(+), 446 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE19
+
+	* IPC:
+	- Fix uninitialized iodb_timestamp.
+	- Fix ssi_growary() can cause array bounds violation when value of
+	  iodb_size is increased beyond the static size of object table.
+	- Fix ipcname_failover_data() dereferencing invalid ipc_obj structure;
+	  objp pointer is uninitialized.
+	- Fix shmem_svr_lookup() ignored cli_ipcname_getid() error and looked
+	  up id 0.
+	- Fix shmem_svr_lookup() always creates obj with id 0.
+
+	* IPC (#ifdef SSI_IPC_OBJ_DB_LOCKLESS):
+	- Remove NSC_IPC_RD/WRLOCK() global object database mutex.
+	- Implement reference counting for ipc_obj structure.
+	- Implement lockless iodb_active[] traversal.
+	- Fix ipcname_failover_data() iodb_seq race with another objsvr_new()
+	  thread.
+	- Remove redundant objsvr_find_key() lookup's in ipcname_getid() path
+	  when objsvr_new() raced with another.
+
+	 cluster/ssi/cfs/cfs_ipcshm.c   |   15 -
+	 cluster/ssi/ipc/ipc.h          |   26 +
+	 cluster/ssi/ipc/namesvr_clnt.c |    6 
+	 cluster/ssi/ipc/namesvr_func.c |  463 ++++++++++++++++++++++++++++++++-
+	 include/linux/config.h         |    5 
+	 5 files changed, 495 insertions(+), 20 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE18
+
+	* RMTUNIX (#ifdef IPC_STALE_RMTUNIX_CACHE_FIX):
+	- Optimize away rsk_spinlock in rmtunix_socket_info struct reference
+	  counting code. Use atomic_test_and_add().
+
+	* RMTUNIX (#ifdef RMTUNIX_SOCK_INFO_CACHE):
+	- Regression:
+	  - rmtunixsvr_stream_connect_callback() error path calling kfree() on
+	    kmem_cache object.
+	  - ssi_unix_find_socket_byinode() error path calling kfree() on
+	    kmem_cache object.
+	  - ssi_unix_find_socket_byname() error path calling kfree() on
+	    kmem_cache object.
+
+	 cluster/ssi/ipc/rmtunix.c        |   19 +++++++--------
+	 include/cluster/ssi/ipc/unixnm.h |   39 +++++++------------------------
+	 include/cluster/ssi/unix.h       |   16 +++++++++++-
+	 3 files changed, 32 insertions(+), 42 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE17
+
+	* RMTFB:
+	- Double the number of buckets in hash tables rmtfb_svrtbl
+	  and rmtfb_clitbl. Use hlist_head struct. Memory footprint unchanged.
+
+	 cluster/ssi/util/rmtfb.c         |   93 ++++++++++++++++---------------
+	 include/cluster/ssi/util/rmtfb.h |    4 -
+	 2 files changed, 50 insertions(+), 47 deletions(-)
+
+	* CFS (#ifdef RCU_CFSTOK_TABLE):
+	- Remove sct_statelock spinlock in struct svrcfstok reference counting
+	  code. Use atomic_test_and_add().
+	- sct_magic is no longer used except for debugging. (#ifdef DEBUG)
+	- sct_prlist is no longer used in svrcfstok_nodedown since the final
+	  HASH_RELE() releases svrcfstok structure.
+
+	 cluster/ssi/cfs/svrcfs.c         |   98 ++++++++-----------------------
+	 include/cluster/ssi/cfs/cfstok.h |   14 +++-
+	 2 files changed, 38 insertions(+), 74 deletions(-)
+
+	* SSIDEV (#ifdef SSIDEV_POLL_CLI_HASH_TABLE):
+	- Convert ssidev_poll_cli_list to hashed single-linked list to handle
+	  large number of entries.
+
+	 cluster/ssi/util/ssidev.c    |   57 ++++++++++++++++++++++++++++++++++-
+	 include/cluster/ssi/ssidev.h |    4 ++
+	 include/linux/config.h       |    4 ++
+	 3 files changed, 64 insertions(+), 1 deletion(-)
+
+	* CFS (#ifdef CFS_DCACHE_KMEM_CACHE):
+	- Allocate cfs_dcached struct from kmem_cache.
+
+	 cluster/ssi/cfs/dir.c              |  141 +++++++++++++++++------------
+	 cluster/ssi/cfs/inode.c            |    8 +
+	 include/cluster/ssi/cfs/cfs_clnt.h |    2 
+	 include/linux/config.h             |    4 
+	 4 files changed, 98 insertions(+), 57 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE16
+
+	* VPROC (#ifdef TASK_HOLD_VPROC):
+	- Remove vp_lock spinlock in vproc struct. Use atomic_test_and_add().
+
+	* VPROC (#ifdef VPROC_DEBUG):
+	- vp_magic checking is for debugging; no longer done in production
+	  code.
+
+	 cluster/ssi/vproc/vp_debug.c |    2 
+	 cluster/ssi/vproc/vp_subr.c  |   95 +++++++++++++++++++----------------
+	 include/linux/vproc.h        |   23 ++++++--
+	 3 files changed, 73 insertions(+), 47 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE15
+
+	* RMTFB:
+	- Remove rfb_lock spinlock in rmtfb_cmn struct. Use
+	  atomic_test_and_add().
+
+	 cluster/ssi/util/rmtfb.c         |   37 +++----------------------------
+	 include/cluster/ssi/util/rmtfb.h |   12 +++-------
+	 2 files changed, 8 insertions(+), 41 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE14
+
+	* RMTFB:
+	- Allocate from slab rmtfb_cli / rmtfb_svr structs. (#ifdef
+	  RMTFB_KMEM_CACHE)
+	- rmtfb_remote_tty_ino() is no longer inlined. (#ifdef
+	  REOP_EXPORT_PATH_SVRNODE)
+	- Rename cluster/ssi/util/rmtfb.c:hash() to rfbhash(). Use Linux
+	  hashing routine.
+	- Split rmtfb_set_bit() into itself and rmtfb_clear_bit().
+
+	* RMTFB (#ifdef RMTFB_HASH_LOCKLESS):
+	- Implement lockless rfb_hash list traversal. Remove locks in various
+	  rmtfb_* code paths. Reduce latency in pipes, etc.
+	- Fix file struct leak on server when client lost race with another
+	  rmtfb_newcli().
+
+	* RMTFB (#ifdef RMTFB_REFCNT_FIX):
+	- Consolidate rfb_refcnt in rmtfb_cli / rmtfb_svr structs into
+	  rmtfb_cmn struct.
+
+	 cluster/ssi/util/rmtfb.c         |  629 +++++++++++++++++++++++++++----
+	 cluster/ssi/util/rmtsock.c       |    4 
+	 cluster/ssi/util/ssidev.c        |    2 
+	 cluster/ssi/vproc/dvp_pvpops.c   |    2 
+	 fs/fifo.c                        |   13 
+	 include/cluster/ssi/util/rmtfb.h |   31 -
+	 include/linux/config.h           |    7 
+	 7 files changed, 594 insertions(+), 94 deletions(-)
+
+2010/03/05	rogertsang <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE13
+
+	* CFS (#ifdef CFS_ASYNC_LOCAL_SYNC):
+	- Optimize away unnecesary initialization in cfs_read_rpcsetup(),
+	  cfs_write_rpcsetup().
+
+	* CFS (#ifdef CFS_CHARD_SYNC_FIX):
+	- Fix unstable data could have been lost due to server migrated or
+	  failover. Unstable data is flushed again (to the new server) in
+	  cfs_reflush_inode(). Later cfs_reflush_inode() is renamed to
+	  cfs_prepare_reflush() where pages are re-dirtied; caller flushes
+	  dirty pages again.
+	- Fix downed pages were not properly coalesced. Coalesce downed pages
+	  on per inode basis to reduce contention during failover.
+
+	* CFS (#ifdef CFS_PAGEVEC):
+	- Optimize away unnecesary initialization in cfs_commit_rpcsetup().
+
+	 cluster/ssi/cfs/inode.c            |    5 
+	 cluster/ssi/cfs/read.c             |   28 ++++
+	 cluster/ssi/cfs/write.c            |  170 +++++++++++++++++++++++++----
+	 include/cluster/ssi/cfs/cfs_fs.h   |    3 
+	 include/cluster/ssi/cfs/cfs_fs_i.h |   10 +
+	 include/cluster/ssi/cfs/cfs_page.h |    4 
+	 include/linux/config.h             |   10 +
+	 7 files changed, 206 insertions(+), 24 deletions(-)
+
+	* CFS (#ifdef CFS_FILE_WRITE_LIVELOCK_FIX):
+	- Fix background_writeout() stuck in balance_dirty_pages() when
+	  client@server and CFS inode being flushed exceeds VM dirty_ratio.
+
+	 mm/page-writeback.c |   10 ++++++++++
+	 1 files changed, 10 insertions(+)
+
+	* CFS Token Architecture (#ifdef RCU_MSGSUP_HASH):
+	- In process_msgs() optimize away hash table lookup on -EREMOTE.
+
+	 cluster/ssi/token/msgsup.c |   12 ++++++------
+	 1 files changed, 6 insertions(+), 6 deletions(-)
+
+	* VPROC (#ifdef VPROC_IS_LOADLEVELABLE_OOPS_FIX):
+	- Fix vproc_is_loadlevelable() null pointer dereference when process is
+	  still being setup. When Mosix choose() raced with
+	  VPOP_SETUP_VPROC_RELATIONS() the pvp_pproc pointer is NULL.
+
+	0xf6d25000    65955        2  1    0   R  0xf6d251b0 *nsc_async
+	EBP        EIP        Function (args)
+	0xf6ee5ef8 0xc0290450 vproc_is_loadlevelable+0x50 (0xed502e40, 0x0, 0xebffa550, 0xebffaa64)
+	0xf6ee5f10 0xc02903e0 is_loadlevelable+0x70 (0xebffa550, 0x0, 0xc240e494, 0x260, 0x260)
+	0xf6ee5f64 0xc02c2727 choose+0x197 (0x0, 0x0, 0xf6ee4000, 0xf6ee4000, 0xf6ee4000)
+	0xf6ee5fec 0xc0219193 nsc_async_daemon+0x233
+		   0xc0100d75 kernel_thread_helper+0x5
+
+	0xebffa550    92928    90796  0    0   D  0xebffa700  sa-learn
+	EBP        EIP        Function (args)
+	0xca15de68 0xc04129e3 schedule+0x303 (0xca15de8c, 0xed502ee4, 0xc04346cc, 0x822, 0xed502ee4)
+	0xca15de9c 0xc0413b99 rwsem_down_write_failed+0x89
+		   0xc0245d3a .text.lock.dvp_vpops+0x12
+	0xca15dee8 0xc0242e96 vpop_setup_vproc_relations+0x116 (0xed502e40, 0xca531550, 0x16b02, 0x1200011, 0xca531550)
+	0xca15df28 0xc011dda5 copy_process+0x5c5 (0x1200011, 0xbfffd558, 0xca15dfc4, 0x0, 0x0)
+	0xca15df78 0xc011e6fe __do_fork+0x6e (0x1200011, 0xbfffd558, 0xca15dfc4, 0x0, 0x0)
+	0xca15df9c 0xc011e68c do_fork+0x3c (0x1200011, 0xbfffd558, 0xca15dfc4, 0x0, 0x0)
+	0xca15dfbc 0xc010170b sys_clone+0x3b
+		   0xc0104575 sysenter_past_esp+0x52
+
+	* Files in ci-linux project were modified (see ci/ChangeLog).
+
+	 include/linux/config.h |    4 ++++
+	 1 files changed, 4 insertions(+)
+
+2010/02/21	hughesj <[email protected]>
+	* CVS Tag: OPENSSI-FC-1-9-6-PRE12
+
+	* x86_64:
+	- kernel/fs/exec.c
+	  - Better handling of missing binfmt->name
+	  - don't panic if binfmt unknown
+
+2010/02/19	hughesj <[email protected]>
+
+	* x86_64:
+	- Remove incorrectly imported file
+	  - kernel/fs/compat_ioctl.c (Tag: LINUX)
+	- Base on 2.6.11 version instead of incorrectly imported 2.6.12 version
+	  - kernel/fs/compat_ioctl.c (Trunk)
+
+2010/02/18	hughesj <[email protected]>
+
+	* x86_64:
+	- signal->tty doesn't exist in OpenSSI
+	  - kernel/fs/compat_ioctl.c
+
+2010/02/16	hughesj <[email protected]>
+
+	* x86_64:
+	- Don't use %x for addresses, use %p (works on lp64)
+	  - kernel/cluster/ssi/clreg/clreg_head.c
+
+2010/02/15	hughesj <[email protected]>
+
+	* x86_64:
+	- Back out incorrect x86_64 patch
+	  - kernel/arch/x86_64/lib/copy_user.S usercopy.c
+	  - kernel/arch/x86_64/kernel/ptrace.c x8664_ksyms.c
+	  - kernel/include/asm-x86_64/atomic.h fcntl.h mman.h semaphore.h
+	    uaccess.h
+	- Patch VANILLA x86_64 files for OpenSSI
+	  - kernel/arch/x86_64/kernel/ldt.c process.c ptrace.c x8664_ksyms.c
+	  - kernel/arch/x86_64/lib/copy_user.S usercopy.c
+	  - kernel/include/asm-x86_64/atomic.h desc.h fcntl.h mman.h
+	    semaphore.h system.h uaccess.h
+
+2010/02/14	hughesj <[email protected]>
+
+	* x86_64:
+	- Include x86_84 patches
+	  - openssi/Makefile
+
+2010/02/13	hughesj <[email protected]>
+
+	* x86_64:
+	- Fix warnings on lp64 systems
+	  - kernel/fs/proc/proc_cluster.c
+	  - kernel/cluster/ssi/vproc/dvp_pvpsops.c nd_cleanup.c
+	  - kernel/cluster/ssi/ipc/namesvr_func.c
+	  - kernel/cluster/ssi/cfs/cfs_svc.c vfs.c
+	- ssize_t is a long, not an int
+	  - kernel/cluster/ssi/cfs/proc.c
+	- include i387 stuff on x86_64
+	  - kernel/cluster/ssi/mosixll/balance.c
+	- msg_namelen is an int, not a size_t
+	  - kernel/cluster/ssi/util/rmtsock.c
+	- Only do 64bit ipc on 64bit systems. (#ifndef ipc_parse_version)
+	  - kernel/ipc/util.c
+	- Add files needed for x86_64.
+	  - /kernel/include/cluster/gen/rproc_arch_x86_64.x
+	  - /kernel/cluster/arch/x86_64/vproc/Makefile rproc_arch.c
+	- Remove kernel/arch/x86_64/ia32/ia32_aout.c not needed.
+
 2010/02/02	rogertsang <[email protected]>
 	* CVS Tag: OPENSSI-FC-1-9-6-PRE11
 
@@ -125,8 +480,8 @@
 	* CVS Tag: OPENSSI-FC-1-9-6-PRE6
 
 	* VPROC:
-	- Optimize away struct procinfo initialization in error path in
-	  kill_proc_info().
+	- Fix pvpop_sigproc() returning 0 instead of -ESRCH in error path for
+	  local operation.
 	- Optimize away error code initialization for remote path in various
 	  pvpop_xxx() functions.
 	- Fix missing comment to explain why task state needs to be preserved
@@ -138,8 +493,6 @@
 	    finish_stop(). Fixed by re-enabling code to preserve current task
 	    state in vpop_report_state().
 
-	* Files in ci-linux project were modified (see ci/ChangeLog).
-
 	 cluster/ssi/vproc/dvp_pvpops.c      |   49 ++++++++++++----------------
 	 cluster/ssi/vproc/dvp_vpops.c       |   26 ++++++++------
 	 cluster/ssi/vproc/rproc_svr_pproc.c |    1 


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev