[BACK]Return to rf_evenodd_dagfuncs.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / dev / raidframe

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

Diff for /src/sys/dev/raidframe/rf_evenodd_dagfuncs.c between version 1.22.30.2 and 1.23

version 1.22.30.2, 2020/04/13 08:04:47 version 1.23, 2019/02/09 03:34:00
Line 66  RF_RedFuncs_t rf_eoERecoveryFuncs = {rf_
Line 66  RF_RedFuncs_t rf_eoERecoveryFuncs = {rf_
 /**********************************************************************************************  /**********************************************************************************************
  *   the following encoding node functions is used in  EO_000_CreateLargeWriteDAG   *   the following encoding node functions is used in  EO_000_CreateLargeWriteDAG
  **********************************************************************************************/   **********************************************************************************************/
 void  int
 rf_RegularPEFunc(RF_DagNode_t *node)  rf_RegularPEFunc(RF_DagNode_t *node)
 {  {
         rf_RegularESubroutine(node, node->results[1]);          rf_RegularESubroutine(node, node->results[1]);
         rf_RegularXorFunc(node);/* does the wakeup here! */          rf_RegularXorFunc(node);/* does the wakeup here! */
   #if 1
           return (0);             /* XXX This was missing... GO */
   #endif
 }  }
   
   
Line 92  rf_RegularPEFunc(RF_DagNode_t *node)
Line 95  rf_RegularPEFunc(RF_DagNode_t *node)
    old data and new data, then encode temp buf into old 'E' buf to form new 'E', but this approach     old data and new data, then encode temp buf into old 'E' buf to form new 'E', but this approach
    take the same speed as the previous, and need more memory.     take the same speed as the previous, and need more memory.
 */  */
 void  int
 rf_RegularONEFunc(RF_DagNode_t *node)  rf_RegularONEFunc(RF_DagNode_t *node)
 {  {
         RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p;          RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p;
Line 146  rf_RegularONEFunc(RF_DagNode_t *node)
Line 149  rf_RegularONEFunc(RF_DagNode_t *node)
         RF_ETIMER_EVAL(timer);          RF_ETIMER_EVAL(timer);
         tracerec->q_us += RF_ETIMER_VAL_US(timer);          tracerec->q_us += RF_ETIMER_VAL_US(timer);
         rf_GenericWakeupFunc(node, 0);          rf_GenericWakeupFunc(node, 0);
   #if 1
           return (0);             /* XXX this was missing.. GO */
   #endif
 }  }
   
 void  int
 rf_SimpleONEFunc(RF_DagNode_t *node)  rf_SimpleONEFunc(RF_DagNode_t *node)
 {  {
         RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p;          RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p;
Line 181  rf_SimpleONEFunc(RF_DagNode_t *node)
Line 187  rf_SimpleONEFunc(RF_DagNode_t *node)
                 tracerec->q_us += RF_ETIMER_VAL_US(timer);                  tracerec->q_us += RF_ETIMER_VAL_US(timer);
   
         }          }
         rf_GenericWakeupFunc(node, retcode);    /* call wake func          return (rf_GenericWakeupFunc(node, retcode));   /* call wake func
                                                  * explicitly since no                                                           * explicitly since no
                                                  * I/O in this node */                                                           * I/O in this node */
 }  }
   
   
