Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756499AbbBFWmo (ORCPT ); Fri, 6 Feb 2015 17:42:44 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:53480 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751246AbbBFWmn (ORCPT ); Fri, 6 Feb 2015 17:42:43 -0500 Date: Fri, 6 Feb 2015 14:42:35 -0800 From: Greg Kroah-Hartman To: Mathieu Desnoyers Cc: Pranith Kumar , Huang Ying , LKML , Paul McKenney , David Howells Subject: Re: [PATCH] llist: Fix missing memory barrier Message-ID: <20150206224235.GA24647@kroah.com> References: <1423192017-16735-1-git-send-email-mathieu.desnoyers@efficios.com> <625236311.87350.1423231952716.JavaMail.zimbra@efficios.com> <20150206150359.GA31207@kroah.com> <717786959.88160.1423260985651.JavaMail.zimbra@efficios.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <717786959.88160.1423260985651.JavaMail.zimbra@efficios.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: 3066 Lines: 67 On Fri, Feb 06, 2015 at 10:16:25PM +0000, Mathieu Desnoyers wrote: > ----- Original Message ----- > > From: "Greg Kroah-Hartman" > > To: "Mathieu Desnoyers" > > Cc: "Pranith Kumar" , "Huang Ying" , "LKML" > > , "Paul McKenney" , "David Howells" > > Sent: Friday, February 6, 2015 10:03:59 AM > > Subject: Re: [PATCH] llist: Fix missing memory barrier > > > > On Fri, Feb 06, 2015 at 02:12:32PM +0000, Mathieu Desnoyers wrote: > > > ----- Original Message ----- > > > > From: "Pranith Kumar" > > > > To: "Mathieu Desnoyers" > > > > Cc: "Huang Ying" , "LKML" > > > > , "Paul McKenney" > > > > , "David Howells" > > > > Sent: Thursday, February 5, 2015 10:44:07 PM > > > > Subject: Re: [PATCH] llist: Fix missing memory barrier > > > > > > > > Hi Mathieu, > > > > > > > > On Thu, Feb 5, 2015 at 10:06 PM, Mathieu Desnoyers > > > > wrote: > > > > > A smp_read_barrier_depends() appears to be missing in > > > > > llist_del_first(). > > > > > It should only matter for Alpha in practice. Adding it after the check > > > > > of entry against NULL allows skipping the barrier in a common case. > > > > > > > > We recently decided on using lockless_dereference() instead of > > > > hard-coding smp_read_barrier_depends()[1]. The advantage is that > > > > lockless_dereference() clearly shows what loads are being ordered. > > > > Could you resend the patch using that API? > > > > > > Since llist.h has been introduced prior to 3.18, I'm wondering if > > > it would be worthwhile to submit 2 patches for the purpose of > > > backporting to stable branches: > > > > > > 1) Fix introducing smp_read_barrier_depends() (for master and > > > stable branches) > > > 2) Move master from smp_read_barrier_depends() to > > > lockless_dereference(), > > > > > > Thoughts ? > > > > Yes, why? What code needs these new apis? > > The subsystems using llist.h in master: IRQ, smp core code, > vmalloc, scsi, the block layer, some filesystems... and more. > grep for "llist.h" to see the complete list of users. > > My question was mainly on how to do the fix process-wise: post-3.18, > it implies using the new lockless_dereference() API. pre-3.18, we > need to use smp_read_barrier_depends(). > > As Peter Hurley suggested, using the new API for master and 3.18 > seems like the right approach. Then the backports to stable branches > can, if needed, use smp_read_barrier_depends() instead. Is that > OK with you ? Sounds fine to me. greg k-h -- 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/