Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/dev/raidframe



Module Name:    src
Committed By:   oster
Date:           Thu Mar 18 16:40:05 UTC 2004

Modified Files:
        src/sys/dev/raidframe: rf_aselect.c rf_dag.h rf_dagdegrd.c
            rf_dagdegwr.c rf_dagffrd.c rf_dagffwr.c rf_dagutils.c rf_dagutils.h
            rf_netbsd.h

Log Message:
- Introduce a 'dagnode' pool.  Initialize it and allow for cleanup.
Provide rf_AllocDAGNode() and rf_FreeDAGNode() to handle
allocation/freeing.

- Introduce a "nodes" linked list of RF_DagNode_t's into the DAG header.
Initialize nodes in InitHdrNode().  Arrange for nodes cleanup in rf_FreeDAG().

- Add a "list_next" to RF_DagNode_t to keep track of nodes on the
above "nodes" list.  (This is distinct from the "next" field of
RF_DagNode_t, which keeps track of the firing order of nodes.)
"list_next" gets used in the cleanup routines, and in traversing
through a set of nodes that belong to a particular set of nodes
(e.g. those belonging to xorNodes for a given DAG).

- use rf_AllocDAGNode() instead of mallocs of variable-sized arrays of
RF_DagNode_t's.  Mostly mechanical changes to convert the DAG construction
from "access nodes via an array index" to "access nodes via a 'nextnode'
pointer".

- rework a couple of tricky spots where assumptions about the node order
was being abused.

- performance remains consistent with performance before these changes.

[Thanks to Simon Burge (simonb at you.know.where) for looking over
the mechanical changes to make sure I didn't biff anything.]


To generate a diff of this commit:
cvs rdiff -r1.16 -r1.17 src/sys/dev/raidframe/rf_aselect.c
cvs rdiff -r1.11 -r1.12 src/sys/dev/raidframe/rf_dag.h
cvs rdiff -r1.19 -r1.20 src/sys/dev/raidframe/rf_dagdegrd.c
cvs rdiff -r1.17 -r1.18 src/sys/dev/raidframe/rf_dagdegwr.c
cvs rdiff -r1.12 -r1.13 src/sys/dev/raidframe/rf_dagffrd.c
cvs rdiff -r1.21 -r1.22 src/sys/dev/raidframe/rf_dagffwr.c
cvs rdiff -r1.37 -r1.38 src/sys/dev/raidframe/rf_dagutils.c
cvs rdiff -r1.10 -r1.11 src/sys/dev/raidframe/rf_dagutils.h
cvs rdiff -r1.15 -r1.16 src/sys/dev/raidframe/rf_netbsd.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index