Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp291763yba; Wed, 3 Apr 2019 08:49:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqznNweAbGw0TZ4wUm7gW8RyeZvcUK2ARey2iBf4gTEyjBDRJezSaVhM7gL60UuD1xmzCSJ3 X-Received: by 2002:a62:19c3:: with SMTP id 186mr135158pfz.172.1554306553088; Wed, 03 Apr 2019 08:49:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554306553; cv=none; d=google.com; s=arc-20160816; b=tGa/p1MrPMS73itkzi/1YJ9xBTFuBxpBGEWVGEh37yqunTCSMl6GGoAJnJRNCpjRwf 6mzIpnmbibaxmdyDQZqiUQ9v5w8rEigqt5kIvguptu6yTRttrjojd7BtyR6yj4qQrxbQ RTKJvbpVhLyGXHvgg9i/D+xnjgIKLfa1DLCjapkppZterwA2gK7JJOCl835F/paDvaAM jzwHZQiIJrC+7Bm/+e0aWk5vXGk5AMwEG7gdsMkvgZDz496tDxJS7joHpQ/b9MiEd79u pQKO02HFEyh2euBgNPZHb4ZI3NKzNxdEHIOaP0kB/GUFbCX+FF7k2wo4Xw1vw1oS0Fcy OLkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:organization:autocrypt:openpgp:from:references:cc:to :subject; bh=gjT8hbLibK/L4yPGWeH4yfeVjM2q26IbJ1GEP3vASlY=; b=mTZXa2G2qqLHylqF3wevqDFrcOLqq8HtVjDcfPTlSCNLfHXHVbaC+nBHLk3euCeiY+ NeXTipYQHfMB15KURKUx3I/oSpEnSCnmNHgOZehUNbuqdW9+N66v6NJ//OssVXZBdRBK NG7ZXiuTLTygOv+uJFdnt+l+KHHoQne9lRnOY6b1FbgumEjGj2JL4imUW9jxfcZRobnm FETLu2jOzrdILeSKTN/zAlRyFvYsWP9xkgJ//AyMGnf0J9RGwH+t81RdVNzKzwvesoaB eatUTUUjgcbd1f3T6ja174xjJ9xXaWd/fkGEP3iLOl9gNod4/gKISbFSv4aQQtTxAQjb IZsA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b7si15069956plb.0.2019.04.03.08.48.57; Wed, 03 Apr 2019 08:49:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726924AbfDCPsH convert rfc822-to-8bit (ORCPT + 99 others); Wed, 3 Apr 2019 11:48:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50336 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726151AbfDCPsG (ORCPT ); Wed, 3 Apr 2019 11:48:06 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9D4A7368E7; Wed, 3 Apr 2019 15:48:05 +0000 (UTC) Received: from llong.remote.csb (dhcp-17-19.bos.redhat.com [10.18.17.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5D51E18E42; Wed, 3 Apr 2019 15:48:03 +0000 (UTC) Subject: Re: [PATCH v2 3/5] locking/qspinlock: Introduce CNA into the slow path of qspinlock To: Alex Kogan , Peter Zijlstra Cc: linux@armlinux.org.uk, mingo@redhat.com, will.deacon@arm.com, arnd@arndb.de, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, bp@alien8.de, hpa@zytor.com, x86@kernel.org, steven.sistare@oracle.com, daniel.m.jordan@oracle.com, dave.dice@oracle.com, rahul.x.yadav@oracle.com References: <20190329152006.110370-1-alex.kogan@oracle.com> <20190329152006.110370-4-alex.kogan@oracle.com> <60a3a2d8-d222-73aa-2df1-64c9d3fa3241@redhat.com> <20190402094320.GM11158@hirez.programming.kicks-ass.net> <6AEDE4F2-306A-4DF9-9307-9E3517C68A2B@oracle.com> From: Waiman Long Openpgp: preference=signencrypt Autocrypt: addr=longman@redhat.com; prefer-encrypt=mutual; keydata= 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 weim8xU= Organization: Red Hat Message-ID: Date: Wed, 3 Apr 2019 11:48:02 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <6AEDE4F2-306A-4DF9-9307-9E3517C68A2B@oracle.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 03 Apr 2019 15:48:06 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/03/2019 11:39 AM, Alex Kogan wrote: > Peter, Longman, many thanks for your detailed comments! > > A few follow-up questions are inlined below. > >> On Apr 2, 2019, at 5:43 AM, Peter Zijlstra wrote: >> >> On Mon, Apr 01, 2019 at 10:36:19AM -0400, Waiman Long wrote: >>> On 03/29/2019 11:20 AM, Alex Kogan wrote: >>>> +config NUMA_AWARE_SPINLOCKS >>>> + bool "Numa-aware spinlocks" >>>> + depends on NUMA >>>> + default y >>>> + help >>>> + Introduce NUMA (Non Uniform Memory Access) awareness into >>>> + the slow path of spinlocks. >>>> + >>>> + The kernel will try to keep the lock on the same node, >>>> + thus reducing the number of remote cache misses, while >>>> + trading some of the short term fairness for better performance. >>>> + >>>> + Say N if you want absolute first come first serve fairness. >>>> + >>> The patch that I am looking for is to have a separate >>> numa_queued_spinlock_slowpath() that coexists with >>> native_queued_spinlock_slowpath() and >>> paravirt_queued_spinlock_slowpath(). At boot time, we select the most >>> appropriate one for the system at hand. > Is this how this selection works today for paravirt? > I see a PARAVIRT_SPINLOCKS config option, but IIUC you are talking about a different mechanism here. > Can you, please, elaborate or give me a link to a page that explains that? > >> Agreed; and until we have static_call, I think we can abuse the paravirt >> stuff for this. >> >> By the time we patch the paravirt stuff: >> >> check_bugs() >> alternative_instructions() >> apply_paravirt() >> >> we should already have enumerated the NODE topology and so nr_node_ids() >> should be set. >> >> So if we frob pv_ops.lock.queued_spin_lock_slowpath to >> numa_queued_spin_lock_slowpath before that, it should all get patched >> just right. >> >> That of course means the whole NUMA_AWARE_SPINLOCKS thing depends on >> PARAVIRT_SPINLOCK, which is a bit awkward… > Just to mention here, the patch so far does not address paravirt, but our goal is to add this support once we address all the concerns for the native version. > So we will end up with four variants for the queued_spinlock_slowpath() — one for each combination of native/paravirt and NUMA/non-NUMA. > Or perhaps we do not need a NUMA/paravirt variant? I don't expect we need a numa variant for paravirt. First of all, the NUMA information available in a VM guest is unreliable. So let just not go there. What we are looking for is to make sure your patch won't break the paravirt code. So testing the paravirt qspinlock should be part of your testing matrix. Cheers, Longman