1. 29 Aug, 2017 2 commits
  2. 19 Aug, 2017 2 commits
  3. 08 Aug, 2017 4 commits
  4. 04 Aug, 2017 2 commits
  5. 03 Aug, 2017 10 commits
  6. 01 Aug, 2017 1 commit
  7. 27 Jul, 2017 3 commits
  8. 26 Jul, 2017 1 commit
  9. 17 Jul, 2017 1 commit
  10. 11 Jul, 2017 2 commits
    • Krister Johansen's avatar
      Teach irqbalance about Intel CoD. · 7bc1244f
      Krister Johansen authored
      This originally surfaced as a bug in placing network interrupts.  In
      the case that this submitter observed, the NIC card was in NUMA domain
      0, but each RSS interrupt was getting an affinity list for all CPUs in
      the domain.  The expected behavior is for a single cpu to be chosen when
      attempting to fan out NIC interrupts.  Due to other implementation
      details of interrupt placement, this effectively caused all interrupt
      mappings for this NIC to end up on CPU 0.
      
      The bug turns out ot have been caused by Intel Cluster on Die breaking
      an assumption in irqbalance about the design of the component hierarchy.
      The CoD topology allows a CPU package to belong to more than one NUMA
      node, which is not expected.
      
      The RCA was that when the second NUMA node was wired up to the existing
      physical package, it overwrote the mappings that were placed there by
      the first.
      
      This patch attempts to solve that problem by permitting a package to
      have multiple NUMA nodes.  The CPU component hierarchy is preserved, in
      case other parts of the code depend upon walking it.  When a CoD
      topology is detected, the NUMA node -> CPU component mapping is moved
      down a level, so that the nodes point to the first level where the
      affinity becomes distinct.  In practice, this has been observed to be
      the LLC.
      
      A quick illustration (now, with COD, it looks like this):
      
                       +-----------+
                       | NUMA Node |
                       |     0     |
                       +-----------+
                             |
                             |        +-------+
                            \|/     / | CPU 0 |
                         +---------+  +-------+
                         | Cache 0 |
                         +---------+  +-------+
                         /          \ | CPU 1 |
            +-----------+             +-------+
            | Package 0 |
            +-----------+             +-------+
                        \           / | CPU 2 |
                         +---------+  +-------+
                         | Cache 1 |
                         +---------+
                             ^      \ +-------+
                             |        | CPU 3 |
                             |        +-------+
                       +-----------+
                       | NUMA Node |
                       |     1     |
                       +-----------+
      
      Whereas, previously only NUMA Node 1 would end up pointing to package 0.
      The topology should not be different on platforms that do not enable
      CoD.
      Signed-off-by: 's avatarKrister Johansen <kjlx@templeofstupid.com>
      7bc1244f
    • Krister Johansen's avatar
      Oneshot mode doesn't exit. · 9ea96c1f
      Krister Johansen authored
      Have the oneshot mode code call event loop exit routine, which causes
      irqbalance to correctly quit after one iteration.
      Signed-off-by: 's avatarKrister Johansen <kjlx@templeofstupid.com>
      9ea96c1f
  11. 03 Jun, 2017 1 commit
  12. 02 Jun, 2017 1 commit
  13. 01 Mar, 2017 1 commit
  14. 05 Feb, 2017 1 commit
  15. 17 Jan, 2017 1 commit
  16. 15 Jan, 2017 3 commits
    • Timo Teräs's avatar
      fix aarch64 compile error due to undefined variable · b0f77c10
      Timo Teräs authored
      fixes #36
      Signed-off-by: 's avatarTimo Teräs <timo.teras@iki.fi>
      b0f77c10
    • Timo Teräs's avatar
      Fix struct msghdr initialization · d00f237d
      Timo Teräs authored
      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.
      Signed-off-by: 's avatarTimo Teräs <timo.teras@iki.fi>
      d00f237d
    • Timo Teräs's avatar
      Add missing #include <string.h> in user interface files · 766410ae
      Timo Teräs authored
      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));
        ^~~~~~
      Signed-off-by: 's avatarTimo Teräs <timo.teras@iki.fi>
      766410ae
  17. 09 Jan, 2017 1 commit
  18. 04 Jan, 2017 3 commits