From 8150ff6fbdcc3c2c10197b4add331d39ba7a53c3 Mon Sep 17 00:00:00 2001 From: oster Date: Sat, 13 Mar 2004 02:00:15 +0000 Subject: - don't use rf_PrintUserStats() for recon statistics. rf_PrintUserStats() was mean for the simulator, and doesn't provide any real info in kernel-space, especially for reconstructs. Reconstructing actually renders the stats even more useless, since it resets them all to zero before the reconstruct starts! - since rf_PrintUserStats() is no longer used, nuke it along with the routines that feed it. Nothing was using this code, and if we ever need it again, we know where to find it. --- sys/dev/raidframe/rf_driver.c | 135 +------------------------------------ sys/dev/raidframe/rf_driver.h | 7 +- sys/dev/raidframe/rf_raid.h | 6 +- sys/dev/raidframe/rf_reconstruct.c | 10 +-- sys/dev/raidframe/rf_states.c | 5 +- 5 files changed, 8 insertions(+), 155 deletions(-) (limited to 'sys/dev/raidframe') diff --git a/sys/dev/raidframe/rf_driver.c b/sys/dev/raidframe/rf_driver.c index cab87815066..115e87dd3be 100644 --- a/sys/dev/raidframe/rf_driver.c +++ b/sys/dev/raidframe/rf_driver.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_driver.c,v 1.93 2004/03/09 02:41:21 oster Exp $ */ +/* $NetBSD: rf_driver.c,v 1.94 2004/03/13 02:00:15 oster Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. * All rights reserved. @@ -73,7 +73,7 @@ #include -__KERNEL_RCSID(0, "$NetBSD: rf_driver.c,v 1.93 2004/03/09 02:41:21 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_driver.c,v 1.94 2004/03/13 02:00:15 oster Exp $"); #include "opt_raid_diagnostic.h" @@ -392,7 +392,6 @@ rf_Configure(RF_Raid_t *raidPtr, RF_Config_t *cfgPtr, RF_AutoConfig_t *ac) if (rf_keepAccTotals) { raidPtr->keep_acc_totals = 1; } - rf_StartUserStats(raidPtr); raidPtr->valid = 1; @@ -749,136 +748,6 @@ rf_ConfigureDebug(RF_Config_t *cfgPtr) set_debug_option(name_p, val); } } -/* performance monitoring stuff */ - -#define TIMEVAL_TO_US(t) (((long) t.tv_sec) * 1000000L + (long) t.tv_usec) - -#if !defined(_KERNEL) && !defined(SIMULATE) - -/* - * Throughput stats currently only used in user-level RAIDframe - */ - -static int -rf_InitThroughputStats(RF_ShutdownList_t **listp, RF_Raid_t *raidPtr, - RF_Config_t *cfgPtr) -{ - int rc; - - /* these used by user-level raidframe only */ - rf_mutex_init(&raidPtr->throughputstats.mutex); - raidPtr->throughputstats.sum_io_us = 0; - raidPtr->throughputstats.num_ios = 0; - raidPtr->throughputstats.num_out_ios = 0; - return (0); -} - -void -rf_StartThroughputStats(RF_Raid_t *raidPtr) -{ - RF_LOCK_MUTEX(raidPtr->throughputstats.mutex); - raidPtr->throughputstats.num_ios++; - raidPtr->throughputstats.num_out_ios++; - if (raidPtr->throughputstats.num_out_ios == 1) - RF_GETTIME(raidPtr->throughputstats.start); - RF_UNLOCK_MUTEX(raidPtr->throughputstats.mutex); -} - -static void -rf_StopThroughputStats(RF_Raid_t *raidPtr) -{ - struct timeval diff; - - RF_LOCK_MUTEX(raidPtr->throughputstats.mutex); - raidPtr->throughputstats.num_out_ios--; - if (raidPtr->throughputstats.num_out_ios == 0) { - RF_GETTIME(raidPtr->throughputstats.stop); - RF_TIMEVAL_DIFF(&raidPtr->throughputstats.start, &raidPtr->throughputstats.stop, &diff); - raidPtr->throughputstats.sum_io_us += TIMEVAL_TO_US(diff); - } - RF_UNLOCK_MUTEX(raidPtr->throughputstats.mutex); -} - -static void -rf_PrintThroughputStats(RF_Raid_t *raidPtr) -{ - RF_ASSERT(raidPtr->throughputstats.num_out_ios == 0); - if (raidPtr->throughputstats.sum_io_us != 0) { - printf("[Througphut: %8.2f IOs/second]\n", raidPtr->throughputstats.num_ios - / (raidPtr->throughputstats.sum_io_us / 1000000.0)); - } -} -#endif /* !KERNEL && !SIMULATE */ - -void -rf_StartUserStats(RF_Raid_t *raidPtr) -{ - RF_GETTIME(raidPtr->userstats.start); - raidPtr->userstats.sum_io_us = 0; - raidPtr->userstats.num_ios = 0; - raidPtr->userstats.num_sect_moved = 0; -} - -void -rf_StopUserStats(RF_Raid_t *raidPtr) -{ - RF_GETTIME(raidPtr->userstats.stop); -} - -/* rt: resp time in us - numsect: number of sectors for this access */ -void -rf_UpdateUserStats(RF_Raid_t *raidPtr, int rt, int numsect) -{ - raidPtr->userstats.sum_io_us += rt; - raidPtr->userstats.num_ios++; - raidPtr->userstats.num_sect_moved += numsect; -} - -void -rf_PrintUserStats(RF_Raid_t *raidPtr) -{ - long elapsed_us, mbs, mbs_frac; - struct timeval diff; - - RF_TIMEVAL_DIFF(&raidPtr->userstats.start, - &raidPtr->userstats.stop, &diff); - elapsed_us = TIMEVAL_TO_US(diff); - - /* 2000 sectors per megabyte, 10000000 microseconds per second */ - if (elapsed_us) - mbs = (raidPtr->userstats.num_sect_moved / 2000) / - (elapsed_us / 1000000); - else - mbs = 0; - - /* this computes only the first digit of the fractional mb/s moved */ - if (elapsed_us) { - mbs_frac = ((raidPtr->userstats.num_sect_moved / 200) / - (elapsed_us / 1000000)) - (mbs * 10); - } else { - mbs_frac = 0; - } - - printf("raid%d: Number of I/Os: %ld\n", - raidPtr->raidid, raidPtr->userstats.num_ios); - printf("raid%d: Elapsed time (us): %ld\n", - raidPtr->raidid, elapsed_us); - printf("raid%d: User I/Os per second: %ld\n", - raidPtr->raidid, RF_DB0_CHECK(raidPtr->userstats.num_ios, - (elapsed_us / 1000000))); - printf("raid%d: Average user response time: %ld us\n", - raidPtr->raidid, RF_DB0_CHECK(raidPtr->userstats.sum_io_us, - raidPtr->userstats.num_ios)); - printf("raid%d: Total sectors moved: %ld\n", - raidPtr->raidid, raidPtr->userstats.num_sect_moved); - printf("raid%d: Average access size (sect): %ld\n", - raidPtr->raidid, RF_DB0_CHECK(raidPtr->userstats.num_sect_moved, - raidPtr->userstats.num_ios)); - printf("raid%d: Achieved data rate: %ld.%ld MB/sec\n", - raidPtr->raidid, mbs, mbs_frac); -} - void rf_print_panic_message(int line, char *file) diff --git a/sys/dev/raidframe/rf_driver.h b/sys/dev/raidframe/rf_driver.h index 8882fd85a5e..8eef8c47a13 100644 --- a/sys/dev/raidframe/rf_driver.h +++ b/sys/dev/raidframe/rf_driver.h @@ -1,4 +1,4 @@ -/* $NetBSD: rf_driver.h,v 1.9 2003/12/29 02:38:17 oster Exp $ */ +/* $NetBSD: rf_driver.h,v 1.10 2004/03/13 02:00:15 oster Exp $ */ /* * rf_driver.h */ @@ -63,10 +63,5 @@ int rf_FailDisk(RF_Raid_t * raidPtr, RF_RowCol_t fcol, int initRecon); void rf_SignalQuiescenceLock(RF_Raid_t * raidPtr); int rf_SuspendNewRequestsAndWait(RF_Raid_t * raidPtr); void rf_ResumeNewRequests(RF_Raid_t * raidPtr); -void rf_StartThroughputStats(RF_Raid_t * raidPtr); -void rf_StartUserStats(RF_Raid_t * raidPtr); -void rf_StopUserStats(RF_Raid_t * raidPtr); -void rf_UpdateUserStats(RF_Raid_t * raidPtr, int rt, int numsect); -void rf_PrintUserStats(RF_Raid_t * raidPtr); #endif /* !_RF__RF_DRIVER_H_ */ diff --git a/sys/dev/raidframe/rf_raid.h b/sys/dev/raidframe/rf_raid.h index 45da8a6ddec..c99449f94eb 100644 --- a/sys/dev/raidframe/rf_raid.h +++ b/sys/dev/raidframe/rf_raid.h @@ -1,4 +1,4 @@ -/* $NetBSD: rf_raid.h,v 1.29 2004/03/08 02:25:27 oster Exp $ */ +/* $NetBSD: rf_raid.h,v 1.30 2004/03/13 02:00:15 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -198,10 +198,6 @@ struct RF_Raid_s { /* * Statistics */ -#if !defined(_KERNEL) && !defined(SIMULATE) - RF_ThroughputStats_t throughputstats; -#endif /* !KERNEL && !SIMULATE */ - RF_CumulativeStats_t userstats; int parity_rewrite_stripes_done; int recon_stripes_done; int copyback_stripes_done; diff --git a/sys/dev/raidframe/rf_reconstruct.c b/sys/dev/raidframe/rf_reconstruct.c index 60b6af7deac..ac09af7bf4d 100644 --- a/sys/dev/raidframe/rf_reconstruct.c +++ b/sys/dev/raidframe/rf_reconstruct.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_reconstruct.c,v 1.74 2004/03/07 22:15:19 oster Exp $ */ +/* $NetBSD: rf_reconstruct.c,v 1.75 2004/03/13 02:00:15 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -33,7 +33,7 @@ ************************************************************/ #include -__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.74 2004/03/07 22:15:19 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.75 2004/03/13 02:00:15 oster Exp $"); #include #include @@ -582,8 +582,6 @@ rf_ContinueReconstructFailedDisk(RF_RaidReconDesc_t *reconDesc) Dprintf("RECON: begin request suspend\n"); rf_SuspendNewRequestsAndWait(raidPtr); Dprintf("RECON: end request suspend\n"); - rf_StartUserStats(raidPtr); /* zero out the stats kept on - * user accs */ /* fall through to state 1 */ @@ -694,10 +692,6 @@ rf_ContinueReconstructFailedDisk(RF_RaidReconDesc_t *reconDesc) reconDesc->state = 6; rf_SuspendNewRequestsAndWait(raidPtr); - rf_StopUserStats(raidPtr); - rf_PrintUserStats(raidPtr); /* print out the stats on user - * accs accumulated during - * recon */ /* fall through to state 6 */ case 6: diff --git a/sys/dev/raidframe/rf_states.c b/sys/dev/raidframe/rf_states.c index fd4a0d95fc6..9ab85d1a1b7 100644 --- a/sys/dev/raidframe/rf_states.c +++ b/sys/dev/raidframe/rf_states.c @@ -1,4 +1,4 @@ -/* $NetBSD: rf_states.c,v 1.29 2004/03/02 16:40:10 oster Exp $ */ +/* $NetBSD: rf_states.c,v 1.30 2004/03/13 02:00:15 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: rf_states.c,v 1.29 2004/03/02 16:40:10 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_states.c,v 1.30 2004/03/13 02:00:15 oster Exp $"); #include @@ -276,7 +276,6 @@ rf_State_DecrAccessCount(RF_RaidAccessDesc_t *desc) if (raidPtr->accesses_suspended && raidPtr->accs_in_flight == 0) { rf_SignalQuiescenceLock(raidPtr); } - rf_UpdateUserStats(raidPtr, RF_ETIMER_VAL_US(desc->timer), desc->numBlocks); RF_UNLOCK_MUTEX(raidPtr->access_suspend_mutex); desc->state++; -- cgit