/src/sys/dev/raidframe/ |
rf_driver.c | 149 static int rf_ConfigureRDFreeList(RF_ShutdownList_t ** listp, RF_Raid_t *raidPtr, RF_Config_t *cfgPtr); 205 rf_Shutdown(RF_Raid_t *raidPtr) 208 if (!raidPtr->valid) { 220 rf_lock_mutex2(raidPtr->rad_lock); 221 if (raidPtr->waitShutdown) { 222 rf_unlock_mutex2(raidPtr->rad_lock); 225 raidPtr->waitShutdown = 1; 226 while (raidPtr->nAccOutstanding) { 227 rf_wait_cond2(raidPtr->outstandingCond, raidPtr->rad_lock) [all...] |
rf_callback.c | 58 RF_Raid_t *raidPtr; 60 raidPtr = (RF_Raid_t *) arg; 62 pool_destroy(&raidPtr->pools.callbackf); 63 pool_destroy(&raidPtr->pools.callbackv); 67 rf_ConfigureCallback(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 71 rf_pool_init(raidPtr, raidPtr->poolNames.callbackf, &raidPtr->pools.callbackf, sizeof(RF_CallbackFuncDesc_t), 73 rf_pool_init(raidPtr, raidPtr->poolNames.callbackv, &raidPtr->pools.callbackv, sizeof(RF_CallbackValueDesc_t) [all...] |
rf_paritylogging.c | 65 static void FreeRegionInfo(RF_Raid_t * raidPtr, RF_RegionId_t regionID); 76 RF_Raid_t * raidPtr, 82 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 97 raidPtr->numSectorsPerLog = RF_DEFAULT_NUM_SECTORS_PER_LOG; 100 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 107 info->stripeIdentifier = rf_make_2d_array((raidPtr->numCol), 108 (raidPtr->numCol), 109 raidPtr->cleanupList); 114 for (i = 0; i < (raidPtr->numCol); i++) { 115 for (j = 0; j < (raidPtr->numCol); j++) [all...] |
rf_raid5_rotatedspare.c | 59 RF_Raid_t * raidPtr, 62 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 67 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 72 RF_ASSERT(raidPtr->numCol >= 3); 76 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, raidPtr->numCol, raidPtr->cleanupList); 80 for (i = 0; i < raidPtr->numCol; i++) { 81 for (j = 0; j < raidPtr->numCol; j++) { 82 info->stripeIdentifier[i][j] = (startdisk + j) % raidPtr->numCol [all...] |
rf_chaindecluster.c | 65 RF_Raid_t *raidPtr, RF_Config_t *cfgPtr) 67 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 73 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 79 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, 2, raidPtr->cleanupList); 82 for (i = 0; i < raidPtr->numCol; i++) { 83 info->stripeIdentifier[i][0] = i % raidPtr->numCol; 84 info->stripeIdentifier[i][1] = (i + 1) % raidPtr->numCol; 89 (2 * raidPtr->numCol - 2)); 90 info->numSparingRegions = num_used_stripeUnitsPerDisk / (2 * raidPtr->numCol - 2) [all...] |
rf_reconutil.h | 43 void rf_FreeReconControl(RF_Raid_t * raidPtr); 44 RF_HeadSepLimit_t rf_GetDefaultHeadSepLimit(RF_Raid_t * raidPtr); 45 int rf_GetDefaultNumFloatingReconBuffers(RF_Raid_t * raidPtr); 47 rf_MakeReconBuffer(RF_Raid_t * raidPtr, RF_RowCol_t col, RF_RbufType_t type); 49 void rf_CheckFloatingRbufCount(RF_Raid_t * raidPtr, int dolock);
|
rf_interdecluster.c | 67 RF_Raid_t * raidPtr, 70 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 76 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 82 SUs_per_region = raidPtr->numCol * (raidPtr->numCol - 1); 83 info->stripeIdentifier = rf_make_2d_array(SUs_per_region, 2, raidPtr->cleanupList); 87 info->stripeIdentifier[i][0] = i / (raidPtr->numCol - 1); 88 tmp = i / raidPtr->numCol; 89 info->stripeIdentifier[i][1] = (i + 1 + tmp) % raidPtr->numCol; 98 (2 * raidPtr->numCol)) [all...] |
rf_reconstruct.c | 150 RF_Raid_t *raidPtr; 152 raidPtr = (RF_Raid_t *) arg; 154 pool_destroy(&raidPtr->pools.reconbuffer); 158 rf_ConfigureReconstruction(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 162 rf_pool_init(raidPtr, raidPtr->poolNames.reconbuffer, &raidPtr->pools.reconbuffer, sizeof(RF_ReconBuffer_t), 164 rf_ShutdownCreate(listp, rf_ShutdownReconstruction, raidPtr); 170 AllocRaidReconDesc(RF_Raid_t *raidPtr, RF_RowCol_t col, 178 reconDesc->raidPtr = raidPtr [all...] |
rf_disks.c | 110 rf_ConfigureDisks(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 122 ret = rf_AllocDiskStructures(raidPtr, cfgPtr); 126 disks = raidPtr->Disks; 129 for (c = 0; c < raidPtr->numCol; c++) { 130 ret = rf_ConfigureDisk(raidPtr, 138 ret = raidfetch_component_label(raidPtr, c); 143 if (!rf_reasonable_label(&raidPtr->raid_cinfo[c].ci_label,0) && !force) { 165 raidPtr->status = rf_rs_degraded; 171 for (c = 0; c < raidPtr->numCol; c++) { 192 if (rf_CheckLabels( raidPtr, cfgPtr )) [all...] |
rf_declusterPQ.h | 35 rf_ConfigureDeclusteredPQ(RF_ShutdownList_t ** listp, RF_Raid_t * raidPtr, 37 int rf_GetDefaultNumFloatingReconBuffersPQ(RF_Raid_t * raidPtr); 39 rf_MapSectorDeclusteredPQ(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 42 rf_MapParityDeclusteredPQ(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 45 rf_MapQDeclusteredPQ(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 48 rf_IdentifyStripeDeclusteredPQ(RF_Raid_t * raidPtr, RF_RaidAddr_t addr,
|
rf_raid4.c | 57 rf_ConfigureRAID4(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 60 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 65 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 71 info->stripeIdentifier = RF_MallocAndAdd(raidPtr->numCol * 72 sizeof(*info->stripeIdentifier), raidPtr->cleanupList); 75 for (i = 0; i < raidPtr->numCol; i++) 80 layoutPtr->numDataCol = raidPtr->numCol - 1; 83 raidPtr->totalSectors = layoutPtr->stripeUnitsPerDisk * layoutPtr->numDataCol * layoutPtr->sectorsPerStripeUnit; 89 rf_GetDefaultNumFloatingReconBuffersRAID4(RF_Raid_t *raidPtr) 95 rf_GetDefaultHeadSepLimitRAID4(RF_Raid_t *raidPtr) [all...] |
rf_evenodd.h | 34 rf_ConfigureEvenOdd(RF_ShutdownList_t ** shutdownListp, RF_Raid_t * raidPtr, 36 int rf_GetDefaultNumFloatingReconBuffersEvenOdd(RF_Raid_t * raidPtr); 37 RF_HeadSepLimit_t rf_GetDefaultHeadSepLimitEvenOdd(RF_Raid_t * raidPtr); 39 rf_IdentifyStripeEvenOdd(RF_Raid_t * raidPtr, RF_RaidAddr_t addr, 42 rf_MapParityEvenOdd(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 45 rf_MapEEvenOdd(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 48 rf_EODagSelect(RF_Raid_t * raidPtr, RF_IoType_t type, 51 rf_VerifyParityEvenOdd(RF_Raid_t * raidPtr, RF_RaidAddr_t raidAddr,
|
rf_interdecluster.h | 37 rf_ConfigureInterDecluster(RF_ShutdownList_t ** listp, RF_Raid_t * raidPtr, 39 int rf_GetDefaultNumFloatingReconBuffersInterDecluster(RF_Raid_t * raidPtr); 40 RF_HeadSepLimit_t rf_GetDefaultHeadSepLimitInterDecluster(RF_Raid_t * raidPtr); 41 RF_ReconUnitCount_t rf_GetNumSpareRUsInterDecluster(RF_Raid_t * raidPtr); 43 rf_MapSectorInterDecluster(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 46 rf_MapParityInterDecluster(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 49 rf_IdentifyStripeInterDecluster(RF_Raid_t * raidPtr, RF_RaidAddr_t addr, 56 rf_RAIDIDagSelect(RF_Raid_t * raidPtr, RF_IoType_t type,
|
rf_raid0.c | 55 rf_ConfigureRAID0(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 58 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 63 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 68 info->stripeIdentifier = RF_MallocAndAdd(raidPtr->numCol 69 * sizeof(*info->stripeIdentifier), raidPtr->cleanupList); 72 for (i = 0; i < raidPtr->numCol; i++) 75 raidPtr->totalSectors = layoutPtr->stripeUnitsPerDisk * raidPtr->numCol * layoutPtr->sectorsPerStripeUnit; 77 layoutPtr->dataSectorsPerStripe = raidPtr->numCol * layoutPtr->sectorsPerStripeUnit; 78 layoutPtr->numDataCol = raidPtr->numCol [all...] |
rf_paritylogDiskMgr.h | 38 int rf_ShutdownLogging(RF_Raid_t * raidPtr);
|
rf_mcpair.c | 59 RF_Raid_t *raidPtr; 61 raidPtr = (RF_Raid_t *) arg; 63 pool_destroy(&raidPtr->pools.mcpair); 67 rf_ConfigureMCPair(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 71 rf_pool_init(raidPtr, raidPtr->poolNames.mcpair, &raidPtr->pools.mcpair, sizeof(RF_MCPair_t), 73 rf_ShutdownCreate(listp, rf_ShutdownMCPair, raidPtr); 79 rf_AllocMCPair(RF_Raid_t *raidPtr) 83 t = pool_get(&raidPtr->pools.mcpair, PR_WAITOK) [all...] |
rf_paritylog.c | 62 AllocParityLogCommonData(RF_Raid_t * raidPtr) 70 rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex); 71 if (raidPtr->parityLogDiskQueue.freeCommonList) { 72 common = raidPtr->parityLogDiskQueue.freeCommonList; 73 raidPtr->parityLogDiskQueue.freeCommonList = raidPtr->parityLogDiskQueue.freeCommonList->next; 74 rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex); 76 rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex); 88 RF_Raid_t *raidPtr; 94 raidPtr = common->raidPtr [all...] |
rf_callback.h | 62 int rf_ConfigureCallback(RF_ShutdownList_t ** listp, RF_Raid_t *raidPtr, 64 RF_CallbackFuncDesc_t *rf_AllocCallbackFuncDesc(RF_Raid_t *raidPtr); 65 void rf_FreeCallbackFuncDesc(RF_Raid_t *raidPtr, RF_CallbackFuncDesc_t * p); 66 RF_CallbackValueDesc_t *rf_AllocCallbackValueDesc(RF_Raid_t *raidPtr); 67 void rf_FreeCallbackValueDesc(RF_Raid_t *raidPtr, RF_CallbackValueDesc_t * p);
|
rf_raid5_rotatedspare.h | 35 rf_ConfigureRAID5_RS(RF_ShutdownList_t ** listp, RF_Raid_t * raidPtr, 37 RF_ReconUnitCount_t rf_GetNumSpareRUsRAID5_RS(RF_Raid_t * raidPtr); 39 rf_MapSectorRAID5_RS(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 42 rf_MapParityRAID5_RS(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 45 rf_IdentifyStripeRAID5_RS(RF_Raid_t * raidPtr, RF_RaidAddr_t addr,
|
rf_raid4.h | 35 rf_ConfigureRAID4(RF_ShutdownList_t ** listp, RF_Raid_t * raidPtr, 37 int rf_GetDefaultNumFloatingReconBuffersRAID4(RF_Raid_t * raidPtr); 38 RF_HeadSepLimit_t rf_GetDefaultHeadSepLimitRAID4(RF_Raid_t * raidPtr); 40 rf_MapSectorRAID4(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 43 rf_MapParityRAID4(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 46 rf_IdentifyStripeRAID4(RF_Raid_t * raidPtr, RF_RaidAddr_t addr, 53 rf_RAID4DagSelect(RF_Raid_t * raidPtr, RF_IoType_t type,
|
rf_raid5.h | 35 rf_ConfigureRAID5(RF_ShutdownList_t ** listp, RF_Raid_t * raidPtr, 37 int rf_GetDefaultNumFloatingReconBuffersRAID5(RF_Raid_t * raidPtr); 38 RF_HeadSepLimit_t rf_GetDefaultHeadSepLimitRAID5(RF_Raid_t * raidPtr); 40 rf_MapSectorRAID5(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 43 rf_MapParityRAID5(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 46 rf_IdentifyStripeRAID5(RF_Raid_t * raidPtr, RF_RaidAddr_t addr, 53 rf_RaidFiveDagSelect(RF_Raid_t * raidPtr, RF_IoType_t type,
|
rf_raid5.c | 58 rf_ConfigureRAID5(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, 61 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; 66 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); 73 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, raidPtr->numCol, raidPtr->cleanupList); 77 for (i = 0; i < raidPtr->numCol; i++) { 78 for (j = 0; j < raidPtr->numCol; j++) { 79 info->stripeIdentifier[i][j] = (startdisk + j) % raidPtr->numCol; 82 startdisk = raidPtr->numCol - 1 [all...] |
rf_paritylogging.h | 35 rf_ConfigureParityLogging(RF_ShutdownList_t ** listp, RF_Raid_t * raidPtr, 37 int rf_GetDefaultNumFloatingReconBuffersParityLogging(RF_Raid_t * raidPtr); 38 RF_HeadSepLimit_t rf_GetDefaultHeadSepLimitParityLogging(RF_Raid_t * raidPtr); 40 rf_MapRegionIDParityLogging(RF_Raid_t * raidPtr, 43 rf_MapSectorParityLogging(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 47 rf_MapParityParityLogging(RF_Raid_t * raidPtr, RF_RaidAddr_t raidSector, 51 rf_MapLogParityLogging(RF_Raid_t * raidPtr, RF_RegionId_t regionID, 55 rf_MapRegionParity(RF_Raid_t * raidPtr, RF_RegionId_t regionID, 59 rf_IdentifyStripeParityLogging(RF_Raid_t * raidPtr, RF_RaidAddr_t addr, 66 rf_ParityLoggingDagSelect(RF_Raid_t * raidPtr, RF_IoType_t type [all...] |
rf_engine.c | 94 RF_Raid_t *raidPtr; 96 raidPtr = (RF_Raid_t *) arg; 99 rf_lock_mutex2(raidPtr->iodone_lock); 101 raidPtr->shutdown_raidio = 1; 102 rf_signal_cond2(raidPtr->iodone_cv); 105 while (raidPtr->shutdown_raidio) 106 rf_wait_cond2(raidPtr->iodone_cv, raidPtr->iodone_lock); 108 rf_unlock_mutex2(raidPtr->iodone_lock); 111 DO_LOCK(raidPtr); [all...] |
rf_paritylogDiskMgr.c | 115 RF_Raid_t * raidPtr, 130 *rrd_dag_h = rf_MakeSimpleDAG(raidPtr, 1, 0, regionBuffer, 137 *rrd_pda = rf_AllocPDAList(raidPtr, 1); 138 rf_MapLogParityLogging(raidPtr, regionID, 0, 140 (*rrd_pda)->numSector = raidPtr->regionInfo[regionID].capacity; 166 RF_Raid_t * raidPtr, 183 *fwr_dag_h = rf_MakeSimpleDAG(raidPtr, 1, 0, log->bufPtr, 187 *fwr_pda = rf_AllocPDAList(raidPtr, 1); 189 rf_MapLogParityLogging(raidPtr, regionID, regionOffset, 192 (*fwr_pda)->numSector = raidPtr->numSectorsPerLog [all...] |