Line 219  rf_RegularESubroutine(RF_DagNode_t *node
Line 225  rf_RegularESubroutine(RF_DagNode_t *node
 /*******************************************************************************************  /*******************************************************************************************
  *                       Used in  EO_001_CreateLargeWriteDAG   *                       Used in  EO_001_CreateLargeWriteDAG
  ******************************************************************************************/   ******************************************************************************************/
 void  int
 rf_RegularEFunc(RF_DagNode_t *node)  rf_RegularEFunc(RF_DagNode_t *node)
 {  {
         rf_RegularESubroutine(node, node->results[0]);          rf_RegularESubroutine(node, node->results[0]);
         rf_GenericWakeupFunc(node, 0);          rf_GenericWakeupFunc(node, 0);
   #if 1
           return (0);             /* XXX this was missing?.. GO */
   #endif
 }  }
 /*******************************************************************************************  /*******************************************************************************************
  * This degraded function allow only two case:   * This degraded function allow only two case:
Line 274  rf_DegrESubroutine(RF_DagNode_t *node, c
Line 283  rf_DegrESubroutine(RF_DagNode_t *node, c
  * failed in the stripe but not accessed at this time, then we should, instead, use   * failed in the stripe but not accessed at this time, then we should, instead, use
  * the rf_EOWriteDoubleRecoveryFunc().   * the rf_EOWriteDoubleRecoveryFunc().
  **************************************************************************************/   **************************************************************************************/
 void  int
 rf_Degraded_100_EOFunc(RF_DagNode_t *node)  rf_Degraded_100_EOFunc(RF_DagNode_t *node)
 {  {
         rf_DegrESubroutine(node, node->results[1]);          rf_DegrESubroutine(node, node->results[1]);
         rf_RecoveryXorFunc(node);       /* does the wakeup here! */          rf_RecoveryXorFunc(node);       /* does the wakeup here! */
   #if 1
           return (0);             /* XXX this was missing... SHould these be
                                    * void functions??? GO */
   #endif
 }  }
 /**************************************************************************************  /**************************************************************************************
  * This function is to encode one sector in one of the data disks to the E disk.   * This function is to encode one sector in one of the data disks to the E disk.
Line 382  rf_e_encToBuf(
Line 395  rf_e_encToBuf(
  * to recover the data in dead disk. This function is used in the recovery node of   * to recover the data in dead disk. This function is used in the recovery node of
  * for EO_110_CreateReadDAG   * for EO_110_CreateReadDAG
  **************************************************************************************/   **************************************************************************************/
 void  int
 rf_RecoveryEFunc(RF_DagNode_t *node)  rf_RecoveryEFunc(RF_DagNode_t *node)
 {  {
         RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p;          RF_Raid_t *raidPtr = (RF_Raid_t *) node->params[node->numParams - 1].p;
Line 419  rf_RecoveryEFunc(RF_DagNode_t *node)
Line 432  rf_RecoveryEFunc(RF_DagNode_t *node)
                 RF_ETIMER_EVAL(timer);                  RF_ETIMER_EVAL(timer);
                 tracerec->xor_us += RF_ETIMER_VAL_US(timer);                  tracerec->xor_us += RF_ETIMER_VAL_US(timer);
         }          }
         rf_GenericWakeupFunc(node, 0);  /* node execute successfully */          return (rf_GenericWakeupFunc(node, 0)); /* node execute successfully */
 }  }
 /**************************************************************************************  /**************************************************************************************
  * This function is used in the case where one data and the parity have filed.   * This function is used in the case where one data and the parity have filed.
  * (in EO_110_CreateWriteDAG )   * (in EO_110_CreateWriteDAG )
  **************************************************************************************/   **************************************************************************************/
 void  int
 rf_EO_DegradedWriteEFunc(RF_DagNode_t * node)  rf_EO_DegradedWriteEFunc(RF_DagNode_t * node)
 {  {
         rf_DegrESubroutine(node, node->results[0]);          rf_DegrESubroutine(node, node->results[0]);
         rf_GenericWakeupFunc(node, 0);          rf_GenericWakeupFunc(node, 0);
   #if 1
           return (0);             /* XXX Yet another one!! GO */
   #endif
 }  }
   
   
Line 627  rf_doubleEOdecode(
Line 643  rf_doubleEOdecode(
 *       EO_200_CreateReadDAG  *       EO_200_CreateReadDAG
 *  *
 ***************************************************************************************/  ***************************************************************************************/
 void  int
 rf_EvenOddDoubleRecoveryFunc(RF_DagNode_t *node)  rf_EvenOddDoubleRecoveryFunc(RF_DagNode_t *node)
 {  {
         int     ndataParam = 0;          int     ndataParam = 0;
Line 812  rf_EvenOddDoubleRecoveryFunc(RF_DagNode_
Line 828  rf_EvenOddDoubleRecoveryFunc(RF_DagNode_
                 tracerec->q_us += RF_ETIMER_VAL_US(timer);                  tracerec->q_us += RF_ETIMER_VAL_US(timer);
         }          }
         rf_GenericWakeupFunc(node, 0);          rf_GenericWakeupFunc(node, 0);
   #if 1
           return (0);             /* XXX is this even close!!?!?!!? GO */
   #endif
 }  }
   
   
Line 820  rf_EvenOddDoubleRecoveryFunc(RF_DagNode_
Line 839  rf_EvenOddDoubleRecoveryFunc(RF_DagNode_
  * many accesses of single stripe unit.   * many accesses of single stripe unit.
  */   */
   
 void  int
 rf_EOWriteDoubleRecoveryFunc(RF_DagNode_t *node)  rf_EOWriteDoubleRecoveryFunc(RF_DagNode_t *node)
 {  {
         int     np = node->numParams;          int     np = node->numParams;
Line 943  rf_EOWriteDoubleRecoveryFunc(RF_DagNode_
Line 962  rf_EOWriteDoubleRecoveryFunc(RF_DagNode_
                 tracerec->q_us += RF_ETIMER_VAL_US(timer);                  tracerec->q_us += RF_ETIMER_VAL_US(timer);
         }          }
         rf_GenericWakeupFunc(node, 0);          rf_GenericWakeupFunc(node, 0);
           return (0);
 }  }
 #endif                          /* RF_INCLUDE_EVENODD > 0 */  #endif                          /* RF_INCLUDE_EVENODD > 0 */

Legend:
Removed from v.1.22.30.2  
changed lines
  Added in v.1.23

CVSweb <webmaster@jp.NetBSD.org>