Move pss_pool to rf_pools. Will save a bit of extra memory at
run-time, and we can only do one reconstruction at a time anyway. Nuke pss_issued_pool - move it to an internal structure in pss.
This commit is contained in:
parent
8cbd53826e
commit
bce42a3095
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: rf_netbsd.h,v 1.14 2004/03/07 22:15:19 oster Exp $ */
|
/* $NetBSD: rf_netbsd.h,v 1.15 2004/03/08 02:25:27 oster Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
|
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
|
||||||
|
@ -74,6 +74,8 @@ struct RF_Pools_s {
|
||||||
struct pool funclist; /* Function Lists */
|
struct pool funclist; /* Function Lists */
|
||||||
struct pool mcpair; /* Mutex/Cond Pairs */
|
struct pool mcpair; /* Mutex/Cond Pairs */
|
||||||
struct pool pda; /* Physical Disk Access structures */
|
struct pool pda; /* Physical Disk Access structures */
|
||||||
|
struct pool pss; /* Parity Stripe Status */
|
||||||
|
struct pool pss_issued; /* Parity Stripe Status Issued */
|
||||||
struct pool rad; /* Raid Access Descriptors */
|
struct pool rad; /* Raid Access Descriptors */
|
||||||
struct pool recond; /* reconstruction descriptors */
|
struct pool recond; /* reconstruction descriptors */
|
||||||
struct pool reconbuffer; /* reconstruction buffer (header) pool */
|
struct pool reconbuffer; /* reconstruction buffer (header) pool */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: rf_psstatus.c,v 1.26 2004/03/07 22:15:19 oster Exp $ */
|
/* $NetBSD: rf_psstatus.c,v 1.27 2004/03/08 02:25:27 oster Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1995 Carnegie-Mellon University.
|
* Copyright (c) 1995 Carnegie-Mellon University.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: rf_psstatus.c,v 1.26 2004/03/07 22:15:19 oster Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: rf_psstatus.c,v 1.27 2004/03/08 02:25:27 oster Exp $");
|
||||||
|
|
||||||
#include <dev/raidframe/raidframevar.h>
|
#include <dev/raidframe/raidframevar.h>
|
||||||
|
|
||||||
|
@ -69,10 +69,8 @@ static void rf_ShutdownPSStatus(void *);
|
||||||
static void
|
static void
|
||||||
rf_ShutdownPSStatus(void *arg)
|
rf_ShutdownPSStatus(void *arg)
|
||||||
{
|
{
|
||||||
RF_Raid_t *raidPtr = (RF_Raid_t *) arg;
|
|
||||||
|
|
||||||
pool_destroy(&raidPtr->pss_pool);
|
pool_destroy(&rf_pools.pss);
|
||||||
pool_destroy(&raidPtr->pss_issued_pool);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -81,10 +79,8 @@ rf_ConfigurePSStatus(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr,
|
||||||
{
|
{
|
||||||
|
|
||||||
raidPtr->pssTableSize = RF_PSS_DEFAULT_TABLESIZE;
|
raidPtr->pssTableSize = RF_PSS_DEFAULT_TABLESIZE;
|
||||||
rf_pool_init(&raidPtr->pss_pool, sizeof(RF_ReconParityStripeStatus_t),
|
rf_pool_init(&rf_pools.pss, sizeof(RF_ReconParityStripeStatus_t),
|
||||||
"raidpsspl", RF_MIN_FREE_PSS, RF_MAX_FREE_PSS);
|
"raidpsspl", RF_MIN_FREE_PSS, RF_MAX_FREE_PSS);
|
||||||
rf_pool_init(&raidPtr->pss_issued_pool, raidPtr->numCol * sizeof(char),
|
|
||||||
"raidpssissuedpl", RF_MIN_FREE_PSS, RF_MAX_FREE_PSS);
|
|
||||||
rf_ShutdownCreate(listp, rf_ShutdownPSStatus, raidPtr);
|
rf_ShutdownCreate(listp, rf_ShutdownPSStatus, raidPtr);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
|
@ -257,10 +253,8 @@ rf_AllocPSStatus(RF_Raid_t *raidPtr)
|
||||||
{
|
{
|
||||||
RF_ReconParityStripeStatus_t *p;
|
RF_ReconParityStripeStatus_t *p;
|
||||||
|
|
||||||
p = pool_get(&raidPtr->pss_pool, PR_WAITOK);
|
p = pool_get(&rf_pools.pss, PR_WAITOK);
|
||||||
memset(p, 0, sizeof(RF_ReconParityStripeStatus_t));
|
memset(p, 0, sizeof(RF_ReconParityStripeStatus_t));
|
||||||
p->issued = pool_get(&raidPtr->pss_issued_pool, PR_WAITOK);
|
|
||||||
memset(p->issued, 0, raidPtr->numCol);
|
|
||||||
return (p);
|
return (p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,8 +265,7 @@ rf_FreePSStatus(RF_Raid_t *raidPtr, RF_ReconParityStripeStatus_t *p)
|
||||||
RF_ASSERT(p->blockWaitList == NULL);
|
RF_ASSERT(p->blockWaitList == NULL);
|
||||||
RF_ASSERT(p->bufWaitList == NULL);
|
RF_ASSERT(p->bufWaitList == NULL);
|
||||||
|
|
||||||
pool_put(&raidPtr->pss_issued_pool, p->issued);
|
pool_put(&rf_pools.pss, p);
|
||||||
pool_put(&raidPtr->pss_pool, p);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: rf_psstatus.h,v 1.7 2004/03/03 00:58:03 oster Exp $ */
|
/* $NetBSD: rf_psstatus.h,v 1.8 2004/03/08 02:25:27 oster Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1995 Carnegie-Mellon University.
|
* Copyright (c) 1995 Carnegie-Mellon University.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
@ -73,7 +73,7 @@ struct RF_ReconParityStripeStatus_s {
|
||||||
int xorBufCount; /* num buffers waiting to be xored */
|
int xorBufCount; /* num buffers waiting to be xored */
|
||||||
int blockCount; /* count of # proc that have blocked recon on
|
int blockCount; /* count of # proc that have blocked recon on
|
||||||
* this parity stripe */
|
* this parity stripe */
|
||||||
char *issued; /* issued[i]==1 <=> column i has already
|
char issued[RF_MAXCOL]; /* issued[i]==1 <=> column i has already
|
||||||
* issued a read request for the indicated RU */
|
* issued a read request for the indicated RU */
|
||||||
RF_CallbackDesc_t *procWaitList; /* list of user procs waiting
|
RF_CallbackDesc_t *procWaitList; /* list of user procs waiting
|
||||||
* for recon to be done */
|
* for recon to be done */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: rf_raid.h,v 1.28 2004/03/08 01:59:26 oster Exp $ */
|
/* $NetBSD: rf_raid.h,v 1.29 2004/03/08 02:25:27 oster Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1995 Carnegie-Mellon University.
|
* Copyright (c) 1995 Carnegie-Mellon University.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
@ -229,8 +229,6 @@ struct RF_Raid_s {
|
||||||
* PSS (Parity Stripe Status) stuff
|
* PSS (Parity Stripe Status) stuff
|
||||||
*/
|
*/
|
||||||
long pssTableSize;
|
long pssTableSize;
|
||||||
struct pool pss_pool;
|
|
||||||
struct pool pss_issued_pool;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reconstruction stuff
|
* Reconstruction stuff
|
||||||
|
|
Loading…
Reference in New Issue