Messages in this thread | | | From | Vitaly Kuznetsov <> | Subject | Re: [PATCH RFC 0/2] x86/apic: Avoid cm->allocated going negative in irq_matrix | Date | Thu, 11 Mar 2021 11:19:04 +0100 |
| |
Vitaly Kuznetsov <vkuznets@redhat.com> writes:
> I discovered that CPU0 offlining/onlining works only once: > > # echo 0 > /sys/devices/system/cpu/cpu0/online > # echo 1 > /sys/devices/system/cpu/cpu0/online > # echo 0 > /sys/devices/system/cpu/cpu0/online > -bash: echo: write error: No space left on device > > with the following in dmesg: > > [ ... ] CPU 0 has 4294967295 vectors, 589 available. Cannot disable CPU > > And the problem seems to be that irq_matrix_assign()/irq_matrix_free() calls > for PIC_CASCADE_IR are unbalanced, making cm->allocated go negative. > > RFC as I didn't quite get why we're making an exception for PIC_CASCADE_IR in > the first place. Surely it is special, but for the sake of consistency we'd > better not treat it as such. Or maybe I just misunderstood everything. >
If the RFC part is the only thing which scares everyone off I'm ready to drop it and pretend that I'm confident with the change)
> Vitaly Kuznetsov (2): > x86/apic: Do not make an exception for PIC_CASCADE_IR when marking > legacy irqs in irq_matrix > genirq/matrix: WARN_ON_ONCE() when cm->allocated/m->total_allocated go > negative > > arch/x86/kernel/apic/vector.c | 3 +-- > kernel/irq/matrix.c | 11 +++++++++-- > 2 files changed, 10 insertions(+), 4 deletions(-)
-- Vitaly
| |