From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752700Ab1HXUCd (ORCPT ); Wed, 24 Aug 2011 16:02:33 -0400 Received: from mga09.intel.com ([134.134.136.24]:39135 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751617Ab1HXUCa (ORCPT ); Wed, 24 Aug 2011 16:02:30 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.67,351,1309762800"; d="scan'208";a="41534173" From: Andi Kleen To: Jeremy Fitzhardinge Cc: "H. Peter Anvin" , Linus Torvalds , Peter Zijlstra , Ingo Molnar , the arch/x86 maintainers , Linux Kernel Mailing List , Nick Piggin , Jeremy Fitzhardinge Subject: Re: [PATCH 02/18] x86/ticketlock: convert spin loop to C References: Date: Wed, 24 Aug 2011 13:02:29 -0700 In-Reply-To: (Jeremy Fitzhardinge's message of "Wed, 24 Aug 2011 10:52:56 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jeremy Fitzhardinge writes: > + > + for (;;) { > + if (inc.tickets.head == inc.tickets.tail) > + goto out; What's wrong with break ? Similar below. > + cpu_relax(); > + inc.tickets.head = ACCESS_ONCE(lock->tickets.head); > + } > +out: barrier(); /* make sure nothing creeps before the lock is taken */ > } -Andi -- ak@linux.intel.com -- Speaking for myself only