From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 29F85C4332F for ; Wed, 8 Nov 2023 11:21:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A33AE8001B; Wed, 8 Nov 2023 06:21:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E3288D00AD; Wed, 8 Nov 2023 06:21:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D2458001B; Wed, 8 Nov 2023 06:21:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7E6DE8D00AD for ; Wed, 8 Nov 2023 06:21:43 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 53E1FB5B9D for ; Wed, 8 Nov 2023 11:21:43 +0000 (UTC) X-FDA: 81434546886.06.2351628 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf04.hostedemail.com (Postfix) with ESMTP id 3D0AA40019 for ; Wed, 8 Nov 2023 11:21:41 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=gWlcNiqS; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of ardb@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=ardb@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699442501; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=XhC8xWIV6W1gV12Pu/CU1vbMeKJKTeNREzsTyrQIPYs=; b=Bz2SILIkWTe28AvvNQA/9gUYnetODFBC0cnsrDQ5Z3FLWe53e+vlmt/iB/c9BL6Xjk3S83 HdDO9s4Qv/lDge7j7lwpLbMV8PRy8MEVo/RxCVb1r49NkF7mO6QvhaG37Fe+30rRF9Wy+G 2Uj4HQ7PUd8oWi0oA91T+bqHTI3l1uo= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=gWlcNiqS; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of ardb@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=ardb@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699442501; a=rsa-sha256; cv=none; b=oUTxCXXq4QgOddd2UA3y9f+vx/1iKcQJvFCS4Kl341XCtzbeteKnfUb92cwR50GrEUIN0Z yA8o5oPh/7AiVF2bsV8RfAx4N1HnU40iLFxg5qkbPCYp4xkg9aeYoKyosuBnj67oUgdwm4 kGrqsZ10jS/zhirnv94OB1CKz3fasjs= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id 7F1B7B81AF7 for ; Wed, 8 Nov 2023 11:21:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9DA63C433D9 for ; Wed, 8 Nov 2023 11:21:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1699442498; bh=QvsTGBMyqYpxG6wP7fIuna1QJ2h+U8Zr4q9TDrPobzY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=gWlcNiqSDq4qFVyFdJfl776u13v1D3lGiyXuHJFmCgwKAgfldkN6uhd82YmHop11n ZEarMs8JL6qSsl42zZIzZTJU1/8sGKMavpJESNw8NzDgKSU+l77sm9gAX5vXmOe1XU OgJKpF3GiYvn4tnDoNJVI81qZuCgCcJ5BICEMhJ5Ne55F6KpbBSyA8va+wkU7zfa+O KH/t10/9RZnvi9LxpfO20JL9kQaZVd3dcssNOKSt8HA3TzSGip+jPDVl3sh6ORcczj 5mUR9TxtbBWl51iP4IsxeO5J4LYC+Q2DTN5ihLDIGVMpaCyQ4h1CAVej0dwivDr3Am B73P5g3RoDlBw== Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2c5210a1515so92735781fa.0 for ; Wed, 08 Nov 2023 03:21:38 -0800 (PST) X-Gm-Message-State: AOJu0YxyNc533jPbBwq4R+D1mAqbUhP1hF2yUi+yUEBLdsceSb4sbgAS C+egDhiZgJNfkEhuk9ZMWBfU1EgsNt/jtqMi8rE= X-Google-Smtp-Source: AGHT+IHKnW94kmpfk41V+VUBlyb5MZkNOu6rsHPRwJbnCNLDFUUTlJmQcw/1/mXOa4hPXI6dgkL15ag2oOUH+v6SQfo= X-Received: by 2002:a2e:9c50:0:b0:2c5:32b:28ea with SMTP id t16-20020a2e9c50000000b002c5032b28eamr1380107ljj.32.1699442496753; Wed, 08 Nov 2023 03:21:36 -0800 (PST) MIME-Version: 1.0 References: <20231103151354.110636-1-michael.roth@amd.com> <30ff0335-3d9c-7d54-85d0-5898320f4e1f@suse.cz> In-Reply-To: <30ff0335-3d9c-7d54-85d0-5898320f4e1f@suse.cz> From: Ard Biesheuvel Date: Wed, 8 Nov 2023 12:21:25 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] efi/unaccepted: Fix off-by-one when checking for overlapping ranges To: Vlastimil Babka Cc: Michael Roth , linux-efi@vger.kernel.org, x86@kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A . Shutemov" , Nikolay Borisov , stable@kernel.org, Tom Lendacky , Paolo Bonzini Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 3D0AA40019 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: axnnnhzdumaz9hsqs4szxnrhuyymcqr3 X-HE-Tag: 1699442501-14923 X-HE-Meta: U2FsdGVkX1/tCoXEJzvBFQ3R6HjzlYgZucU7hBBENGHAwzTy/A4xi6w/1jpGOmvQlQUmBUpwnE6RvPGQU2CD232xp4WGz6t1Arm3txcZaN4OEK+iNMBHukz7iw528uvInS0BgZiSH2XcXpf1VQfKk0f/pz/p6tJT34kckUfbuHGO9gf2SfFcamgJL20qnC0BTjdWWl/tkwAVxzkMfsL41xHsnR81J+sqnG8U4YQ7joqO1an1sfYJo0Lceyg6is57WzXXpcecKfhgX07bLZI9NOfepv7oG9AWZXIuLWQig8MMjJWZP91mP7ty84IWmDLdTuEpa9nK2fAtauojlcBpSGtj6wG43LYw1ikv5nRLdkAyS0clp36IyCqVoR1G6F5jJOapF6b1IoVfItXxZt9nfxGT5gyZVSUcIleEmgGph3O2TQK3VtE011Zq3zTo93HokhAQqcWBfsQ92Qc5RdJazbd5uO5A+lXLyleNMrQVgGHspnDtb3I8m9gKP/fL+kZJqe01qoc6uvLr3BbA7y5eAGaQbe6e20H0WUa1GOn7MTLWTQyII8fsNWg95yuK8ud0bcgdPWRkBtXLyJ7zJXg/dPrHN5w5fB+kF7aKNJfrS5psAjmI63YuImzkhZ+P5O2vCUaINQo6XOlabo28Nyv4+PrWwQnZATNAkdIuE8NIFps6fgl9JH1rYOQ6OtmV6AHcOB0pTEVlCGvIzZuASQzxA5o7csLj0R8/1cJ88KBP85HvEWi3OK41uQTlnXpPTdO+adoTDB6db4ghfncXPTOsFLZxNPQQdMz+d3n5O54U8sNddebcB/L3MvBIFsaN0Y+C81xpGvSwQLeIVeOxyB4dklZbKMzlL5+oTosxMfeJ5FwIP71JDH0sOS4NvwZUreWGarVyWSMPBMPfkbUwEWR7a5TNpuzNeIouP0JPR+WUKumfjI3cZy3gz8zkmS265NKTtSppQSDah8wt3ELNhWn V6Sf8dTQ 40Bpco78rEeh00Plo12PYpg6P4gSrrUUAuMNPAec+dGJ4kDsMwiliQDuW+/RvhaFgQAJ0uI2cOc4nhmwbzTCQSe7mgd+MqRUWGbD83kmeWNoHeQS8pkZmePgRQdHpzaxVUm1DPdO8TOw8rW4P6DgGm47x32lkLpinxLgHE4jb/Iz1v8bfiYXCbDYSK6+CCHfRlJrS7mrDByccoIP2LLh5GrrfgrcsbJHbfqJVuuzlZbH1U7dAWGZLSeibv5g3quoB6R324LOslKY+bS/kRg48QM5h7j28cf5FAfAd+BlX0IJJPVNHYT3IgIeFMDt3nYCPNaWASvsugZwFG/qA/cyRCVt0x9GW9CoSwlgGhLDkU+pgMX45vql7nrsk2g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, 3 Nov 2023 at 16:30, Vlastimil Babka wrote: > > On 11/3/23 16:13, Michael Roth wrote: > > When a task needs to accept memory it will scan the accepting_list > > to see if any ranges already being processed by other tasks overlap > > with its range. Due to an off-by-one in the range comparisons, a task > > might falsely determine that an overlapping range is being accepted, > > leading to an unnecessary delay before it begins processing the range. > > > > Fix the off-by-one in the range comparison to prevent this and slightly > > improve performance. > > > > Fixes: 50e782a86c98 ("efi/unaccepted: Fix soft lockups caused by parallel memory acceptance") > > Link: https://lore.kernel.org/linux-mm/20231101004523.vseyi5bezgfaht5i@amd.com/T/#me2eceb9906fcae5fe958b3fe88e41f920f8335b6 > > Reviewed-by: Kirill A. Shutemov > > Signed-off-by: Michael Roth > > More justification for introducing a common ranges_overlap() helper somewhere :) > > Acked-by: Vlastimil Babka > Thanks, I'll take this as a fix. > > --- > > v2: > > * Improve commit message terminology (Kirill) > > --- > > drivers/firmware/efi/unaccepted_memory.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/firmware/efi/unaccepted_memory.c b/drivers/firmware/efi/unaccepted_memory.c > > index 135278ddaf62..79fb687bb90f 100644 > > --- a/drivers/firmware/efi/unaccepted_memory.c > > +++ b/drivers/firmware/efi/unaccepted_memory.c > > @@ -100,7 +100,7 @@ void accept_memory(phys_addr_t start, phys_addr_t end) > > * overlap on physical address level. > > */ > > list_for_each_entry(entry, &accepting_list, list) { > > - if (entry->end < range.start) > > + if (entry->end <= range.start) > > continue; > > if (entry->start >= range.end) > > continue; >