Received: by 2002:a05:6a10:c7d3:0:0:0:0 with SMTP id h19csp712340pxy; Sat, 14 Aug 2021 21:33:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw5sQX88+Br7659Sw/riCLCgcoAO+gGrZCsoNFYblQDUi7L+AJzydPvydRfehNzx2PHUYa1 X-Received: by 2002:a17:906:2414:: with SMTP id z20mr7123039eja.363.1629002023704; Sat, 14 Aug 2021 21:33:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629002023; cv=none; d=google.com; s=arc-20160816; b=bECg7NmoziQ3/Tc2QPBwODX7OTGZOoIhhWJjGUVciorffWb7QBjnz5mSMlzAzixFy2 BF5nSu3wXxgH+tE5DhS27JVnvCSTsw80vHcaak3RP7ARr6rIH7D5G83TBqvZtyWqKxkg yCXGmv/Xt2YG4KL/Tg3VmWoM+uXWqlthTLUPcqodB83PuKvOfcSpQGFRW5gb+D8Y4Kl6 FpkxHaHnCBDhpYGqslGeF0BhDE6e1b7B3UyJtf98OSlwqI1iJsHUqf30qSid5tmeyhAV rSo3g+6faijlB1fNK4pLcOLRShnyevyBnWUeELJSY5s6S1TLjUoKMo1fd/3i3gJ6WZMB J/Tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id:dkim-signature; bh=Mo0/iJghcs3ltE90AuvkxwwDtCsVpv8/RLkdNgmy5mY=; b=Nxts3BR2a4TpL7SOGk2baz0ALC/baZpiu4P3ZHFJdrkBSzMm04raBVn+yG5Ux4Z7k9 nraY6tZMkAkepLOuFdvsIBHfUKc4lc6g8/fmWFmhJ7jZierBx+83L5bJbtfWy+x1Fi7H L63RXsarmWy4Bd5NxkS9itg+wAwlArWx1XqprT4LxWMk/hi+2uwAwVekmgp6TmvRzRGu 9YhzYuCAq6b1ti8mW/BiOWepsmGOyiJW+saQ4q781dC6eVCDoNzcjEMk20U+kZpIrEtB N/eCi0Lj/xRTNI9Zx13jSyPrt1aub3OzxSBZ/hXeu+OGJsY9pwCxmDc4ReH6L0f/sZP6 B0eA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=CXer1sPz; 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=gmx.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l10si6404007edv.308.2021.08.14.21.32.51; Sat, 14 Aug 2021 21:33: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; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=CXer1sPz; 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=gmx.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229546AbhHOERr (ORCPT + 99 others); Sun, 15 Aug 2021 00:17:47 -0400 Received: from mout.gmx.net ([212.227.15.18]:59565 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229452AbhHOERq (ORCPT ); Sun, 15 Aug 2021 00:17:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1629001022; bh=28Cm88gB91O+DOo2cXrYee+kaKO5JMPkKnACkSuChu4=; h=X-UI-Sender-Class:Subject:From:To:Cc:Date:In-Reply-To:References; b=CXer1sPzt2AIwzMLMHXGIwNF6/oDtbpZdLGBCW3YFUyLc4rCaJTsQJ0oFwxh3njky JmhSkDcHNfijoiGF84VqSks9qKnoHvS+5J6OOnlZiBgrEcCEDFqPKW7fFTE3SgxbKg TYYHXE8953fmDGvbHUA17XKGv1iOSz2pmYR85OVk= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from homer.fritz.box ([185.146.48.238]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MNswE-1mQBHC2AkS-00OJOZ; Sun, 15 Aug 2021 06:17:02 +0200 Message-ID: <5dbf6cf9e82ef15ce0febf070608da2d5b128763.camel@gmx.de> Subject: Re: [ANNOUNCE] v5.14-rc5-rt8 From: Mike Galbraith To: Vlastimil Babka , Clark Williams Cc: Sebastian Andrzej Siewior , Thomas Gleixner , LKML , RT Date: Sun, 15 Aug 2021 06:17:01 +0200 In-Reply-To: <96ceab8e-4bf9-147a-e931-848676003c3f@suse.cz> References: <20210810163731.2qvfuhenolq2gdlv@linutronix.de> <20210812151803.52f84aaf@theseus.lan> <5f0c793d-5084-4607-8475-209fa7310ba2@suse.cz> <20210812162448.26274298@theseus.lan> <20210812164440.0426d8b7@theseus.lan> <96ceab8e-4bf9-147a-e931-848676003c3f@suse.cz> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.40.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:zOks0Z9lu4N4TQjHJJD53Xx17gxenPlj6wnwUl+gsW3D30qhNSO ErovfmyBVvAI2ONYC+X1kt3hSdMs5/y6WAnQN/q7OXYTNKq79pwIi0QfcjzFzk5NQRHJpQX PM3A/fGgmWPuIXEekpw4K3+TPpLkv7UMLQLojc//MbY5yTfG/o/kKaMlFju0KkT5A+IU5ua VAH2LoQ9XwrKhSK3weTnw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:nP1cVzObGqs=:7Ui9MoAU51KEcfRbs8YPRA AoFQzhZ99vY8S8jfP759kmx+/hBdtbTqtqaPkVuNlKpv185YmLSYXVRSSqwkWt7p6gR79MZHH 5/lezqhtdryPdvZs9UVa4xUKiCk4e0EE+4yoooihHcxCV0Sz25ZVuifjmBU5ZnL5yLeTvwsQ4 0EKadMWOrZic0xylEB61gwmPrE8n8scDqmZa4MzqZRfzCEKN12gILpof32V5+YHT2wQFOAgaP NRnkG4yRhCVr4qNOHwthC8+FtmYzs0Z9ZLX3g28SRzjo3rSo0Rxugww88zGXcaK86Np1nSvYG PV7+0E9Ng1+VHpYhWn0m2YqqYO6CyHYiGZteDsS9JdaIxAxQiV0/KQCRWQ1cdpi7gops9ovPp MVTG/6eJj4VUYYi+1wk9ZWpNTL86cl5n3JoLwMCXrVZHeOHlJ/AjkBIvOyMclBWLHCsEjhL30 qm9ClweJm0aSV458H7XYLqKM638wlmPJotTgtvUKBMxaCqa6eT9W9XH9F0XNvlTJMNSD7Wsat D3qvq60w5NeiXllQ9NyFIdDV26BGm6X/CGHiVuBl6rZ2uwSQAjvlAIztAhtXJ7fVxpQUF+9Uz ik0mo3oh0jNSE02duoe9pZfNEJyC29pzFr3DTFxWihbuemMhR5IHbYq9uAMNl7OzUlvRLis9A SHeJuNHdxUAm/jhfLxRxmTzzaw71fa8MehwyGIDIO8B1O4KPOfetbkks3iHiGYo8j+XbPGtBa JRNzusZzBK5ri5a/9O4UsyohNEvuHvJbW81RvIGOHJmHzeePCKRu9z8OttJqNopaH1lm5anWl VOGxcvejjParhhsbCmnjfMERPmCLg3H4YTjJMZrGL1w7TQACo8rcTaeGo6wMlukdtYqwQYaI4 hxKTBWtyo752getxWEu5ParTjyA6BNIdyWFKYFt9sC0BIb9HOfT1xyVqXuA0ZHg8lLwpANzC/ qTsiirJ7Ygilc1oxQUs5upKhbuwo1s4DHk4kqceL19isR+AQcTF1zpsX+TsMxxc6z8dx/L49t WRq2ZKDaLZtfszYd/ruySGoppUyLHHQi2NuKzVmIibI8x5Y48Cv86VQjZ65DAbN5I5PVRsaN0 QQyHMzzo/nqC+VHChc4Ilcyg2Caaen4xPZP Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 2021-08-14 at 21:08 +0200, Vlastimil Babka wrote: > > Aha! That's helpful. Hopefully it's just a small issue where we > opportunistically test flags on a page that's protected by the local > lock we didn't take yet, and I didn't realize there's the VM_BUG_ON > which can trigger if our page went away (which we would have realized > after taking the lock). Speaking of optimistic peeking perhaps going badly, why is the below not true? There's protection against ->partial going disappearing during a preemption... but can't it just as easily appear, so where is that protection? If the other side of that window is safe, it could use a comment so dummies reading this code don't end up asking mm folks why the heck they don't just take the darn lock and be done with it instead of tap dancing all around thething :) =2D-- mm/slub.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) =2D-- a/mm/slub.c +++ b/mm/slub.c @@ -2937,17 +2937,16 @@ static void *___slab_alloc(struct kmem_c new_slab: + /* + * To avoid false negative race with put_cpu_partial() during a + * preemption, we must call slub_percpu_partial() under lock. + */ + local_lock_irqsave(&s->cpu_slab->lock, flags); if (slub_percpu_partial(c)) { - local_lock_irqsave(&s->cpu_slab->lock, flags); if (unlikely(c->page)) { local_unlock_irqrestore(&s->cpu_slab->lock, flags); goto reread_page; } - if (unlikely(!slub_percpu_partial(c))) { - local_unlock_irqrestore(&s->cpu_slab->lock, flags); - /* we were preempted and partial list got empty */ - goto new_objects; - } page =3D c->page =3D slub_percpu_partial(c); slub_set_percpu_partial(c, page); @@ -2955,8 +2954,7 @@ static void *___slab_alloc(struct kmem_c stat(s, CPU_PARTIAL_ALLOC); goto redo; } - -new_objects: + local_unlock_irqrestore(&s->cpu_slab->lock, flags); freelist =3D get_partial(s, gfpflags, node, &page); if (freelist)