summaryrefslogtreecommitdiff
path: root/usr/src/cmd/filebench/common/parser_gram.y
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/filebench/common/parser_gram.y')
-rw-r--r--usr/src/cmd/filebench/common/parser_gram.y24
1 files changed, 23 insertions, 1 deletions
diff --git a/usr/src/cmd/filebench/common/parser_gram.y b/usr/src/cmd/filebench/common/parser_gram.y
index a52f147d70..33a45d179e 100644
--- a/usr/src/cmd/filebench/common/parser_gram.y
+++ b/usr/src/cmd/filebench/common/parser_gram.y
@@ -172,7 +172,7 @@ static void parser_version(cmd_t *cmd);
%token FSC_LIST FSC_DEFINE FSC_EXEC FSC_QUIT FSC_DEBUG FSC_CREATE
%token FSC_SLEEP FSC_STATS FSC_FOREACH FSC_SET FSC_SHUTDOWN FSC_LOG
%token FSC_SYSTEM FSC_FLOWOP FSC_EVENTGEN FSC_ECHO FSC_LOAD FSC_RUN
-%token FSC_WARMUP
+%token FSC_WARMUP FSC_NOUSESTATS
%token FSC_USAGE FSC_HELP FSC_VARS FSC_VERSION FSC_ENABLE FSC_DOMULTISYNC
%token FSV_STRING FSV_VAL_INT FSV_VAL_BOOLEAN FSV_VARIABLE FSV_WHITESTRING
%token FSV_RANDUNI FSV_RANDTAB FSV_RANDVAR FSV_URAND FSV_RAND48
@@ -829,6 +829,13 @@ set_command: FSC_SET FSV_VARIABLE FSK_ASSIGN FSV_VAL_INT
if (($$ = alloc_cmd()) == NULL)
YYERROR;
$$->cmd = NULL;
+} | FSC_SET FSE_MODE FSC_NOUSESTATS
+{
+ filebench_shm->shm_mmode |= FILEBENCH_MODE_NOUSAGE;
+ filebench_log(LOG_INFO, "disabling CPU usage statistics");
+ if (($$ = alloc_cmd()) == NULL)
+ YYERROR;
+ $$->cmd = NULL;
}| FSC_SET FSV_RANDVAR FSS_TYPE FSK_ASSIGN randvar_attr_typop
{
if (($$ = alloc_cmd()) == NULL)
@@ -1051,6 +1058,10 @@ shutdown_command: FSC_SHUTDOWN entity
case FSE_PROC:
$$->cmd = &parser_proc_shutdown;
break;
+ case FSE_FILE:
+ case FSE_FILESET:
+ $$->cmd = &parser_fileset_shutdown;
+ break;
default:
filebench_log(LOG_ERROR, "unknown entity", $2);
YYERROR;
@@ -2918,6 +2929,17 @@ parser_fileset_create(cmd_t *cmd)
}
/*
+ * Deletes the files and directories that represent files and filesets on the
+ * storage medium.
+ */
+static void
+parser_fileset_shutdown(cmd_t *cmd)
+{
+ filebench_log(LOG_INFO, "Shutting down filesets");
+ fileset_delete_all_filesets();
+}
+
+/*
* Shuts down all processes and their associated threads. When finished
* it deletes interprocess shared memory and resets the event generator.
* It does not exit the filebench program though.