1st release

This commit is contained in:
Ali Erdinc Koroglu 2023-12-15 14:17:38 +02:00
parent 63bca50500
commit 4cc1050c1a
4 changed files with 320 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/intel-lpmd-*.tar.gz

241
13.patch Normal file
View File

@ -0,0 +1,241 @@
From 5ba48f7215b94dc43a28d2b5264c6fa65989add9 Mon Sep 17 00:00:00 2001
From: Ali Erdinc Koroglu <aekoroglu@linux.intel.com>
Date: Tue, 17 Oct 2023 15:16:22 +0300
Subject: [PATCH 1/2] Werror fixes
---
src/lpmd_config.c | 28 ++++++++++++++--------------
src/lpmd_cpu.c | 2 +-
src/lpmd_main.c | 2 --
src/lpmd_proc.c | 5 -----
src/lpmd_util.c | 2 --
5 files changed, 15 insertions(+), 24 deletions(-)
diff --git a/src/lpmd_config.c b/src/lpmd_config.c
index e360b29..a3c5bcf 100644
--- a/src/lpmd_config.c
+++ b/src/lpmd_config.c
@@ -54,7 +54,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
if (tmp_value) {
lpmd_log_info ("node type: Element, name: %s, value: %s\n", cur_node->name,
tmp_value);
- if (!strncmp (cur_node->name, "Mode", strlen ("Mode"))) {
+ if (!strncmp((const char*)cur_node->name, "Mode", strlen("Mode"))) {
errno = 0;
lpmd_config->mode = strtol (tmp_value, &pos, 10);
lpmd_log_info ("mode %d, errno %d, tmp_value %p, pos %p\n", lpmd_config->mode,
@@ -64,21 +64,21 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
|| lpmd_config->mode < 0)
goto err;
}
- else if (!strncmp (cur_node->name, "HfiLpmEnable", strlen ("HfiEnable"))) {
+ else if (!strncmp((const char*)cur_node->name, "HfiLpmEnable", strlen("HfiEnable"))) {
errno = 0;
lpmd_config->hfi_lpm_enable = strtol (tmp_value, &pos, 10);
if (errno || *pos != '\0'
|| (lpmd_config->hfi_lpm_enable != 1 && lpmd_config->hfi_lpm_enable != 0))
goto err;
}
- else if (!strncmp (cur_node->name, "HfiSuvEnable", strlen ("HfiEnable"))) {
+ else if (!strncmp((const char*)cur_node->name, "HfiSuvEnable", strlen("HfiEnable"))) {
errno = 0;
lpmd_config->hfi_suv_enable = strtol (tmp_value, &pos, 10);
if (errno || *pos != '\0'
|| (lpmd_config->hfi_suv_enable != 1 && lpmd_config->hfi_suv_enable != 0))
goto err;
}
- else if (!strncmp (cur_node->name, "EntryDelayMS", strlen ("EntryDelayMS"))) {
+ else if (!strncmp((const char*)cur_node->name, "EntryDelayMS", strlen ("EntryDelayMS"))) {
errno = 0;
lpmd_config->util_entry_delay = strtol (tmp_value, &pos, 10);
if (errno
@@ -86,7 +86,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
!= '\0'|| lpmd_config->util_entry_delay < 0 || lpmd_config->util_entry_delay > UTIL_DELAY_MAX)
goto err;
}
- else if (!strncmp (cur_node->name, "ExitDelayMS", strlen ("ExitDelayMS"))) {
+ else if (!strncmp((const char*)cur_node->name, "ExitDelayMS", strlen ("ExitDelayMS"))) {
errno = 0;
lpmd_config->util_exit_delay = strtol (tmp_value, &pos, 10);
if (errno
@@ -94,7 +94,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
!= '\0'|| lpmd_config->util_exit_delay < 0 || lpmd_config->util_exit_delay > UTIL_DELAY_MAX)
goto err;
}
- else if (!strncmp (cur_node->name, "util_entry_threshold",
+ else if (!strncmp((const char*)cur_node->name, "util_entry_threshold",
strlen ("util_entry_threshold"))) {
errno = 0;
lpmd_config->util_entry_threshold = strtol (tmp_value, &pos, 10);
@@ -102,7 +102,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
|| lpmd_config->util_entry_threshold > 100)
goto err;
}
- else if (!strncmp (cur_node->name, "util_exit_threshold",
+ else if (!strncmp((const char*)cur_node->name, "util_exit_threshold",
strlen ("util_exit_threshold"))) {
errno = 0;
lpmd_config->util_exit_threshold = strtol (tmp_value, &pos, 10);
@@ -110,7 +110,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
|| lpmd_config->util_exit_threshold > 100)
goto err;
}
- else if (!strncmp (cur_node->name, "EntryHystMS", strlen ("EntryHystMS"))) {
+ else if (!strncmp((const char*)cur_node->name, "EntryHystMS", strlen ("EntryHystMS"))) {
errno = 0;
lpmd_config->util_entry_hyst = strtol (tmp_value, &pos, 10);
if (errno
@@ -118,7 +118,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
!= '\0'|| lpmd_config->util_entry_hyst < 0 || lpmd_config->util_entry_hyst > UTIL_HYST_MAX)
goto err;
}
- else if (!strncmp (cur_node->name, "ExitHystMS", strlen ("ExitHystMS"))) {
+ else if (!strncmp((const char*)cur_node->name, "ExitHystMS", strlen ("ExitHystMS"))) {
errno = 0;
lpmd_config->util_exit_hyst = strtol (tmp_value, &pos, 10);
if (errno
@@ -126,7 +126,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
!= '\0'|| lpmd_config->util_exit_hyst < 0 || lpmd_config->util_exit_hyst > UTIL_HYST_MAX)
goto err;
}
- else if (!strncmp (cur_node->name, "IgnoreITMT", strlen ("IgnoreITMT"))) {
+ else if (!strncmp((const char*)cur_node->name, "IgnoreITMT", strlen ("IgnoreITMT"))) {
errno = 0;
lpmd_config->ignore_itmt = strtol (tmp_value, &pos, 10);
if (errno
@@ -134,14 +134,14 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
!= '\0'|| lpmd_config->ignore_itmt < 0 || lpmd_config->ignore_itmt > 1)
goto err;
}
- else if (!strncmp (cur_node->name, "lp_mode_cpus", strlen ("lp_mode_cpus"))) {
+ else if (!strncmp((const char*)cur_node->name, "lp_mode_cpus", strlen ("lp_mode_cpus"))) {
if (!strncmp (tmp_value, "-1", strlen ("-1")))
lpmd_config->lp_mode_cpus[0] = '\0';
else
snprintf (lpmd_config->lp_mode_cpus, sizeof(lpmd_config->lp_mode_cpus),
"%s", tmp_value);
}
- else if (!strncmp (cur_node->name, "PerformanceDef", strlen ("PerformanceDef"))) {
+ else if (!strncmp((const char*)cur_node->name, "PerformanceDef", strlen ("PerformanceDef"))) {
errno = 0;
lpmd_config->performance_def = strtol (tmp_value, &pos, 10);
if (errno || *pos != '\0')
@@ -155,7 +155,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
else
goto err;
}
- else if (!strncmp (cur_node->name, "BalancedDef", strlen ("BalancedDef"))) {
+ else if (!strncmp((const char*)cur_node->name, "BalancedDef", strlen ("BalancedDef"))) {
errno = 0;
lpmd_config->balanced_def = strtol (tmp_value, &pos, 10);
if (errno || *pos != '\0')
@@ -169,7 +169,7 @@ static int lpmd_fill_config(xmlDoc *doc, xmlNode *a_node, lpmd_config_t *lpmd_co
else
goto err;
}
- else if (!strncmp (cur_node->name, "PowersaverDef", strlen ("PowersaverDef"))) {
+ else if (!strncmp((const char*)cur_node->name, "PowersaverDef", strlen ("PowersaverDef"))) {
errno = 0;
lpmd_config->powersaver_def = strtol (tmp_value, &pos, 10);
if (errno || *pos != '\0')
diff --git a/src/lpmd_cpu.c b/src/lpmd_cpu.c
index 04b47fc..703baea 100644
--- a/src/lpmd_cpu.c
+++ b/src/lpmd_cpu.c
@@ -161,7 +161,7 @@ static int cpumask_to_hexstr(cpu_set_t *mask, char *str, int size)
int cpu;
int i;
int pos = 0;
- char c;
+ char c = 0;
for (cpu = 0; cpu < topo_max_cpus; cpu++) {
i = cpu % 4;
diff --git a/src/lpmd_main.c b/src/lpmd_main.c
index 94bcc5b..fc671e9 100644
--- a/src/lpmd_main.c
+++ b/src/lpmd_main.c
@@ -157,9 +157,7 @@ int main(int argc, char *argv[])
gboolean log_info = FALSE;
gboolean log_debug = FALSE;
gboolean no_daemon = FALSE;
- gboolean ignore_itmt = FALSE;
gboolean systemd = FALSE;
- gchar *conf_file = NULL;
gboolean success;
GOptionContext *opt_ctx;
int ret;
diff --git a/src/lpmd_proc.c b/src/lpmd_proc.c
index 88ced8a..6361ee9 100644
--- a/src/lpmd_proc.c
+++ b/src/lpmd_proc.c
@@ -151,8 +151,6 @@ enum lpm_state {
/* Force off by default */
int lpm_state = LPM_USER_OFF;
-static pthread_mutex_t lpm_mutex;
-
/*
* 1: request valid and already satisfied. 0: respond valid and need to continue to process. -1: request invalid
*/
@@ -488,8 +486,6 @@ static void connect_to_power_profile_daemon(void)
/* Poll time out default */
#define POLL_TIMEOUT_DEFAULT_SECONDS 1
-static int poll_timeout_sec = POLL_TIMEOUT_DEFAULT_SECONDS;
-
static bool main_loop_terminate;
// called from LPMD main thread to process user and system messages
@@ -540,7 +536,6 @@ static int proc_message(message_capsul_t *msg)
static void* lpmd_core_main_loop(void *arg)
{
int interval, n;
- unsigned int i;
static int first_try = 1;
for (;;) {
diff --git a/src/lpmd_util.c b/src/lpmd_util.c
index d8e1543..8210cb7 100644
--- a/src/lpmd_util.c
+++ b/src/lpmd_util.c
@@ -198,8 +198,6 @@ enum system_status {
static enum system_status sys_stat = SYS_NORMAL;
-static struct timespec tp1, tp2;
-
static int first_run = 1;
static enum system_status get_sys_stat(void)
From 1668ed0265ed7cd0e21fe33dd82404b8087bb844 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ali=20Erdin=C3=A7=20K=C3=B6ro=C4=9Flu?=
<aekoroglu@gmail.com>
Date: Fri, 27 Oct 2023 14:25:05 +0300
Subject: [PATCH 2/2] Update Makefile
use conditional variable
---
tools/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/Makefile b/tools/Makefile
index 9b5924c..670a74e 100755
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -2,12 +2,12 @@ CFLAGS_DBUS_GLIB = $(shell pkg-config --cflags --libs dbus-glib-1)
bindir ?= /usr/bin
-CFLAGS = -g -Wall -Werror
+CFLAGS ?= -g -Wall -Werror
all: intel_lpmd_control
intel_lpmd_control: intel_lpmd_control.c
- gcc $< -o $@ $(CFLAGS) $(CFLAGS_DBUS_GLIB)
+ gcc $< -o $@ $(CFLAGS) $(CFLAGS_DBUS_GLIB) $(LDFLAGS)
clean:
rm -f intel_lpmd_control

77
intel-lpmd.spec Normal file
View File

@ -0,0 +1,77 @@
%global daemon_name intel_lpmd
Name: intel-lpmd
Version: 0.0.2
Release: %autorelease
Summary: Intel Low Power Mode Daemon
License: GPL-2.0-or-later
URL: https://github.com/intel/intel-lpmd
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
# https://github.com/intel/intel-lpmd/pull/13
Patch0: 13.patch
ExclusiveArch: x86_64
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc
BuildRequires: gtk-doc
BuildRequires: dbus-glib-devel
BuildRequires: libnl3-devel
BuildRequires: libxml2-devel
BuildRequires: libtool
BuildRequires: systemd-devel
BuildRequires: systemd-units
%description
Intel Low Power Model Daemon is a Linux daemon used to optimize active idle
power. It selects a set of most power efficient CPUs based on configuration
file or CPU topology. Based on system utilization and other hints, it puts
the system into Low Power Mode by activating the power efficient CPUs and
disabling the rest, and restoring the system from Low Power Mode by activating
all CPUs.
%prep
%autosetup -p1
# fedora path fix
sed -i -e "s|etc|usr/share|" configure.ac
%build
aclocal --install
gtkdocize --copy --flavour no-tmpl
autoreconf --install --verbose
%configure
%make_build
%install
%make_install
install -D -p -m 644 src/%{daemon_name}_dbus_interface.xml %{buildroot}/%{_datadir}/dbus-1/interfaces/org.freedesktop.%{daemon_name}.xml
%post
%systemd_post %{daemon_name}.service
%preun
%systemd_preun %{daemon_name}.service
%postun
%systemd_postun_with_restart %{daemon_name}.service
%files
%license COPYING
%doc README.md
%{_bindir}/%{daemon_name}_control
%{_sbindir}/%{daemon_name}
%dir %{_sysconfdir}/%{daemon_name}
%config(noreplace) %{_sysconfdir}/%{daemon_name}/%{daemon_name}_config.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.%{daemon_name}.xml
%{_datadir}/dbus-1/system.d/org.freedesktop.%{daemon_name}.conf
%{_datadir}/dbus-1/system-services/org.freedesktop.%{daemon_name}.service
%{_unitdir}/%{daemon_name}.service
%{_mandir}/man5/%{daemon_name}_config.xml.5*
%{_mandir}/man8/%{daemon_name}.8*
%changelog
%autochangelog

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (intel-lpmd-0.0.2.tar.gz) = f4a1bd58b5d03f5fb95f4bbc89f052a73c06d2ed8947c48b5206ebe39bae82b5fbf88be69ad84f35cb48ef5bad0743a95d07d06bbad0671b882855b310e7f789