Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp313203imw; Mon, 4 Jul 2022 09:38:59 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vERxNGh8ChTAe98mmNBRLQoP5cksvTDVGEp4VPJiK4MuxV5nDI/8HdhIaHy6DZBuKvxU25 X-Received: by 2002:a17:907:3e03:b0:722:e694:438 with SMTP id hp3-20020a1709073e0300b00722e6940438mr29460039ejc.755.1656952739487; Mon, 04 Jul 2022 09:38:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656952739; cv=none; d=google.com; s=arc-20160816; b=KhLdalPAaTEHAmZO7kMnxIDfB93p9b2iT6NUTskDJySDMOV7wT63MnLtyKrc4EEFR7 xZMSTNwg4WoeYFh2tHbCryJmrpmbAcIfipNN92WCIgufUyiV2lM1/Wbt6F4bVEfox6bg tjHFku+43q0eXdRoHaic9CNsLELP5Dd4ETepMb2j/Nrh43Z02rLOYGpnWlMnfCDE+i09 4td4qHerasXyYlNII63H/PaKuK72ARyRzOEJtoR22hRE8h+FFmIcvzPRFAz7u1wMMGUf UxVidDAtk4yIn4y0iezaP83t6wUz9+um78LPH1cXCoeU55bjbEUimRMXU8lR8zBjjuPc T43w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent :content-transfer-encoding:references:in-reply-to:date:cc:to:from :subject:message-id:dkim-signature; bh=CcX13tRiQ1CUkpKPTfZy53toNrkteRnr+JO8IbyM0ig=; b=hT2D+SqtNI2J6QbeULj8WItZ7sSDSLry7djFeK1fzxSKPhUFxolgnD3XnHQ9hkS3nP ki+xVgRbJwFoAVDUPh1nvarvC3Wp8fMVkoHGC3MlqZag/gClpGjDDquA987UEnDXOpaK NULnt4sz7Zov4k5V54LZiNouA+JNqD6b3oKFWkGRcw/YqT+xkVYh2RSQXGrR7NlU/nFT 08o1o+eoGNg01jhNMTVyVfDEaQBl8dJuD6jatDiwhczTjPyYQFittEB+y3kOBCWMESIA U2vZTHVHVF14ujdbn9lt1ytL1ZDmotEWsJl5es0TzpQFNakPgwTrPwgZarGOJHoVKfKQ PRGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=QGdxRuzj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ke20-20020a17090798f400b00722f9287520si8096769ejc.636.2022.07.04.09.38.33; Mon, 04 Jul 2022 09:38:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=QGdxRuzj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234512AbiGDQcQ (ORCPT + 99 others); Mon, 4 Jul 2022 12:32:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233028AbiGDQcP (ORCPT ); Mon, 4 Jul 2022 12:32:15 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D128463FF for ; Mon, 4 Jul 2022 09:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1656952330; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CcX13tRiQ1CUkpKPTfZy53toNrkteRnr+JO8IbyM0ig=; b=QGdxRuzj5zv0C+02YH52LS+2PYOB72TMK9Mj3Ub1ZIKdobJPHyOEpEUvPbf1WpWKmIthTW 6ylt/ABocnPaVVnzMtGoRd6892odwEiJtWrlSOU8yxEwntkwyrj0yARN7ZDsgQDU5MsbZ2 S+u11KzAyFOx4S3MZbQ35+CDy5gzNIM= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-47-70PY9Rl5OVall7ZKqGZN4Q-1; Mon, 04 Jul 2022 12:32:09 -0400 X-MC-Unique: 70PY9Rl5OVall7ZKqGZN4Q-1 Received: by mail-wm1-f69.google.com with SMTP id z11-20020a05600c0a0b00b003a043991610so5567933wmp.8 for ; Mon, 04 Jul 2022 09:32:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:user-agent:mime-version; bh=CcX13tRiQ1CUkpKPTfZy53toNrkteRnr+JO8IbyM0ig=; b=ApwK4ATWg62SGZ/PRv8oE2x8VwEHZCxpTrSMPGfEuS2ITCDe9g/wN71xDkQjExtiSW QsQDckV3uQsFSgnNu6PmY7pIfOBcCp9mTvMny0cFgRIuUA28lN0Q9BvRkLWTO9vHBUB1 GMI8hUz1bh/aGJjEFYEluIx7R8W1q3Hk+jqlrDVkQzYiAD6hygUOOKcEi4oiyJg4TJZv /6ITlrwJi+pOUi/2QMNNOmYGiG8pLjtJjCPbwGtKWIQxjdAAXXdqVqcoIEXpaEDkUeJ8 QJwtuF9me1m62MDjFpEshiT7oW8NPK3m4XTKHkC/5HfjmWPAMBiJgQTwfzj2+TTXITyY U0tA== X-Gm-Message-State: AJIora+k7octTQWRZiMsbcGsavqa1DffsE6Lf+ZBip9Eh9t1xZzgnGrH 7ha5na7oXl5x7zkohyidToWm56wyvwJoSHhTzcKYYkII2+uCpOj7iG2x6N3OmAzI4Xuq/DJludd wpeR2F0T7ogSFKuY2JCNhplSq X-Received: by 2002:a05:600c:2207:b0:3a0:4659:a0b0 with SMTP id z7-20020a05600c220700b003a04659a0b0mr34770149wml.48.1656952328703; Mon, 04 Jul 2022 09:32:08 -0700 (PDT) X-Received: by 2002:a05:600c:2207:b0:3a0:4659:a0b0 with SMTP id z7-20020a05600c220700b003a04659a0b0mr34770118wml.48.1656952328435; Mon, 04 Jul 2022 09:32:08 -0700 (PDT) Received: from ?IPv6:2a0c:5a80:1b12:b300:47b0:25ba:1a2e:72ac? ([2a0c:5a80:1b12:b300:47b0:25ba:1a2e:72ac]) by smtp.gmail.com with ESMTPSA id v192-20020a1cacc9000000b003975c7058bfsm20288132wme.12.2022.07.04.09.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Jul 2022 09:32:08 -0700 (PDT) Message-ID: <7c66ffb07a06f1c64985c3b6e3c212f1f247a652.camel@redhat.com> Subject: Re: [PATCH 5/7] mm/page_alloc: Protect PCP lists with a spinlock From: Nicolas Saenz Julienne To: Mel Gorman , Andrew Morton Cc: Marcelo Tosatti , Vlastimil Babka , Michal Hocko , Hugh Dickins , Yu Zhao , Marek Szyprowski , LKML , Linux-MM Date: Mon, 04 Jul 2022 18:32:06 +0200 In-Reply-To: <20220624125423.6126-6-mgorman@techsingularity.net> References: <20220624125423.6126-1-mgorman@techsingularity.net> <20220624125423.6126-6-mgorman@techsingularity.net> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.2 (3.44.2-1.fc36) MIME-Version: 1.0 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2022-06-24 at 13:54 +0100, Mel Gorman wrote: > Currently the PCP lists are protected by using local_lock_irqsave to > prevent migration and IRQ reentrancy but this is inconvenient. Remote > draining of the lists is impossible and a workqueue is required and every > task allocation/free must disable then enable interrupts which is > expensive. >=20 > As preparation for dealing with both of those problems, protect the lists > with a spinlock. The IRQ-unsafe version of the lock is used because IRQs > are already disabled by local_lock_irqsave. spin_trylock is used in > preparation for a time when local_lock could be used instead of > lock_lock_irqsave. >=20 > The per_cpu_pages still fits within the same number of cache lines after > this patch relative to before the series. >=20 > struct per_cpu_pages { > spinlock_t lock; /* 0 4 *= / > int count; /* 4 4 *= / > int high; /* 8 4 *= / > int batch; /* 12 4 *= / > short int free_factor; /* 16 2 *= / > short int expire; /* 18 2 *= / >=20 > /* XXX 4 bytes hole, try to pack */ >=20 > struct list_head lists[13]; /* 24 208 *= / >=20 > /* size: 256, cachelines: 4, members: 7 */ > /* sum members: 228, holes: 1, sum holes: 4 */ > /* padding: 24 */ > } __attribute__((__aligned__(64))); >=20 > There is overhead in the fast path due to acquiring the spinlock even > though the spinlock is per-cpu and uncontended in the common case. Page > Fault Test (PFT) running on a 1-socket reported the following results on = a > 1 socket machine. >=20 > 5.19.0-rc3 5.19.0-rc3 > vanilla mm-pcpspinirq-v5r16 > Hmean faults/sec-1 869275.7381 ( 0.00%) 874597.5167 * 0.61%* > Hmean faults/sec-3 2370266.6681 ( 0.00%) 2379802.0362 * 0.40%* > Hmean faults/sec-5 2701099.7019 ( 0.00%) 2664889.7003 * -1.34%* > Hmean faults/sec-7 3517170.9157 ( 0.00%) 3491122.8242 * -0.74%* > Hmean faults/sec-8 3965729.6187 ( 0.00%) 3939727.0243 * -0.66%* >=20 > There is a small hit in the number of faults per second but given that th= e > results are more stable, it's borderline noise. >=20 > Signed-off-by: Mel Gorman > --- Reviewed-by: Nicolas Saenz Julienne Tested-by: Nicolas Saenz Julienne Thanks! --=20 Nicol=C3=A1s S=C3=A1enz