[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 7 Jul 2017 10:44:27 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Ingo Molnar <mingo@...nel.org>
Cc: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
David Laight <David.Laight@...LAB.COM>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"netfilter-devel@...r.kernel.org" <netfilter-devel@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"oleg@...hat.com" <oleg@...hat.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"mingo@...hat.com" <mingo@...hat.com>,
"dave@...olabs.net" <dave@...olabs.net>,
"manfred@...orfullife.com" <manfred@...orfullife.com>,
"tj@...nel.org" <tj@...nel.org>, "arnd@...db.de" <arnd@...db.de>,
"linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>,
"will.deacon@....com" <will.deacon@....com>,
"stern@...land.harvard.edu" <stern@...land.harvard.edu>,
"parri.andrea@...il.com" <parri.andrea@...il.com>,
"torvalds@...ux-foundation.org" <torvalds@...ux-foundation.org>
Subject: Re: [PATCH v2 0/9] Remove spin_unlock_wait()
On Fri, Jul 07, 2017 at 10:31:28AM +0200, Ingo Molnar wrote:
> Here's a quick list of all the use cases:
>
> net/netfilter/nf_conntrack_core.c:
>
> - This is I believe the 'original', historic spin_unlock_wait() usecase that
> still exists in the kernel. spin_unlock_wait() is only used in a rare case,
> when the netfilter hash is resized via nf_conntrack_hash_resize() - which is
> a very heavy operation to begin with. It will no doubt get slower with the
> proposed changes, but it probably does not matter. A networking person
> Acked-by would be nice though.
>
> drivers/ata/libata-eh.c:
>
> - Locking of the ATA port in ata_scsi_cmd_error_handler(), presumably this can
> race with IRQs and ioctls() on other CPUs. Very likely not performance
> sensitive in any fashion, on IO errors things stop for many seconds anyway.
>
> ipc/sem.c:
>
> - A rare race condition branch in the SysV IPC semaphore freeing code in
> exit_sem() - where even the main code flow is not performance sensitive,
> because typical database workloads get their semaphore arrays during startup
> and don't ever do heavy runtime allocation/freeing of them.
>
> kernel/sched/completion.c:
>
> - completion_done(). This is actually a (comparatively) rarely used completion
> API call - almost all the upstream usecases are in drivers, plus two in
> filesystems - neither usecase seems in a performance critical hot path.
> Completions typically involve scheduling and context switching, so in the
> worst case the proposed change adds overhead to a scheduling slow path.
>
You missed the one in do_exit(), which I thought was the original one.
Powered by blists - more mailing lists