/netbsd-src/sys/dev/raidframe/ |
H A D | rf_paritylogging.c | 65 static void FreeRegionInfo(RF_Raid_t * raidPtr, RF_RegionId_t regionID); 76 RF_Raid_t * raidPtr, in rf_ConfigureParityLogging() argument 82 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureParityLogging() 97 raidPtr->numSectorsPerLog = RF_DEFAULT_NUM_SECTORS_PER_LOG; in rf_ConfigureParityLogging() 100 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureParityLogging() 107 info->stripeIdentifier = rf_make_2d_array((raidPtr->numCol), in rf_ConfigureParityLogging() 108 (raidPtr->numCol), in rf_ConfigureParityLogging() 109 raidPtr->cleanupList); in rf_ConfigureParityLogging() 114 for (i = 0; i < (raidPtr->numCol); i++) { in rf_ConfigureParityLogging() 115 for (j = 0; j < (raidPtr->numCol); j++) { in rf_ConfigureParityLogging() [all …]
|
H A D | 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) in rf_Shutdown() argument 208 if (!raidPtr->valid) { in rf_Shutdown() 220 rf_lock_mutex2(raidPtr->rad_lock); in rf_Shutdown() 221 if (raidPtr->waitShutdown) { in rf_Shutdown() 222 rf_unlock_mutex2(raidPtr->rad_lock); in rf_Shutdown() 225 raidPtr->waitShutdown = 1; in rf_Shutdown() 226 while (raidPtr->nAccOutstanding) { in rf_Shutdown() 227 rf_wait_cond2(raidPtr->outstandingCond, raidPtr in rf_Shutdown() 298 rf_Configure(RF_Raid_t * raidPtr,RF_Config_t * cfgPtr,RF_AutoConfig_t * ac) rf_Configure() argument 480 rf_AllocEmergBuffers(RF_Raid_t * raidPtr) rf_AllocEmergBuffers() argument 535 rf_FreeEmergBuffers(RF_Raid_t * raidPtr) rf_FreeEmergBuffers() argument 560 RF_Raid_t *raidPtr; rf_ShutdownRDFreeList() local 568 rf_ConfigureRDFreeList(RF_ShutdownList_t ** listp,RF_Raid_t * raidPtr,RF_Config_t * cfgPtr) rf_ConfigureRDFreeList() argument 579 rf_AllocRaidAccDesc(RF_Raid_t * raidPtr,RF_IoType_t type,RF_RaidAddr_t raidAddress,RF_SectorCount_t numBlocks,void * bufPtr,void * bp,RF_RaidAccessFlags_t flags,const RF_AccessState_t * states) rf_AllocRaidAccDesc() argument 631 RF_Raid_t *raidPtr = desc->raidPtr; rf_FreeRaidAccDesc() local 675 rf_DoAccess(RF_Raid_t * raidPtr,RF_IoType_t type,RF_RaidAddr_t raidAddress,RF_SectorCount_t numBlocks,void * bufPtr,struct buf * bp,RF_RaidAccessFlags_t flags) rf_DoAccess() argument 742 rf_FailDisk(RF_Raid_t * raidPtr,int fcol,int initRecon) rf_FailDisk() argument 791 rf_SignalQuiescenceLock(RF_Raid_t * raidPtr) rf_SignalQuiescenceLock() argument 807 rf_SuspendNewRequestsAndWait(RF_Raid_t * raidPtr) rf_SuspendNewRequestsAndWait() argument 837 rf_ResumeNewRequests(RF_Raid_t * raidPtr) rf_ResumeNewRequests() argument 938 rf_alloc_mutex_cond(RF_Raid_t * raidPtr) rf_alloc_mutex_cond() argument 956 rf_destroy_mutex_cond(RF_Raid_t * raidPtr) rf_destroy_mutex_cond() argument [all...] |
H A D | rf_reconstruct.c | 150 RF_Raid_t *raidPtr; in rf_ShutdownReconstruction() local 152 raidPtr = (RF_Raid_t *) arg; in rf_ShutdownReconstruction() 154 pool_destroy(&raidPtr->pools.reconbuffer); in rf_ShutdownReconstruction() 158 rf_ConfigureReconstruction(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureReconstruction() argument 162 …rf_pool_init(raidPtr, raidPtr->poolNames.reconbuffer, &raidPtr->pools.reconbuffer, sizeof(RF_Recon… in rf_ConfigureReconstruction() 164 rf_ShutdownCreate(listp, rf_ShutdownReconstruction, raidPtr); in rf_ConfigureReconstruction() 170 AllocRaidReconDesc(RF_Raid_t *raidPtr, RF_RowCol_t col, in AllocRaidReconDesc() argument 178 reconDesc->raidPtr = raidPtr; in AllocRaidReconDesc() 193 reconDesc->raidPtr->raidid, in FreeReconDesc() 198 reconDesc->raidPtr->raidid, in FreeReconDesc() [all …]
|
H A D | rf_disks.c | 110 rf_ConfigureDisks(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureDisks() argument 122 ret = rf_AllocDiskStructures(raidPtr, cfgPtr); in rf_ConfigureDisks() 126 disks = raidPtr->Disks; in rf_ConfigureDisks() 129 for (c = 0; c < raidPtr->numCol; c++) { in rf_ConfigureDisks() 130 ret = rf_ConfigureDisk(raidPtr, in rf_ConfigureDisks() 138 ret = raidfetch_component_label(raidPtr, c); in rf_ConfigureDisks() 143 if (!rf_reasonable_label(&raidPtr->raid_cinfo[c].ci_label,0) && !force) { in rf_ConfigureDisks() 165 raidPtr->status = rf_rs_degraded; in rf_ConfigureDisks() 171 for (c = 0; c < raidPtr->numCol; c++) { in rf_ConfigureDisks() 192 if (rf_CheckLabels( raidPtr, cfgPtr )) { in rf_ConfigureDisks() [all …]
|
H A D | rf_paritylog.c | 62 AllocParityLogCommonData(RF_Raid_t * raidPtr) in AllocParityLogCommonData() argument 70 rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex); in AllocParityLogCommonData() 71 if (raidPtr->parityLogDiskQueue.freeCommonList) { in AllocParityLogCommonData() 72 common = raidPtr->parityLogDiskQueue.freeCommonList; in AllocParityLogCommonData() 73 raidPtr->parityLogDiskQueue.freeCommonList = raidPtr->parityLogDiskQueue.freeCommonList->next; in AllocParityLogCommonData() 74 rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex); in AllocParityLogCommonData() 76 rf_unlock_mutex2(raidPtr->parityLogDiskQueue.mutex); in AllocParityLogCommonData() 88 RF_Raid_t *raidPtr; in FreeParityLogCommonData() local 94 raidPtr = common->raidPtr; in FreeParityLogCommonData() 95 rf_lock_mutex2(raidPtr->parityLogDiskQueue.mutex); in FreeParityLogCommonData() [all …]
|
H A D | rf_chaindecluster.c | 65 RF_Raid_t *raidPtr, RF_Config_t *cfgPtr) in rf_ConfigureChainDecluster() argument 67 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureChainDecluster() 73 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureChainDecluster() 79 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, 2, raidPtr->cleanupList); in rf_ConfigureChainDecluster() 82 for (i = 0; i < raidPtr->numCol; i++) { in rf_ConfigureChainDecluster() 83 info->stripeIdentifier[i][0] = i % raidPtr->numCol; in rf_ConfigureChainDecluster() 84 info->stripeIdentifier[i][1] = (i + 1) % raidPtr->numCol; in rf_ConfigureChainDecluster() 89 (2 * raidPtr->numCol - 2)); in rf_ConfigureChainDecluster() 90 info->numSparingRegions = num_used_stripeUnitsPerDisk / (2 * raidPtr->numCol - 2); in rf_ConfigureChainDecluster() 91 info->stripeUnitsPerSparingRegion = raidPtr->numCol * (raidPtr->numCol - 1); in rf_ConfigureChainDecluster() [all …]
|
H A D | rf_interdecluster.c | 67 RF_Raid_t * raidPtr, in rf_ConfigureInterDecluster() argument 70 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureInterDecluster() 76 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureInterDecluster() 82 SUs_per_region = raidPtr->numCol * (raidPtr->numCol - 1); in rf_ConfigureInterDecluster() 83 info->stripeIdentifier = rf_make_2d_array(SUs_per_region, 2, raidPtr->cleanupList); in rf_ConfigureInterDecluster() 87 info->stripeIdentifier[i][0] = i / (raidPtr->numCol - 1); in rf_ConfigureInterDecluster() 88 tmp = i / raidPtr->numCol; in rf_ConfigureInterDecluster() 89 info->stripeIdentifier[i][1] = (i + 1 + tmp) % raidPtr->numCol; in rf_ConfigureInterDecluster() 98 (2 * raidPtr->numCol)); in rf_ConfigureInterDecluster() 99 info->numSparingRegions = num_used_stripeUnitsPerDisk / (2 * raidPtr->numCol); in rf_ConfigureInterDecluster() [all …]
|
H A D | rf_paritylogDiskMgr.c | 115 RF_Raid_t * raidPtr, in ReadRegionLog() argument 130 *rrd_dag_h = rf_MakeSimpleDAG(raidPtr, 1, 0, regionBuffer, in ReadRegionLog() 137 *rrd_pda = rf_AllocPDAList(raidPtr, 1); in ReadRegionLog() 138 rf_MapLogParityLogging(raidPtr, regionID, 0, in ReadRegionLog() 140 (*rrd_pda)->numSector = raidPtr->regionInfo[regionID].capacity; in ReadRegionLog() 166 RF_Raid_t * raidPtr, in WriteCoreLog() argument 183 *fwr_dag_h = rf_MakeSimpleDAG(raidPtr, 1, 0, log->bufPtr, in WriteCoreLog() 187 *fwr_pda = rf_AllocPDAList(raidPtr, 1); in WriteCoreLog() 189 rf_MapLogParityLogging(raidPtr, regionID, regionOffset, in WriteCoreLog() 192 (*fwr_pda)->numSector = raidPtr->numSectorsPerLog; in WriteCoreLog() [all …]
|
H A D | rf_netbsdkintf.c | 183 static int raiddoaccess(RF_Raid_t *raidPtr, struct buf *bp); 184 static int rf_get_component_caches(RF_Raid_t *raidPtr, int *); 261 void *raidPtr; member 299 static void rf_RewriteParityThread(RF_Raid_t *raidPtr); 847 RF_Raid_t *raidPtr; in raid_dumpblocks() local 851 raidPtr = &rs->sc_r; in raid_dumpblocks() 854 if (raidPtr->Layout.numDataCol != 1 || in raid_dumpblocks() 855 raidPtr->Layout.numParityCol != 1) in raid_dumpblocks() 873 for (c = 0; c < raidPtr->numCol; c++) { in raid_dumpblocks() 874 if (raidPtr in raid_dumpblocks() 1060 raid_wakeup(RF_Raid_t * raidPtr) raid_wakeup() argument 1073 RF_Raid_t *raidPtr; raidstrategy() local 1106 RF_Raid_t *raidPtr; raid_diskstart() local 1121 raiddone(RF_Raid_t * raidPtr,struct buf * bp) raiddone() argument 1177 RF_Raid_t *raidPtr; raid_detach_unlocked() local 1211 rf_fail_disk(RF_Raid_t * raidPtr,struct rf_recon_req * rr) rf_fail_disk() argument 1326 RF_Raid_t *raidPtr = &rs->sc_r; rf_construct() local 1400 rf_set_component_label(RF_Raid_t * raidPtr,RF_ComponentLabel_t * clabel) rf_set_component_label() argument 1438 rf_init_component_label(RF_Raid_t * raidPtr,RF_ComponentLabel_t * clabel) rf_init_component_label() argument 1471 rf_rebuild_in_place(RF_Raid_t * raidPtr,RF_SingleComponent_t * componentPtr) rf_rebuild_in_place() argument 1539 rf_check_recon_status(RF_Raid_t * raidPtr,int * data) rf_check_recon_status() argument 1579 RF_Raid_t *raidPtr; raidioctl() local 1940 RF_Raid_t *raidPtr = &rs->sc_r; raidinit() local 2034 raidstart(RF_Raid_t * raidPtr) raidstart() argument 2061 raiddoaccess(RF_Raid_t * raidPtr,struct buf * bp) raiddoaccess() argument 2366 rf_parity_map_offset(RF_Raid_t * raidPtr) rf_parity_map_offset() argument 2381 rf_parity_map_size(RF_Raid_t * raidPtr) rf_parity_map_size() argument 2394 raidmarkclean(RF_Raid_t * raidPtr,RF_RowCol_t col) raidmarkclean() argument 2406 raidmarkdirty(RF_Raid_t * raidPtr,RF_RowCol_t col) raidmarkdirty() argument 2417 raidfetch_component_label(RF_Raid_t * raidPtr,RF_RowCol_t col) raidfetch_component_label() argument 2428 raidget_component_label(RF_Raid_t * raidPtr,RF_RowCol_t col) raidget_component_label() argument 2434 raidflush_component_label(RF_Raid_t * raidPtr,RF_RowCol_t col) raidflush_component_label() argument 2590 rf_paritymap_kern_write(RF_Raid_t * raidPtr,struct rf_paritymap_ondisk * map) rf_paritymap_kern_write() argument 2608 rf_paritymap_kern_read(RF_Raid_t * raidPtr,struct rf_paritymap_ondisk * map) rf_paritymap_kern_read() argument 2633 rf_markalldirty(RF_Raid_t * raidPtr) rf_markalldirty() argument 2695 rf_update_component_labels(RF_Raid_t * raidPtr,int final) rf_update_component_labels() argument 2774 rf_close_component(RF_Raid_t * raidPtr,struct vnode * vp,int auto_configured) rf_close_component() argument 2791 rf_UnconfigureVnodes(RF_Raid_t * raidPtr) rf_UnconfigureVnodes() argument 2822 RF_Raid_t *raidPtr; rf_ReconThread() local 2849 rf_RewriteParityThread(RF_Raid_t * raidPtr) rf_RewriteParityThread() argument 2885 RF_Raid_t *raidPtr; rf_ReconstructInPlaceThread() local 3495 rf_create_configuration(RF_AutoConfig_t * ac,RF_Config_t * config,RF_Raid_t * raidPtr) rf_create_configuration() argument 3528 rf_set_autoconfig(RF_Raid_t * raidPtr,int new_value) rf_set_autoconfig() argument 3556 rf_set_rootpartition(RF_Raid_t * raidPtr,int new_value) rf_set_rootpartition() argument 3623 raid_init_component_label(RF_Raid_t * raidPtr,RF_ComponentLabel_t * clabel) raid_init_component_label() argument 3659 RF_Raid_t *raidPtr; rf_auto_config_set() local 3729 rf_pool_init(RF_Raid_t * raidPtr,char * w_chan,struct pool * p,size_t size,const char * pool_name,size_t xmin,size_t xmax) rf_pool_init() argument 3750 rf_buf_queue_check(RF_Raid_t * raidPtr) rf_buf_queue_check() argument 3826 rf_set_geometry(struct raid_softc * rs,RF_Raid_t * raidPtr) rf_set_geometry() argument 3848 rf_get_component_caches(RF_Raid_t * raidPtr,int * data) rf_get_component_caches() argument 3891 rf_sync_component_cache(RF_Raid_t * raidPtr,int c,int force) rf_sync_component_cache() argument 3906 rf_sync_component_caches(RF_Raid_t * raidPtr,int force) rf_sync_component_caches() argument 3935 rf_check_recon_status_ext(RF_Raid_t * raidPtr,RF_ProgressInfo_t * info) rf_check_recon_status_ext() argument 3952 rf_check_parityrewrite_status_ext(RF_Raid_t * raidPtr,RF_ProgressInfo_t * info) rf_check_parityrewrite_status_ext() argument 3969 rf_check_copyback_status_ext(RF_Raid_t * raidPtr,RF_ProgressInfo_t * info) rf_check_copyback_status_ext() argument 3980 rf_get_info(RF_Raid_t * raidPtr,RF_DeviceConfig_t * config) rf_get_info() argument 4010 rf_get_component_label(RF_Raid_t * raidPtr,void * data) rf_get_component_label() argument [all...] |
H A D | rf_engine.c | 94 RF_Raid_t *raidPtr; in rf_ShutdownEngine() local 96 raidPtr = (RF_Raid_t *) arg; in rf_ShutdownEngine() 99 rf_lock_mutex2(raidPtr->iodone_lock); in rf_ShutdownEngine() 101 raidPtr->shutdown_raidio = 1; in rf_ShutdownEngine() 102 rf_signal_cond2(raidPtr->iodone_cv); in rf_ShutdownEngine() 105 while (raidPtr->shutdown_raidio) in rf_ShutdownEngine() 106 rf_wait_cond2(raidPtr->iodone_cv, raidPtr->iodone_lock); in rf_ShutdownEngine() 108 rf_unlock_mutex2(raidPtr->iodone_lock); in rf_ShutdownEngine() 111 DO_LOCK(raidPtr); in rf_ShutdownEngine() 112 raidPtr->shutdown_engine = 1; in rf_ShutdownEngine() [all …]
|
H A D | rf_raid5_rotatedspare.c | 59 RF_Raid_t * raidPtr, in rf_ConfigureRAID5_RS() argument 62 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureRAID5_RS() 67 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureRAID5_RS() 72 RF_ASSERT(raidPtr->numCol >= 3); in rf_ConfigureRAID5_RS() 76 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, raidPtr->numCol, raidPtr->cleanupList); in rf_ConfigureRAID5_RS() 80 for (i = 0; i < raidPtr->numCol; i++) { in rf_ConfigureRAID5_RS() 81 for (j = 0; j < raidPtr->numCol; j++) { in rf_ConfigureRAID5_RS() 82 info->stripeIdentifier[i][j] = (startdisk + j) % raidPtr->numCol; in rf_ConfigureRAID5_RS() 85 startdisk = raidPtr->numCol - 1; in rf_ConfigureRAID5_RS() 90 layoutPtr->numDataCol = raidPtr->numCol - 2; in rf_ConfigureRAID5_RS() [all …]
|
H A D | rf_dagutils.c | 102 RF_Raid_t *raidPtr; in rf_InitNode() local 127 raidPtr = hdr->raidPtr; in rf_InitNode() 146 node->big_dag_ptrs = rf_AllocDAGPCache(raidPtr); in rf_InitNode() 160 node->big_dag_params = rf_AllocDAGPCache(raidPtr); in rf_InitNode() 186 RF_Raid_t *raidPtr; in rf_FreeDAG() local 189 raidPtr = dag_h->raidPtr; in rf_FreeDAG() 197 rf_FreeAccessStripeMap(raidPtr, t_asmap); in rf_FreeDAG() 202 rf_FreePhysDiskAddr(raidPtr, pda); in rf_FreeDAG() 207 rf_FreeDAGNode(raidPtr, tmpnode); in rf_FreeDAG() 209 rf_FreeDAGHeader(raidPtr, dag_h); in rf_FreeDAG() [all …]
|
H A D | rf_map.c | 46 static void rf_FreePDAList(RF_Raid_t *raidPtr, RF_PhysDiskAddr_t *pda_list); 47 static void rf_FreeASMList(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asm_list); 79 rf_MapAccess(RF_Raid_t *raidPtr, RF_RaidAddr_t raidAddress, in rf_MapAccess() argument 82 RF_RaidLayout_t *layoutPtr = &(raidPtr->Layout); in rf_MapAccess() 89 RF_RaidDisk_t *disks = raidPtr->Disks; in rf_MapAccess() 111 asmList = rf_AllocASMList(raidPtr, totStripes); in rf_MapAccess() 114 pdaList = rf_AllocPDAList(raidPtr, lastSUID - SUID + 1 + in rf_MapAccess() 118 if (raidAddress + numBlocks > raidPtr->totalSectors) { in rf_MapAccess() 125 rf_PrintRaidAddressInfo(raidPtr, raidAddress, numBlocks); in rf_MapAccess() 169 (layoutPtr->map->MapSector) (raidPtr, raidAddress, in rf_MapAccess() [all …]
|
H A D | rf_reconutil.c | 60 RF_Raid_t *raidPtr = reconDesc->raidPtr; in rf_MakeReconControl() local 61 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_MakeReconControl() 72 lp = raidPtr->Layout.map; in rf_MakeReconControl() 79 reconCtrlPtr->perDiskInfo = RF_Malloc(raidPtr->numCol * in rf_MakeReconControl() 90 for (i = 0; i < raidPtr->numCol; i++) { in rf_MakeReconControl() 102 numSpareRUs = lp->GetNumSpareRUs(raidPtr); in rf_MakeReconControl() 112 retcode = rf_InstallSpareTable(raidPtr, fcol); in rf_MakeReconControl() 119 …reconCtrlPtr->reconMap = rf_MakeReconMap(raidPtr, (int) (layoutPtr->SUsPerRU * layoutPtr->sectorsP… in rf_MakeReconControl() 120 raidPtr->sectorsPerDisk, numSpareRUs); in rf_MakeReconControl() 123 for (i = 0; i < raidPtr->numCol; i++) { in rf_MakeReconControl() [all …]
|
H A D | rf_raid5.c | 58 rf_ConfigureRAID5(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureRAID5() argument 61 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureRAID5() 66 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureRAID5() 73 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, raidPtr->numCol, raidPtr->cleanupList); in rf_ConfigureRAID5() 77 for (i = 0; i < raidPtr->numCol; i++) { in rf_ConfigureRAID5() 78 for (j = 0; j < raidPtr->numCol; j++) { in rf_ConfigureRAID5() 79 info->stripeIdentifier[i][j] = (startdisk + j) % raidPtr->numCol; in rf_ConfigureRAID5() 82 startdisk = raidPtr->numCol - 1; in rf_ConfigureRAID5() 87 layoutPtr->numDataCol = raidPtr->numCol - 1; in rf_ConfigureRAID5() 92 …raidPtr->totalSectors = layoutPtr->stripeUnitsPerDisk * layoutPtr->numDataCol * layoutPtr->sectors… in rf_ConfigureRAID5() [all …]
|
H A D | rf_raid1.c | 61 rf_ConfigureRAID1(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureRAID1() argument 64 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureRAID1() 69 if (raidPtr->numCol < 2 || raidPtr->numCol % 2 != 0) { in rf_ConfigureRAID1() 74 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureRAID1() 80 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol / 2, 2, raidPtr->cleanupList); in rf_ConfigureRAID1() 83 for (i = 0; i < (raidPtr->numCol / 2); i++) { in rf_ConfigureRAID1() 92 …raidPtr->totalSectors = layoutPtr->stripeUnitsPerDisk * (raidPtr->numCol / 2) * layoutPtr->sectors… in rf_ConfigureRAID1() 93 layoutPtr->numStripe = layoutPtr->stripeUnitsPerDisk * (raidPtr->numCol / 2); in rf_ConfigureRAID1() 103 rf_MapSectorRAID1(RF_Raid_t *raidPtr, RF_RaidAddr_t raidSector, in rf_MapSectorRAID1() argument 107 RF_StripeNum_t SUID = raidSector / raidPtr->Layout.sectorsPerStripeUnit; in rf_MapSectorRAID1() [all …]
|
H A D | rf_raid4.c | 57 rf_ConfigureRAID4(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureRAID4() argument 60 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureRAID4() 65 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureRAID4() 71 info->stripeIdentifier = RF_MallocAndAdd(raidPtr->numCol * in rf_ConfigureRAID4() 72 sizeof(*info->stripeIdentifier), raidPtr->cleanupList); in rf_ConfigureRAID4() 75 for (i = 0; i < raidPtr->numCol; i++) in rf_ConfigureRAID4() 80 layoutPtr->numDataCol = raidPtr->numCol - 1; in rf_ConfigureRAID4() 83 …raidPtr->totalSectors = layoutPtr->stripeUnitsPerDisk * layoutPtr->numDataCol * layoutPtr->sectors… in rf_ConfigureRAID4() 89 rf_GetDefaultNumFloatingReconBuffersRAID4(RF_Raid_t *raidPtr) in rf_GetDefaultNumFloatingReconBuffersRAID4() argument 95 rf_GetDefaultHeadSepLimitRAID4(RF_Raid_t *raidPtr) in rf_GetDefaultHeadSepLimitRAID4() argument [all …]
|
H A D | rf_callback.c | 58 RF_Raid_t *raidPtr; in rf_ShutdownCallback() local 60 raidPtr = (RF_Raid_t *) arg; in rf_ShutdownCallback() 62 pool_destroy(&raidPtr->pools.callbackf); in rf_ShutdownCallback() 63 pool_destroy(&raidPtr->pools.callbackv); in rf_ShutdownCallback() 67 rf_ConfigureCallback(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureCallback() argument 71 …rf_pool_init(raidPtr, raidPtr->poolNames.callbackf, &raidPtr->pools.callbackf, sizeof(RF_CallbackF… in rf_ConfigureCallback() 73 …rf_pool_init(raidPtr, raidPtr->poolNames.callbackv, &raidPtr->pools.callbackv, sizeof(RF_CallbackV… in rf_ConfigureCallback() 75 rf_ShutdownCreate(listp, rf_ShutdownCallback, raidPtr); in rf_ConfigureCallback() 81 rf_AllocCallbackFuncDesc(RF_Raid_t *raidPtr) in rf_AllocCallbackFuncDesc() argument 83 return pool_get(&raidPtr->pools.callbackf, PR_WAITOK); in rf_AllocCallbackFuncDesc() [all …]
|
H A D | rf_evenodd.c | 70 rf_ConfigureEvenOdd(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureEvenOdd() argument 73 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureEvenOdd() 77 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureEvenOdd() 80 info->stripeIdentifier = rf_make_2d_array(raidPtr->numCol, raidPtr->numCol, raidPtr->cleanupList); in rf_ConfigureEvenOdd() 82 for (i = 0; i < raidPtr->numCol; i++) { in rf_ConfigureEvenOdd() 83 for (j = 0; j < raidPtr->numCol; j++) { in rf_ConfigureEvenOdd() 84 info->stripeIdentifier[i][j] = (startdisk + j) % raidPtr->numCol; in rf_ConfigureEvenOdd() 87 startdisk += raidPtr->numCol; in rf_ConfigureEvenOdd() 92 layoutPtr->numDataCol = raidPtr->numCol - 2; /* ORIG: in rf_ConfigureEvenOdd() 96 if (raidPtr->numCol <= 17) { in rf_ConfigureEvenOdd() [all …]
|
H A D | rf_psstatus.c | 61 RealPrintPSStatusTable(RF_Raid_t * raidPtr, 72 RF_Raid_t *raidPtr; in rf_ShutdownPSStatus() local 74 raidPtr = (RF_Raid_t *) arg; in rf_ShutdownPSStatus() 76 pool_destroy(&raidPtr->pools.pss); in rf_ShutdownPSStatus() 80 rf_ConfigurePSStatus(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigurePSStatus() argument 84 …rf_pool_init(raidPtr, raidPtr->poolNames.pss, &raidPtr->pools.pss, sizeof(RF_ReconParityStripeStat… in rf_ConfigurePSStatus() 86 rf_ShutdownCreate(listp, rf_ShutdownPSStatus, raidPtr); in rf_ConfigurePSStatus() 92 rf_InitPSStatus(RF_Raid_t *raidPtr) in rf_InitPSStatus() argument 94 raidPtr->pssTableSize = RF_PSS_DEFAULT_TABLESIZE; in rf_InitPSStatus() 104 rf_MakeParityStripeStatusTable(RF_Raid_t *raidPtr) in rf_MakeParityStripeStatusTable() argument [all …]
|
H A D | rf_diskqueue.c | 168 rf_ConfigureDiskQueue(RF_Raid_t *raidPtr, RF_DiskQueue_t *diskqueue, in rf_ConfigureDiskQueue() argument 183 diskqueue->raidPtr = raidPtr; in rf_ConfigureDiskQueue() 184 diskqueue->rf_cinfo = &raidPtr->raid_cinfo[c]; in rf_ConfigureDiskQueue() 200 RF_Raid_t *raidPtr; in rf_ShutdownDiskQueueSystem() local 202 raidPtr = (RF_Raid_t *) arg; in rf_ShutdownDiskQueueSystem() 204 pool_destroy(&raidPtr->pools.dqd); in rf_ShutdownDiskQueueSystem() 205 pool_destroy(&raidPtr->pools.bufio); in rf_ShutdownDiskQueueSystem() 209 rf_ConfigureDiskQueueSystem(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureDiskQueueSystem() argument 214 rf_pool_init(raidPtr, raidPtr->poolNames.dqd, &raidPtr->pools.dqd, sizeof(RF_DiskQueueData_t), in rf_ConfigureDiskQueueSystem() 216 rf_pool_init(raidPtr, raidPtr->poolNames.bufio, &raidPtr->pools.bufio, sizeof(buf_t), in rf_ConfigureDiskQueueSystem() [all …]
|
H A D | rf_parityscan.c | 65 rf_RewriteParity(RF_Raid_t *raidPtr) in rf_RewriteParity() argument 67 if (raidPtr->parity_map != NULL) in rf_RewriteParity() 68 return rf_paritymap_rewrite(raidPtr->parity_map); in rf_RewriteParity() 70 return rf_RewriteParityRange(raidPtr, 0, raidPtr->totalSectors); in rf_RewriteParity() 74 rf_RewriteParityRange(RF_Raid_t *raidPtr, RF_SectorNum_t sec_begin, in rf_RewriteParityRange() argument 81 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_RewriteParityRange() 87 if (raidPtr->Layout.map->faultsTolerated == 0) { in rf_RewriteParityRange() 91 if (raidPtr->status != rf_rs_optimal) { in rf_RewriteParityRange() 107 if (raidPtr->waitShutdown) { in rf_RewriteParityRange() 112 asm_h = rf_MapAccess(raidPtr, i, in rf_RewriteParityRange() [all …]
|
H A D | rf_states.c | 104 int unit = desc->raidPtr->raidid; in rf_ContinueRaidAccess() 201 desc->raidPtr->raidid, desc->type, in rf_ContinueDagAccess() 222 if (desc->raidPtr->parity_map != NULL && in rf_State_LastState() 224 rf_paritymap_end(desc->raidPtr->parity_map, in rf_State_LastState() 228 raiddone(desc->raidPtr, desc->bp); /* access came through ioctl */ in rf_State_LastState() 240 RF_Raid_t *raidPtr; in rf_State_IncrAccessCount() local 242 raidPtr = desc->raidPtr; in rf_State_IncrAccessCount() 245 rf_lock_mutex2(raidPtr->access_suspend_mutex); in rf_State_IncrAccessCount() 246 raidPtr->accs_in_flight++; /* used to detect quiescence */ in rf_State_IncrAccessCount() 247 rf_unlock_mutex2(raidPtr->access_suspend_mutex); in rf_State_IncrAccessCount() [all …]
|
H A D | rf_reconbuffer.c | 108 lp = rbuf->raidPtr->Layout.map; in rf_SubmitReconBuffer() 122 RF_Raid_t *raidPtr = rbuf->raidPtr; in rf_SubmitReconBufferBasic() local 123 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_SubmitReconBufferBasic() 124 RF_ReconCtrl_t *reconCtrlPtr = raidPtr->reconControl; in rf_SubmitReconBufferBasic() 141 RF_LOCK_PSS_MUTEX(raidPtr, rbuf->parityStripeID); in rf_SubmitReconBufferBasic() 150 …pssPtr = rf_LookupRUStatus(raidPtr, reconCtrlPtr->pssTable, rbuf->parityStripeID, rbuf->which_ru, … in rf_SubmitReconBufferBasic() 168 rf_MultiWayReconXor(raidPtr, pssPtr); in rf_SubmitReconBufferBasic() 171 raidPtr->accumXorTimeUs += RF_ETIMER_VAL_US(timer); in rf_SubmitReconBufferBasic() 174 raidPtr->recon_tracerecs[rbuf->col].xor_us = RF_ETIMER_VAL_US(timer); in rf_SubmitReconBufferBasic() 175 RF_ETIMER_STOP(raidPtr->recon_tracerecs[rbuf->col].recon_timer); in rf_SubmitReconBufferBasic() [all …]
|
H A D | rf_raid0.c | 55 rf_ConfigureRAID0(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, in rf_ConfigureRAID0() argument 58 RF_RaidLayout_t *layoutPtr = &raidPtr->Layout; in rf_ConfigureRAID0() 63 info = RF_MallocAndAdd(sizeof(*info), raidPtr->cleanupList); in rf_ConfigureRAID0() 68 info->stripeIdentifier = RF_MallocAndAdd(raidPtr->numCol in rf_ConfigureRAID0() 69 * sizeof(*info->stripeIdentifier), raidPtr->cleanupList); in rf_ConfigureRAID0() 72 for (i = 0; i < raidPtr->numCol; i++) in rf_ConfigureRAID0() 75 …raidPtr->totalSectors = layoutPtr->stripeUnitsPerDisk * raidPtr->numCol * layoutPtr->sectorsPerStr… in rf_ConfigureRAID0() 77 layoutPtr->dataSectorsPerStripe = raidPtr->numCol * layoutPtr->sectorsPerStripeUnit; in rf_ConfigureRAID0() 78 layoutPtr->numDataCol = raidPtr->numCol; in rf_ConfigureRAID0() 84 rf_MapSectorRAID0(RF_Raid_t *raidPtr, RF_RaidAddr_t raidSector, in rf_MapSectorRAID0() argument [all …]
|