[patch powertop svn] don't suggest NO_HZ unless it's possible!

David Brownell david-b at pacbell.net
Wed Sep 26 20:45:01 PDT 2007


This patch gets rid of a major annoyance:  it stops the "use NO_HZ!"
suggestions on x86_64 and other platforms which can't support it.

This lets the other messages -- the ones which could actually do some
good on this system!! -- be seen.  Else, it seems like the impossible
NO_HZ suggestion is the only one ever visible.

Signed-off-by: David Brownell <dbrownell at users.sourceforge.net>

--- config.c	(revision 254)
+++ config.c	(working copy)
@@ -82,6 +82,27 @@
 	fclose(file);
 }
 
+int has_kernel_config(char *string, int onoff)
+{
+	int i;
+	char searchon[100];
+	char searchoff[100];
+
+
+	read_kernel_config();
+
+	sprintf(searchon, "%s=", string);
+	sprintf(searchoff, "# %s is not set", string);
+
+	for (i = 0; i < configcount; i++) {
+		if (onoff && strstr(configlines[i], searchon))
+			return 1;
+		if (onoff==0 && strstr(configlines[i], searchoff))
+			return 0;
+	}
+	return 0;
+}
+
 /*
  * Suggest the user to turn on/off a kernel config option.
  * "comment" gets displayed if it's not already set to the right value 
--- powertop.c	(revision 254)
+++ powertop.c	(working copy)
@@ -665,7 +665,12 @@
 		suggest_kernel_config("CONFIG_CPU_FREQ_GOV_ONDEMAND", 1,
 				    _("Suggestion: Enable the CONFIG_CPU_FREQ_GOV_ONDEMAND kernel configuration option.\n"
 				      "The 'ondemand' CPU speed governor will minimize the CPU power usage while\n" "giving you performance when it is needed."), 5);
-		suggest_kernel_config("CONFIG_NO_HZ", 1, _("Suggestion: Enable the CONFIG_NO_HZ kernel configuration option.\nThis option is required to get any kind of longer sleep times in the CPU."), 50);
+		if (has_kernel_config("CONFIG_TICK_ONESHOT", 1))
+			suggest_kernel_config("CONFIG_NO_HZ", 1,
+				_("Suggestion: Enable the CONFIG_NO_HZ kernel "
+				"configuration option.\nThis option is "
+				"required to get any kind of longer sleep "
+				"times in the CPU."), 50);
 		suggest_kernel_config("CONFIG_ACPI_BATTERY", 1, _("Suggestion: Enable the CONFIG_ACPI_BATTERY kernel configuration option.\n "
 				      "This option is required to get power estimages from PowerTOP"), 5);
 		suggest_kernel_config("CONFIG_HPET_TIMER", 1,
--- powertop.h	(revision 254)
+++ powertop.h	(working copy)
@@ -43,6 +43,7 @@
 extern double displaytime;
 
 void suggest_process_death(char *process_match, char *process_name, struct line *slines, int linecount, double minwakeups, char *comment, int weight);
+int has_kernel_config(char *string, int onoff);
 void suggest_kernel_config(char *string, int onoff, char *comment, int weight);
 void suggest_laptop_mode(void);
 void suggest_bluetooth_off(void);



More information about the Power mailing list