Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp313138pxk; Wed, 2 Sep 2020 23:43:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfsJbAk5kpM8MdzZn1QMH9dSjuLSyMwxw56W0lfInfnrdk582r7bJWQwcke82GgOgRKOJQ X-Received: by 2002:a17:907:374:: with SMTP id rs20mr648788ejb.135.1599115423295; Wed, 02 Sep 2020 23:43:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599115423; cv=none; d=google.com; s=arc-20160816; b=TXXNQ/PaL5iBqa+wValgjHDtWhm7E/G9WqE/HDeUWxJAYw/QuvX28GhTF8L8t4i+Mu 4vAp4JNF1R47NYe146zFd4dNUqGlFk154NPLVvZtFUHQUy+u2oJiouox/6acMr3ZPyf5 J0nbrHBFrDJScupMVNDD1cDxnxNBvURDp0Embmr9j1dx31k+NVsnZgMf0lEVeVdV7GUI CbIO2CeAPYtUzw0Z1zPwDlNiAonZul3etXeXwdG7x12mBCzQonSdp69EQo6QBMdxFPf8 NaFfDXHsHZbaeKXIJ7BWT/g8Fe5Clt2TisYUEAE4HMTcs+l2fcnjPKBeaBciw1EERYCq WW1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:cc:to :subject; bh=+gnJDvbWSi5mIrUMGKxD/36Hqpo9IY+jhy6cxL0g73s=; b=c3C+YFWR2RFCFS7c0RXqELII66F7VFe6yF/Ps7XBGnlOGEPOSeAYHdZfyeizPIoOZV o8QPXWFG2v3U2ovXdkKeboyvjhRr4bYHvXM8dc0J/ba5VTLpKTi39KW+Gnv40qDzScg9 Ilbo+KPmTrT+ScaSelhdyJDAKI14yiSX5moion91+g+qL4W3Ad1v/P8RpazacpxA0wWs o7Mgka/8LBV8tqI0xVlccqeJ8teuSaQdBpZ0Xau3A2d8NITjHVmIVJrTHOztyq/oMSlj Z3iaxnxMV1mZHXaM47chHSo/pBpFYpj+hSMhSjHLzx0llI+3P4REvmTlPFssYN0KdXLG o7Jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b1si1493744ejb.515.2020.09.02.23.43.19; Wed, 02 Sep 2020 23:43:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727892AbgICGmp (ORCPT + 99 others); Thu, 3 Sep 2020 02:42:45 -0400 Received: from out30-132.freemail.mail.aliyun.com ([115.124.30.132]:54591 "EHLO out30-132.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725919AbgICGmp (ORCPT ); Thu, 3 Sep 2020 02:42:45 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R771e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04392;MF=alex.shi@linux.alibaba.com;NM=1;PH=DS;RN=8;SR=0;TI=SMTPD_---0U7nIIjA_1599115360; Received: from IT-FVFX43SYHV2H.local(mailfrom:alex.shi@linux.alibaba.com fp:SMTPD_---0U7nIIjA_1599115360) by smtp.aliyun-inc.com(127.0.0.1); Thu, 03 Sep 2020 14:42:40 +0800 Subject: Re: [PATCH v3 1/3] mm/pageblock: mitigation cmpxchg false sharing in pageblock flags To: Vlastimil Babka , Anshuman Khandual , David Hildenbrand , Matthew Wilcox Cc: Andrew Morton , Mel Gorman , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <1598928612-68996-1-git-send-email-alex.shi@linux.alibaba.com> From: Alex Shi Message-ID: <81d1feb1-2373-de9b-f788-adcce9647b41@linux.alibaba.com> Date: Thu, 3 Sep 2020 14:42:33 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2020/9/2 上午1:06, Vlastimil Babka 写道: >> >> pageblock pageblock pageblock rc2 rc2 rc2 >> 16 16-2 16-3 a b c >> Duration User 14.81 15.24 14.55 14.76 14.97 14.38 >> Duration System 84.44 88.38 90.64 100.43 89.15 88.89 >> Duration Elapsed 98.83 99.06 99.81 100.30 99.24 99.14 > The large variance in these numbers suggest that 3 iterations are not enough to > conclude a statistically significant difference. You'd need more iterations and > calculate at least mean+variance. > on the machine I did seeing much variation more on Amean. but the trace event would be more straight. It could reduce the hit_cmpxchg from thousand time to hundreds or less. Thanks Alex diff --git a/include/trace/events/pageblock.h b/include/trace/events/pageblock.h new file mode 100644 index 000000000000..003c2d716f82 --- /dev/null +++ b/include/trace/events/pageblock.h @@ -0,0 +1,30 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM pageblock + +#if !defined(_TRACE_PAGEBLOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_PAGEBLOCK_H + +#include + +TRACE_EVENT(hit_cmpxchg, + + TP_PROTO(char byte), + + TP_ARGS(byte), + + TP_STRUCT__entry( + __field(char, byte) + ), + + TP_fast_assign( + __entry->byte = byte; + ), + + TP_printk("%d", __entry->byte) +); + +#endif /* _TRACE_PAGE_ISOLATION_H */ + +/* This part must be outside protection */ +#include diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 60342e764090..2422dec00484 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -509,6 +509,9 @@ static __always_inline int get_pfnblock_migratetype(struct page *page, unsigned * @pfn: The target page frame number * @mask: mask of bits that the caller is interested in */ +#define CREATE_TRACE_POINTS +#include + void set_pfnblock_flags_mask(struct page *page, unsigned long flags, unsigned long pfn, unsigned long mask) @@ -536,6 +539,7 @@ void set_pfnblock_flags_mask(struct page *page, unsigned long flags, if (byte == old_byte) break; byte = old_byte; + trace_hit_cmpxchg(byte); } }