is not higher than \fBpurge.high_usage\fR to refresh some statistics data.
It is 1800 seconds by default. This function can be disabled by setting the
value to -1.
+
+The force scanning can also be triggered by sending signal SIGUSR2 to
+lpcc_purge process at any time.
.TP
.BR purge.scan_threads
How many threads are used to scan cache device in parallel. It is 1 thread by
sizeof(candidate_set.cs_arr[0]), &_compare_candidate);
}
-static void lpcc_purge_null_handler(int signal)
-{
-}
-
static void lpcc_purge_sigint_handler(int signal)
{
LPCC_PURGE_LOG(LLAPI_MSG_FATAL, "Exit due to signal: %s\n",
fclose(f);
}
+static bool force_scan_flag = false;
+static void lpcc_purge_usr2_handler(int sig)
+{
+ force_scan_flag = true;
+}
+
static void usage(void)
{
printf("Usage: %s [options]\n"
stats.s_start_usage = usage;
xstats[1].xs_last_scan_time = now;
break;
+ } else if (force_scan_flag) {
+ LPCC_PURGE_LOG(LLAPI_MSG_INFO,
+ "force scanning triggered by signal\n");
+ stats.s_start_usage = usage;
+ xstats[1].xs_last_scan_time = now;
+ force_scan_flag = false;
+ break;
} else {
sleep(opt.o_interval);
}
llapi_msg_set_level(LLAPI_MSG_INFO);
signal(SIGUSR1, &lpcc_purge_usr1_handler);
- signal(SIGUSR2, &lpcc_purge_null_handler);
+ signal(SIGUSR2, &lpcc_purge_usr2_handler);
signal(SIGINT, &lpcc_purge_sigint_handler);
signal(SIGTERM, &lpcc_purge_sigint_handler);