diff -Nru irqbalance-1.3.0/debian/changelog irqbalance-1.3.0/debian/changelog --- irqbalance-1.3.0/debian/changelog 2017-12-11 08:31:40.000000000 +0000 +++ irqbalance-1.3.0/debian/changelog 2019-01-09 10:38:44.000000000 +0000 @@ -1,3 +1,11 @@ +irqbalance (1.3.0-0.1ubuntu0.18.04.1) bionic; urgency=medium + + * debian/patches: + - Added aarch64-log-spam preventing syslog spam on small aarch64 systems + which lack a PCI bus (e.g. rpi3b, rpi3b+) (LP: #1811655). + + -- Dave Jones Wed, 09 Jan 2019 10:38:44 +0000 + irqbalance (1.3.0-0.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru irqbalance-1.3.0/debian/control irqbalance-1.3.0/debian/control --- irqbalance-1.3.0/debian/control 2017-12-11 08:09:40.000000000 +0000 +++ irqbalance-1.3.0/debian/control 2019-01-09 10:38:44.000000000 +0000 @@ -1,7 +1,8 @@ Source: irqbalance Section: utils Priority: optional -Maintainer: Anibal Monsalve Salazar +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Anibal Monsalve Salazar Build-Depends: dpkg-dev (>= 1.16.1~), debhelper (>= 9.20160709), dh-autoreconf, dh-exec, pkg-config, libncurses5-dev, libglib2.0-dev (>= 2.28), xutils-dev, libcap-ng-dev [linux-any], libnuma-dev [!hurd-any !kfreebsd-any !armel !armhf], libsystemd-dev [linux-any] Standards-Version: 4.1.2 Homepage: https://github.com/Irqbalance/irqbalance diff -Nru irqbalance-1.3.0/debian/patches/aarch64-log-spam.patch irqbalance-1.3.0/debian/patches/aarch64-log-spam.patch --- irqbalance-1.3.0/debian/patches/aarch64-log-spam.patch 1970-01-01 00:00:00.000000000 +0000 +++ irqbalance-1.3.0/debian/patches/aarch64-log-spam.patch 2019-01-08 16:51:22.000000000 +0000 @@ -0,0 +1,108 @@ +Author: Dave Jones +Bug: https://github.com/Irqbalance/irqbalance/issues/29 +Origin: upstream, https://github.com/Irqbalance/irqbalance/pull/66 +Applied-Upstream: commit:d88f69c09f5517655272a3ab10e7f86b3d7e99f4 +Description: Fix log spam on aarch64 platforms + The scanning code for /proc/interrupts has an issue whereby, if the system + doesn't contain a pci bus, all other interrupts are skipped in their addition + to the irq database. This means nothing gets balanced, and we constantly just + rescan. This is often a problem on small aarch64 systems, which often don't + have a pci bus. + +--- a/classify.c ++++ b/classify.c +@@ -39,7 +39,7 @@ + static GList *cl_banned_modules = NULL; + + #define SYSFS_DIR "/sys" +-#define SYSDEV_DIR "/sys/bus/pci/devices" ++#define SYSPCI_DIR "/sys/bus/pci/devices" + + #define PCI_MAX_CLASS 0x14 + #define PCI_MAX_SERIAL_SUBCLASS 0x81 +@@ -616,8 +616,8 @@ + char devpath[PATH_MAX]; + struct user_irq_policy pol; + +- sprintf(path, "%s/%s/msi_irqs", SYSDEV_DIR, dirname); +- sprintf(devpath, "%s/%s", SYSDEV_DIR, dirname); ++ sprintf(path, "%s/%s/msi_irqs", SYSPCI_DIR, dirname); ++ sprintf(devpath, "%s/%s", SYSPCI_DIR, dirname); + + msidir = opendir(path); + +@@ -646,7 +646,7 @@ + return; + } + +- sprintf(path, "%s/%s/irq", SYSDEV_DIR, dirname); ++ sprintf(path, "%s/%s/irq", SYSPCI_DIR, dirname); + fd = fopen(path, "r"); + if (!fd) + return; +@@ -759,22 +759,21 @@ + + tmp_irqs = collect_full_irq_list(); + +- devdir = opendir(SYSDEV_DIR); +- if (!devdir) +- goto free; ++ devdir = opendir(SYSPCI_DIR); + +- do { +- entry = readdir(devdir); +- +- if (!entry) +- break; ++ if (devdir) { ++ do { ++ entry = readdir(devdir); + +- build_one_dev_entry(entry->d_name, tmp_irqs); ++ if (!entry) ++ break; + +- } while (entry != NULL); ++ build_one_dev_entry(entry->d_name, tmp_irqs); + +- closedir(devdir); ++ } while (entry != NULL); + ++ closedir(devdir); ++ } + + for_each_irq(tmp_irqs, add_missing_irq, interrupts_db); + +--- a/procinterrupts.c ++++ b/procinterrupts.c +@@ -105,10 +105,12 @@ + { + int i, rc; + static int compiled = 0; ++ /* Note: Last entry is a catchall */ + static struct irq_match matches[] = { + { "eth.*" ,{NULL} ,NULL, IRQ_TYPE_LEGACY, IRQ_GBETH }, + { "[A-Z0-9]{4}[0-9a-f]{4}", {NULL} ,check_platform_device, IRQ_TYPE_LEGACY, IRQ_OTHER}, + { "PNP[0-9a-f]{4}", {NULL} ,check_platform_device, IRQ_TYPE_LEGACY, IRQ_OTHER}, ++ { ".*", {NULL}, NULL, IRQ_TYPE_LEGACY, IRQ_OTHER}, + {NULL}, + }; + +@@ -134,8 +136,7 @@ + info->class = matches[i].class; + if (matches[i].refine_match) + matches[i].refine_match(name, info); +- +- log(TO_ALL, LOG_DEBUG, "IRQ %s(%d) is class %d\n", name, info->irq,info->class); ++ log(TO_ALL, LOG_DEBUG, "IRQ %s(%d) guessed as class %d\n", name, info->irq,info->class); + } + } + +@@ -214,7 +215,6 @@ + info->class = IRQ_VIRT_EVENT; + } else { + #ifdef AARCH64 +- log(TO_ALL, LOG_DEBUG, "GUESSING AARCH64 CLASS FOR %s\n", irq_name); + guess_arm_irq_hints(irq_name, info); + #else + info->type = IRQ_TYPE_LEGACY; diff -Nru irqbalance-1.3.0/debian/patches/series irqbalance-1.3.0/debian/patches/series --- irqbalance-1.3.0/debian/patches/series 2017-12-11 08:28:40.000000000 +0000 +++ irqbalance-1.3.0/debian/patches/series 2019-01-08 16:36:16.000000000 +0000 @@ -1 +1,2 @@ debian-systemd-service-adaptions.patch +aarch64-log-spam.patch