Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752189AbbHaGCO (ORCPT ); Mon, 31 Aug 2015 02:02:14 -0400 Received: from mail-wi0-f180.google.com ([209.85.212.180]:32934 "EHLO mail-wi0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751256AbbHaGCN (ORCPT ); Mon, 31 Aug 2015 02:02:13 -0400 Date: Mon, 31 Aug 2015 08:02:08 +0200 From: Ingo Molnar To: Oleg Nesterov Cc: Linus Torvalds , Eric Dumazet , Al Viro , "linux-kernel@vger.kernel.org" , Andrew Morton , Thomas Gleixner , Maciej =?utf-8?Q?=C5=BBenczykowski?= Subject: Re: [PATCH] task_work: remove fifo ordering guarantee Message-ID: <20150831060208.GA7093@gmail.com> References: <1440816150.8932.123.camel@edumazet-glaptop2.roam.corp.google.com> <20150829092219.GA8916@gmail.com> <20150829125421.GB14973@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150829125421.GB14973@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1139 Lines: 30 * Oleg Nesterov wrote: > On 08/29, Ingo Molnar wrote: > > > > So I'm wondering, is there any strong reason why we couldn't use a double linked > > list and still do FIFO and remove that silly linear list walking hack? > > This will obviously enlarge callback_head, and it is often embedded. > But this is minor. > > If we use a double linked list we can't do task_work_add() lockless. > So we will need another spinlock_t in task_struct. We can't use pi_lock. The fact that the O(N) overhead was measured in real apps to be in the milliseconds IMHO weakens cycle-level concerns about also having a spinlock next to the list head. (There's no additional cacheline bouncing concerns with the spinlock: the head of a LIFO list is essentially a bouncing cacheline.) If there's some other solution, sure, but LIFO queues tend to be trouble down the line. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/