[SSI] openssi ChangeLog,1.263,1.264
Roger Tsang <[email protected]> Mon, 17 Jan 2011 07:23:30 +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-serv7337
Modified Files:
Tag: OPENSSI-FC
ChangeLog
Log Message:
update
Index: ChangeLog
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/ChangeLog,v
retrieving revision 1.263
retrieving revision 1.264
diff -u -d -r1.263 -r1.264
--- ChangeLog 15 Dec 2010 08:23:37 -0000 1.263
+++ ChangeLog 17 Jan 2011 07:23:28 -0000 1.264
@@ -1,5 +1,292 @@
2010/??/?? *** Release of OpenSSI 2.0.0rc1 ***
+2011/01/17 rogertsang <[email protected]>
+ * CVS Tags: OPENSSI-FC-1-9-6-PRE67
+
+ * Files in ci-linux project were modified (see ci/ChangeLog).
+
+ * CFS:
+ cluster/ssi/cfs/inode.c (#ifdef CFS_ZAP_CACHES)
+ - __cfs_revalidate_inode: add memory barrier to ensure other processors
+ see ~CFS_INO_REVALIDATING change to CFS_FLAGS(). fix possible hang in
+ cfs_wait_on_inode().
+
+ * Remote File Block:
+ cluster/ssi/util/rmtfb.c (#ifdef RMTFB_HASH_LOCKLESS)
+ - rmtfb_getcli_id: remove retry of __rmtfb_getcli_id(). SMP-safe.
+ - rmtfb_newcli: no longer do early check for an existing rmtfb_cli
+ struct with same rfb_id. caller already checked. in one possible code
+ path we were doing total of three checks.
+ - rmtfb_newcli: remove retry of __rmtfb_getcli_id(). SMP-safe.
+ - rmtfb_newcli: move rmtfb_setcli_re/open() till after we've added the
+ rmtfb_cli structure to the hashed chained linked list to avoid racing
+ with rmtfb_rclose(). fix -ERFB_TRYAGAIN error when rmtfb_rclose()
+ lost the race.
+ - rmtfb_newcli: add comment before function about circular reference
+ between file struct and rmtfb_cli struct.
+ - __rmtfb_getcli_id: no need to return -ERFB_RELEASE error. just return
+ NULL since there is nothing for caller to do.
+ - __rmtfb_getcli_id: wait for rmtfb_setcli_re/open() completion. return
+ -EREMOTE on failure.
+
+ cluster/ssi/util/rmtfb.c (#ifdef REOP_EXPORT_PATH_SVRNODE)
+ - rmtfb_getcli_id: indicate to compiler unlikely branch direction.
+
+ cluster/ssi/util/rmtsock.c
+ - rmtsocksvr_getname: indicate to compiler likely branch direction.
+
+ include/cluster/ssi/util/rmtfb.h (#ifdef RMTFB_HASH_LOCKLESS)
+ - add fields rfb_state and rfb_wait to rmtfb_cli structure to support
+ __rmtfb_getcli_id() to make threads wait for rmtfb_setcli_re/open()
+ completion.
+
+ cluster/ssi/cfs/inode.c | 6 -
+ cluster/ssi/util/rmtfb.c | 178 ++++++++++++++-----------------
+ cluster/ssi/util/rmtsock.c | 9 -
+ include/cluster/ssi/util/rmtfb.h | 4
+ 4 files changed, 100 insertions(+), 97 deletions(-)
+
+ * VPROC:
+ cluster/ssi/vproc/dvp_async.c
+ - dpvproc_nocldwait_async_queue, dpvproc_rmv_pgrp_async_queue: fix
+ VPROC MOVEMENT LOCK not released in error path. fixes possible VPROC
+ MOVEMENT LOCK deadlock.
+ - dpvproc_nocldwait_async_queue, dpvproc_rmv_pgrp_async_queue: fix
+ vproc struct leak in error path.
+ - dpvproc_nocldwait_async_queue, dpvproc_rmv_pgrp_async_queue: raise
+ kernel log level to critical in error path.
+
+ cluster/ssi/vproc/dvp_pvpops.c
+ - pvpop_procfs_tid_list: fix VPROC MOVEMENT LOCK deadlock on -ENOMEM
+ error.
+
+ cluster/ssi/vproc/rproc_cli_pproc.c
+ - reopen_load_msg: move optype test out of for-loop. reduce work.
+
+ cluster/ssi/vproc/rproc_svr_pproc.c
+ - reopen_unload_msg: test rlimit and call expand_files() outside of
+ for-loop since fd_data array is sorted by fdnum. reduce work.
+
+ * PROCFS:
+ fs/proc/base.c
+ - proc_pid_make_inode, proc_pid_lookup, proc_task_lookup: Use revised
+ proc_ssi_task(). Avoid VPROC MOVEMENT LOCK since we could be in
+ time-critical VFS lookup code path. Avoid waiting for process
+ migration.
+ - proc_pid_make_inode: reduce redundant code.
+ - proc_pident_lookup, proc_lookupfd: No need to acquire VPROC MOVEMENT
+ LOCK for revised proc_pid_make_inode().
+ - proc_task_readdir: no need for seperate code path for local listing.
+ remove redundant.
+ - vproc_migrate_local: no need to acquire VPROC MOVEMENT LOCK since
+ setup_execnode_move() will check move header list for existing
+ entries.
+
+ fs/proc/base.c (#ifdef TASK_HOLD_VPROC)
+ - proc_permission, ssi_mounts_open, ssi_oom_adjust: no need to acquire
+ VPROC MOVEMENT LOCK since the caller holds inode reference which
+ means the task_struct reference held by PROC_I()->task is safe
+ against concurrent process migration.
+ - oom_adjust_read, oom_adjust_write: remove ugly type casting. caller
+ ensures PROC_I()->task is valid.
+
+ fs/proc/internal.h
+ - vproc_migrating: moved inline function from fs/proc/base.c
+
+ fs/proc/internal.h (#ifdef VPROC_HOLD_ZERO_GET_TASK)
+ - proc_ssi_task: borrow pvp_pproc's task_struct reference while
+ PV_IS_LOCAL flag is set. there is no race with process migration
+ because the client does not release pvp_pproc's task_struct reference
+ until after atomically clearing the flag. there is no race with final
+ put_task_struct() because the caller holds the reference to vproc
+ struct which has the final task_struct reference unless the process
+ has migrated.
+
+ cluster/ssi/vproc/dvp_async.c | 22 +-
+ cluster/ssi/vproc/dvp_pvpops.c | 12 -
+ cluster/ssi/vproc/rproc_cli_pproc.c | 23 --
+ cluster/ssi/vproc/rproc_svr_pproc.c | 53 ++--
+ fs/proc/base.c | 299 +++++-----------------------
+ fs/proc/internal.h | 39 +++
+ 6 files changed, 155 insertions(+), 293 deletions(-)
+
+ * CFS:
+ cluster/ssi/cfs/cfs_chard.c
+ - cfs_sb_start_down: use WAIT_CONDITION(). remove unused placeholder
+ variable from stack.
+ - cfs_sb_start_wants: use WAIT_CONDITION(). remove unused placeholder
+ variable from stack.
+ - cfs_sb_wait_down: use WAIT_CONDITION(). remove unused placeholder
+ variable from stack.
+
+ cluster/ssi/cfs/cfs_server.c
+ - cfs_rb_do_phase_wait: use WAIT_CONDITION(). remove unused placeholder
+ variable from stack.
+
+ cluster/ssi/cfs/cfs_subr.c
+ include/cluster/ssi/cfs/cfs_fs_sb.h
+ - Change mi_sb_state_cond field in cfs_server structure to type
+ CONDITION_T.
+
+ cluster/ssi/cfs/cfs_chard.c | 27 ++++++++++++---------------
+ cluster/ssi/cfs/cfs_server.c | 6 ++----
+ cluster/ssi/cfs/cfs_subr.c | 4 ++--
+ include/cluster/ssi/cfs/cfs_fs_sb.h | 2 +-
+ 4 files changed, 17 insertions(+), 22 deletions(-)
+
+2011/01/17 rogertsang <[email protected]>
+ * CVS Tags: OPENSSI-FC-1-9-6-PRE66
+
+ * Files in ci-linux project were modified (see ci/ChangeLog).
+
+ * CFS:
+ cluster/ssi/cfs/cfs_chard.c
+ - cfs_sb_soft_down: invoke shrink_dcache_sb(). clear unused dentries
+ since the soft mount is going away.
+
+ cluster/ssi/cfs/cfs_chard.c (#ifdef SKIP)
+ - cfs_sb_start_down: skip invalidate_inodes() since it is done in
+ cfs_sb_soft_down() and is not necessary for hard mounts.
+ - cfs_sb_start_down: skip shrink_icache_sb() for hard mounts. we are
+ only temporarily bringing down the hard mount and in linux-2.6 the
+ inode cache is pruned automatically.
+
+ cluster/ssi/cfs/read.c (#ifdef CFS_CHARD_SYNC_FIX)
+ - cfs_readpage_result: when inserting into read_down list grab the
+ inode reference before calling cfs_readdata_free() which does iput()
+ on the inode. fix possible memory corruption since without holding
+ the inode reference CFS failover can lose the race with
+ invalidate_inodes(), prune_icache() or iput_final().
+ - cfs_restart_read: call iput() on the inode reference held by
+ read_down list.
+
+ cluster/ssi/cfs/write.c (#ifdef CFS_CHARD_SYNC_FIX)
+ - cfs_commit_result: when inserting into dirty_down list grab the inode
+ reference before calling cfs_commit_free() which does iput() on the
+ inode. fix possible memory corruption since without holding the inode
+ reference CFS failover can lose the race with invalidate_inodes(),
+ prune_icache() or iput_final().
+ - cfs_writeback_done: when inserting into dirty_down list grab the
+ inode reference before calling cfs_writedata_free() which does iput()
+ on the inode. fix possible memory corruption since without holding
+ the inode reference CFS failover can lose the race with
+ invalidate_inodes(), prune_icache() or iput_final().
+ - cfs_sync_all_data: no need to call igrab() since the dirty_down list
+ already has the inode reference.
+
+ cluster/ssi/cfs/cfs_chard.c | 9 +++++----
+ cluster/ssi/cfs/read.c | 7 ++++---
+ cluster/ssi/cfs/write.c | 17 +++++++----------
+ 3 files changed, 16 insertions(+), 17 deletions(-)
+
+ * Process Migration:
+ cluster/ssi/mosixll/balance.c
+ - consider: add comment about array index 0 in the for-loop iterating
+ over loadinfo[] array of loadinfo structures.
+
+ cluster/ssi/vproc/dvp_move.c
+ - ssi_quiesce_movement: fix SSI_ASSERT(node != CLUSTERNODE_THIS)
+ assertion failed in cli_migrate() if in ssi_quiesce_movement() code
+ path VPOP_SELECT_NODE() chose this node, the client itself, as the
+ best node. when this node is chosen VPOP_SELECT_NODE() assigns
+ CLUSTERNODE_THIS to the variable referenced by "_node".
+ ssi_quiesce_movement() did not abort process migration when this node
+ is chosen.
+
+ cluster/ssi/mosixll/balance.c | 3 +++
+ cluster/ssi/vproc/dvp_move.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+ * Remote File Block:
+ cluster/ssi/util/rmtfb.c
+ - rmtfb_newcli: fix file struct leak if lost race with another
+ rmtfb_newcli().
+ - rmtfb_newcli: search for existing rmtfb_cli structure early. avoid
+ memory allocation. avoid possible RPC.
+ - rmtfb_newcli: add comment about this function.
+
+ cluster/ssi/util/rmtfb.c (#ifdef RMTFB_HASH_LOCKLESS)
+ - rmtfb_getcli_id: use yield() instead of idelay().
+ - rmtfb_getcli_id_lckd: rename function to __rmtfb_getcli_id. it is
+ lockless.
+ - rmtfb_newcli: use yield() instead of idelay().
+
+ cluster/ssi/util/rmtfb.c (#ifdef RMTFB_REFCNT_FIX)
+ - rmtfb_newcli: skip rmtfb_clrcli(). fix -ERFB_TRYAGAIN errors due to
+ reference count off by one after we lost the race with another thread
+ in rmtfb_newcli(). rmtfb_clrcli() is called to undo
+ rmtfb_setcli_reopen(). the undo caused the reference count for
+ rmtfb_svr structure to be off by one.
+ - rmtfb_rclose: no need to NULL out private_data field in file
+ structure. rmtfb_close() is called from __fput() and constructor
+ zero's all fields in file structure.
+
+ cluster/ssi/util/rmtfb.c | 69 +++++++++++++++++++++++++++++----------
+ 1 files changed, 52 insertions(+), 17 deletions(-)
+
+ * Process Load Balancing:
+ cluster/ssi/util/load_level.c
+ - initialize_list_lock: remove debug messages. not needed.
+
+ fs/exec.c (#ifdef DEBUG_LDLVL)
+ - __ssi_choose_node: add instrumentation.
+
+ cluster/ssi/util/load_level.c | 6 ------
+ fs/exec.c | 7 +++++++
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+2011/01/17 rogertsang <[email protected]>
+ * CVS Tags: OPENSSI-FC-1-9-6-PRE65
+
+ * Remote File Block:
+ cluster/ssi/util/rmtfb.c
+ - rmtfb_newcli: move the test for filesystem support from
+ rmtfb_getcli_id() to this function. fix test was not done in other
+ rmtfb_newcli() call paths and can hide future compatibility issues
+ with newer base kernels.
+ - rmtfb_setcli_open: handle error -EAGAIN. ICS can return -EAGAIN. fix
+ lost message on -EAGAIN.
+ - rmtfb_setclr_cli: handle error -EAGAIN. ICS can return -EAGAIN. fix
+ lost message on -EAGAIN.
+
+ cluster/ssi/util/rmtfb.c (#ifndef RFBDEBUG)
+ - de-activate rfb_magic field in rmtfb_cli structure when not
+ debugging.
+ - ftocli: de-activate debug code.
+ - ftocli: always inline this function when not debugging.
+ - rmtfb_putsvr: no longer do sanity check on passed argument. check is
+ not required in most cases. caller must ensure valid argument is
+ passed to this function.
+ - rmtfb_rclose: print error message if there is no rfb to close.
+ - SSI_XXX_stalecli: de-activate debug code.
+
+ cluster/ssi/util/rmtfb.c (#ifdef RMTFB_REFCNT_FIX)
+ - rmtfb_rclose: no need to call rmtfb_clrcli() after server went down.
+ fixes rmtfb_rclose() reporting -ERFB_TRYAGAIN errors after server is
+ rebooted. old rmtfb_svr structure is gone.
+
+ include/cluster/ssi/util/rmtfb.h (#ifndef RFBDEBUG)
+ - de-activate rfb_magic field in rmtfb_cli structure when not
+ debugging.
+
+ * SSIDEV:
+ cluster/ssi/util/ssidev.c
+ - __ssidev_do_poll_getf: no longer always inline.
+
+ * Process Migration:
+ cluster/ssi/vproc/reopen.c
+ - reop_export_file: remove if-test when assigning value to isreg
+ variable. not needed.
+ - reop_export_file_free: test for non-NULL argument to rmtfb_putsvr().
+ - reop_import_file: add comment to explain why we skipped get_file()
+ when copying reference to file struct.
+
+ cluster/ssi/util/rmtfb.c | 145 ++++++++++++++++++++-----------
+ cluster/ssi/util/ssidev.c | 14 +-
+ cluster/ssi/vproc/reopen.c | 24 ++---
+ include/cluster/ssi/util/rmtfb.h | 6 -
+ 4 files changed, 117 insertions(+), 72 deletions(-)
+
2010/12/15 rogertsang <[email protected]>
* CVS Tags: OPENSSI-FC-1-9-6-PRE64
@@ -129,7 +416,7 @@
- cfstok_req: for non-blocking requests look for -EAGAIN returned from
tok_hold().
- cfstok_send: fix lost non-HAVE token messages on hard mounts that are
- being rebuilt. clients may livelock in tok_wait() since tokens
+ being rebuilt. clients may livelock in tok_wait() since token
messages with cta_op value 0 are ignored.
- cfstok_objrevoke: skip unmap_mapping_range() if object is not a file.
- cfstok_objrevoke: skip unmap_mapping_range() if there are no shared
------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand
malware threats, the impact they can have on your business, and how you
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl