Accepting request 449922 from Base:System
- update to 1.2.0: * sort_irq logic rework to fix unintended ordering * removal of the affinity_hint infrastructure as its not needed * fixes for invalid cpumask parsing * many other minior fixes (see git log) * Aarch64 support * live interactive monitoring of irqbalance and live adjustment with irqbalance-ui - remove fix-aarch64-support.patch: upstreamed - add install-man-pages.patch - add aarch64-compile-fixes.patch OBS-URL: https://build.opensuse.org/request/show/449922 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/irqbalance?expand=0&rev=46
This commit is contained in:
commit
8a67a7879c
104
aarch64-compile-fixes.patch
Normal file
104
aarch64-compile-fixes.patch
Normal file
@ -0,0 +1,104 @@
|
||||
From af7523e4891d13c3c06fef056b243faa0547e406 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
||||
Date: Tue, 10 Jan 2017 09:44:04 +0200
|
||||
Subject: [PATCH 1/3] Add missing #include <string.h> in user interface files
|
||||
|
||||
Fixes several warnings when compiling under musl, e.g.
|
||||
|
||||
ui/irqbalance-ui.c: In function 'create_credentials_msg':
|
||||
ui/irqbalance-ui.c:32:2: warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
|
||||
memset(msg, 0, sizeof(struct msghdr));
|
||||
^~~~~~
|
||||
ui/irqbalance-ui.c:32:2: warning: incompatible implicit declaration of built-in function 'memset'
|
||||
ui/irqbalance-ui.c:32:2: note: include '<string.h>' or provide a declaration of 'memset'
|
||||
ui/irqbalance-ui.c: In function 'init_connection':
|
||||
ui/irqbalance-ui.c:49:2: warning: incompatible implicit declaration of built-in function 'memset'
|
||||
memset(&addr, 0, sizeof(struct sockaddr_un));
|
||||
^~~~~~
|
||||
---
|
||||
ui/irqbalance-ui.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/ui/irqbalance-ui.c b/ui/irqbalance-ui.c
|
||||
index 74ba93c..75fc60f 100644
|
||||
--- a/ui/irqbalance-ui.c
|
||||
+++ b/ui/irqbalance-ui.c
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <errno.h>
|
||||
#include <netdb.h>
|
||||
#include <stdio.h>
|
||||
+#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
From 59f2a0e9bfd5b98bd5671174eb7e32b4e0b3ba2c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
||||
Date: Tue, 10 Jan 2017 09:46:17 +0200
|
||||
Subject: [PATCH 2/3] Fix struct msghdr initialization
|
||||
|
||||
musl defines struct msghdr with padding fields to be strictly
|
||||
POSIX compliant. The current code gives following warnings:
|
||||
|
||||
irqbalance.c: In function 'sock_handle':
|
||||
irqbalance.c:333:42: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
|
||||
struct msghdr msg = { NULL, 0, &iov, 1, NULL, 0, 0 };
|
||||
^~~~
|
||||
irqbalance.c:333:42: note: (near initialization for 'msg.__pad1')
|
||||
irqbalance.c:333:9: warning: missing initializer for field '__pad2' of 'struct msghdr' [-Wmissing-field-initializers]
|
||||
struct msghdr msg = { NULL, 0, &iov, 1, NULL, 0, 0 };
|
||||
^~~~~~
|
||||
In file included from /usr/include/sys/socket.h:20:0,
|
||||
from /usr/include/fortify/sys/socket.h:20,
|
||||
from irqbalance.c:34:
|
||||
/usr/include/bits/socket.h:7:28: note: '__pad2' declared here
|
||||
socklen_t msg_controllen, __pad2;
|
||||
^~~~~~
|
||||
|
||||
Fix this by not relying on field ordering. Alternatively
|
||||
designated initializers could be used, but as they are not
|
||||
used elsewhere in the code, I used explicit assignments.
|
||||
---
|
||||
irqbalance.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/irqbalance.c b/irqbalance.c
|
||||
index 35ad4da..95bb80a 100644
|
||||
--- a/irqbalance.c
|
||||
+++ b/irqbalance.c
|
||||
@@ -330,7 +330,9 @@ gboolean sock_handle(gint fd, GIOCondition condition, gpointer user_data __attri
|
||||
int valid_user = 0;
|
||||
|
||||
struct iovec iov = { buff, 500 };
|
||||
- struct msghdr msg = { NULL, 0, &iov, 1, NULL, 0, 0 };
|
||||
+ struct msghdr msg = { 0 };
|
||||
+ msg.msg_iov = &iov;
|
||||
+ msg.msg_iovlen = 1;
|
||||
msg.msg_control = malloc(CMSG_SPACE(sizeof(struct ucred)));
|
||||
msg.msg_controllen = CMSG_SPACE(sizeof(struct ucred));
|
||||
|
||||
|
||||
From 65d71ea5f80b6d56907bd67825981042eaf98d6e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
|
||||
Date: Tue, 10 Jan 2017 09:51:32 +0200
|
||||
Subject: [PATCH 3/3] fix aarch64 compile error due to undefined variable
|
||||
|
||||
fixes #36
|
||||
---
|
||||
procinterrupts.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/procinterrupts.c b/procinterrupts.c
|
||||
index 6b37a88..c5c034c 100644
|
||||
--- a/procinterrupts.c
|
||||
+++ b/procinterrupts.c
|
||||
@@ -148,6 +148,9 @@ GList* collect_full_irq_list()
|
||||
char *line = NULL;
|
||||
size_t size = 0;
|
||||
char *irq_name, *irq_mod, *savedptr, *last_token, *p;
|
||||
+#ifdef AARCH64
|
||||
+ char *tmp;
|
||||
+#endif
|
||||
|
||||
file = fopen("/proc/interrupts", "r");
|
||||
if (!file)
|
@ -1,36 +0,0 @@
|
||||
From 1dccd034a90b2f0221423632de65cbf84d05ebfb Mon Sep 17 00:00:00 2001
|
||||
From: Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
|
||||
Date: Tue, 15 Dec 2015 09:09:09 +0100
|
||||
Subject: [PATCH] Fix AArch64 support
|
||||
|
||||
Signed-off-by: Marcin Juszkiewicz <mjuszkiewicz@redhat.com>
|
||||
Signed-off-by: PJ Waskiewicz <pjwaskiewicz@gmail.com>
|
||||
---
|
||||
procinterrupts.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/procinterrupts.c b/procinterrupts.c
|
||||
index 63101d6..b70bfc2 100644
|
||||
--- a/procinterrupts.c
|
||||
+++ b/procinterrupts.c
|
||||
@@ -80,7 +80,7 @@ static int check_platform_device(char *name, struct irq_info *info)
|
||||
rc = 0;
|
||||
goto out;
|
||||
} else if (!strncmp(ent->d_name, "net", strlen("net"))) {
|
||||
- info->IRQ_TYPE_LEGACY;
|
||||
+ info->type = IRQ_TYPE_LEGACY;
|
||||
info->class = IRQ_ETH;
|
||||
rc = 0;
|
||||
goto out;
|
||||
@@ -94,7 +94,7 @@ static int check_platform_device(char *name, struct irq_info *info)
|
||||
|
||||
out:
|
||||
closedir(dirfd);
|
||||
- log(TO_ALL, LOG_DEBUG, "IRQ %s is of type %d and class %d\n", name, info->type, info->class)
|
||||
+ log(TO_ALL, LOG_DEBUG, "IRQ %s is of type %d and class %d\n", name, info->type, info->class);
|
||||
return rc;
|
||||
|
||||
}
|
||||
--
|
||||
2.7.1
|
||||
|
11
install-man-pages.patch
Normal file
11
install-man-pages.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- Makefile.am
|
||||
+++ Makefile.am
|
||||
@@ -36,7 +36,7 @@
|
||||
irqbalance_ui_SOURCES = $(UI_DIR)/helpers.c $(UI_DIR)/irqbalance-ui.c \
|
||||
$(UI_DIR)/ui.c
|
||||
irqbalance_ui_LDADD = $(GLIB_LIBS) $(CURSES_LIBS)
|
||||
-dist_man_MANS = irqbalance.1
|
||||
+man_MANS = irqbalance.1
|
||||
|
||||
CONFIG_CLEAN_FILES = debug*.list config/*
|
||||
clean-generic:
|
@ -1,3 +1,17 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 12 18:03:02 UTC 2017 - dmueller@suse.com
|
||||
|
||||
- update to 1.2.0:
|
||||
* sort_irq logic rework to fix unintended ordering
|
||||
* removal of the affinity_hint infrastructure as its not needed
|
||||
* fixes for invalid cpumask parsing
|
||||
* many other minior fixes (see git log)
|
||||
* Aarch64 support
|
||||
* live interactive monitoring of irqbalance and live adjustment with irqbalance-ui
|
||||
- remove fix-aarch64-support.patch: upstreamed
|
||||
- add install-man-pages.patch
|
||||
- add aarch64-compile-fixes.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 14 13:31:38 UTC 2016 - msuchanek@suse.com
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package irqbalance
|
||||
#
|
||||
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: irqbalance
|
||||
Version: 1.1.0
|
||||
Version: 1.2.0
|
||||
Release: 0
|
||||
Summary: Balance IRQs on SMP Machines
|
||||
License: GPL-2.0+
|
||||
@ -25,10 +25,12 @@ Group: System/Daemons
|
||||
Url: https://github.com/Irqbalance/irqbalance
|
||||
Source: https://github.com/Irqbalance/irqbalance/archive/v%{version}.tar.gz
|
||||
Source3: sysconfig.irqbalance
|
||||
Patch1: fix-aarch64-support.patch
|
||||
Patch2: Set-fd-limit.patch
|
||||
Patch3: install-man-pages.patch
|
||||
Patch4: aarch64-compile-fixes.patch
|
||||
BuildRequires: libcap-ng-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: pkgconfig(glib-2.0)
|
||||
Requires(pre): coreutils
|
||||
@ -45,21 +47,20 @@ being used for all IRQs.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
%configure
|
||||
make %{?_smp_mflags} LDFLAGS="-Wl,-z,relro,-z,now" CFLAGS="%{optflags} -fPIE -pie"
|
||||
make %{?_smp_mflags} LDFLAGS="-Wl,-z,relro,-z,now" CFLAGS="%{optflags} -fPIE -pie -std=c99 $(ncurses5-config --cflags)" LDFLAGS="$(ncurses5-config --libs)"
|
||||
cp %{SOURCE3} .
|
||||
gzip irqbalance.1
|
||||
#gzip irqbalance.1
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_sbindir}
|
||||
install -m 0755 irqbalance %{buildroot}%{_sbindir}
|
||||
mkdir -p %{buildroot}%{_mandir}/man1
|
||||
install -m 0644 irqbalance.1.gz %{buildroot}%{_mandir}/man1
|
||||
%make_install
|
||||
|
||||
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates/
|
||||
install -m 0644 sysconfig.irqbalance %{buildroot}%{_localstatedir}/adm/fillup-templates/
|
||||
sed -ie "s|EnvironmentFile=.*|EnvironmentFile=%{_sysconfdir}/sysconfig/irqbalance|g" misc/irqbalance.service
|
||||
@ -84,6 +85,7 @@ ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcirqbalance
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{_sbindir}/irqbalance
|
||||
%{_sbindir}/irqbalance-ui
|
||||
%{_sbindir}/rcirqbalance
|
||||
%{_unitdir}/irqbalance.service
|
||||
%{_mandir}/man1/irqbalance.1.gz
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:91506e638b03bf27cf5da7dc250d58a753ce8a0288a20265fc7ff0266040706b
|
||||
size 46742
|
3
v1.2.0.tar.gz
Normal file
3
v1.2.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0efe5d2a0947b54d89c7196a48eca9b3b33c80bc15964e4226a0f7d3fd9535b2
|
||||
size 55618
|
Loading…
Reference in New Issue
Block a user