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-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 25 Aug 2020 12:28:24 +0200
From:   Thomas Gleixner <tglx@...utronix.de>
To:     Alexander Graf <graf@...zon.com>,
        LKML <linux-kernel@...r.kernel.org>
Cc:     Andy Lutomirski <luto@...nel.org>,
        Andrew Cooper <andrew.cooper3@...rix.com>,
        X86 ML <x86@...nel.org>,
        "Paul E. McKenney" <paulmck@...nel.org>,
        Alexandre Chartre <alexandre.chartre@...cle.com>,
        Frederic Weisbecker <frederic@...nel.org>,
        Paolo Bonzini <pbonzini@...hat.com>,
        Sean Christopherson <sean.j.christopherson@...el.com>,
        Masami Hiramatsu <mhiramat@...nel.org>,
        Petr Mladek <pmladek@...e.com>,
        Steven Rostedt <rostedt@...dmis.org>,
        Joel Fernandes <joel@...lfernandes.org>,
        Boris Ostrovsky <boris.ostrovsky@...cle.com>,
        Juergen Gross <jgross@...e.com>,
        Brian Gerst <brgerst@...il.com>,
        Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
        Josh Poimboeuf <jpoimboe@...hat.com>,
        Will Deacon <will@...nel.org>,
        Tom Lendacky <thomas.lendacky@....com>,
        Wei Liu <wei.liu@...nel.org>,
        Michael Kelley <mikelley@...rosoft.com>,
        Jason Chen CJ <jason.cj.chen@...el.com>,
        Zhao Yakui <yakui.zhao@...el.com>,
        "Peter Zijlstra \(Intel\)" <peterz@...radead.org>,
        avi@...lladb.com, "Herrenschmidt\, Benjamin" <benh@...zon.com>,
        robketr@...zon.de, amos@...lladb.com
Subject: Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

Alex,

On Mon, Aug 24 2020 at 19:29, Alexander Graf wrote:
> I'm currently trying to understand a performance regression with 
> ScyllaDB on i3en.3xlarge (KVM based VM on Skylake) which we reliably 
> bisected down to this commit:
>
>    https://github.com/scylladb/scylla/issues/7036
>
> What we're seeing is that syscalls such as membarrier() take forever 
> (0-10 µs would be normal):
...
> That again seems to stem from a vastly slowed down 
> smp_call_function_many_cond():
>
> Samples: 218K of event 'cpu-clock', 4000 Hz
> Overhead  Shared Object        Symbol
>    94.51%  [kernel]             [k] smp_call_function_many_cond
>     0.76%  [kernel]             [k] __do_softirq
>     0.32%  [kernel]             [k] native_queued_spin_lock_slowpath
> [...]
>
> which is stuck in
>
>         │     csd_lock_wait():
>         │             smp_cond_load_acquire(&csd->flags, !(VAL &
>    0.00 │       mov    0x8(%rcx),%edx
>    0.00 │       and    $0x1,%edx
>         │     ↓ je     2b9
>         │     rep_nop():
>    0.70 │2af:   pause
>         │     csd_lock_wait():
>   92.82 │       mov    0x8(%rcx),%edx
>    6.48 │       and    $0x1,%edx
>    0.00 │     ↑ jne    2af
>    0.00 │2b9: ↑ jmp    282
>
>
> Given the patch at hand I was expecting lost IPIs, but I can't quite see 
> anything getting lost.

I have no idea how that patch should be related to IPI and smp function
calls. It's changing the way how regular device interrupts and their
spurious counterpart are handled and not the way how IPIs are
handled. They are handled by direct vectors and do not go through
do_IRQ() at all.

Aside of that the commit just changes the way how the interrupt vector
of a regular device interrupt is stored and conveyed. The extra read and
write on the cache hot stack is hardly related to anything IPI.

Thanks,

        tglx


Powered by blists - more mailing lists