lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1504235838.git.yu.c.chen@intel.com>
Date:   Fri,  1 Sep 2017 13:03:44 +0800
From:   Chen Yu <yu.c.chen@...el.com>
To:     x86@...nel.org
Cc:     Thomas Gleixner <tglx@...utronix.de>,
        Ingo Molnar <mingo@...hat.com>,
        "H. Peter Anvin" <hpa@...or.com>, Rui Zhang <rui.zhang@...el.com>,
        linux-kernel@...r.kernel.org, Chen Yu <yu.c.chen@...el.com>
Subject: [PATCH 0/4][RFC v2] x86/irq: Spread vectors on different CPUs

This patch set tries to spread the vectors assigned on different
CPUs as much as possible. The requirement to do this came from
a hibernation issue encountered on a vector-heavily-used system
which has many multi queue devices on that, the CPUs failed to be
brought offline due to insufficient free vector slots on the
remaining CPUs. In theory this problem should be fixed in lastest
kernel, because the managed interrupt mechanism for multi queue
devices, which no longer migrates these interrupts. It simply shuts
them down and restarts them when the CPU comes back online. However
there is still one corner case that the solution mentioned above
does not cover, so this patch set tries to address this issue
by spreading the vectors for that case too.

The previous discussion is here:
https://patchwork.kernel.org/patch/9725227/
Thomas has given many useful suggestion on this, and this patch set
tries to address them one-by-one, please refer to the commit
description in '[PATCH 4/4] Spread the vectors by choosing the idlest
CPU' for detail.

Chen Yu (4):
  x86/apic: Extend the defination for vector_irq
  x86/apic: Record the number of vectors assigned on a CPU
  x86/apic: Introduce the per vector cpumask array
  x86/apic: Spread the vectors by choosing the idlest CPU

 arch/x86/include/asm/hw_irq.h |  16 +++++-
 arch/x86/kernel/apic/vector.c | 129 +++++++++++++++++++++++++++++++++++++-----
 arch/x86/kernel/irq.c         |  21 ++++---
 arch/x86/kernel/irqinit.c     |  10 ++--
 arch/x86/lguest/boot.c        |   3 +-
 5 files changed, 148 insertions(+), 31 deletions(-)

-- 
2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