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 8E0F0C77B7A for ; Tue, 30 May 2023 22:17:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 099D76B0072; Tue, 30 May 2023 18:17:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 04A54900002; Tue, 30 May 2023 18:17:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E2F186B0075; Tue, 30 May 2023 18:17:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D1C116B0072 for ; Tue, 30 May 2023 18:17:53 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9A4E88034D for ; Tue, 30 May 2023 22:17:53 +0000 (UTC) X-FDA: 80848334826.05.45C6779 Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by imf25.hostedemail.com (Postfix) with ESMTP id 7C8F3A000B for ; Tue, 30 May 2023 22:17:51 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=gdD7q13y; spf=pass (imf25.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.172 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685485071; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=o5DUvOnBbNjICLS8rqmJBzZV+nxJEkq4dfwQCNKJREU=; b=yaisRS5L53uNuhxgHuJ+Yeotz9fExGYF36TPFKjIo166aeJKh+kt6LaJWwTzInc0S7IcnA knQrlevbbJSkNLSiWiMI0lN2mhYydMN9i4KeArCJWYQLho3eReIVib3dmB2fGkPu+Nmey2 QKNrerytg6X3ZAoReW4eOB54ft6URQY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685485071; a=rsa-sha256; cv=none; b=hkB02eegEZAr11poCiPX98qLNrGhOPK0oZSXQHEckjlovnAnYYkOZMzMgQkepY7wQvOxl2 LhXGpN+cMvrt68+lizpipNJiVw9XeJYoQIgk/9vPv7XYwPsVJ4O0c/PG+2vEz56a3wSoML gGD158LRfptQF/TATCL8cdDHY4BjPso= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=gdD7q13y; spf=pass (imf25.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.172 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-2af290cf9b7so52475301fa.3 for ; Tue, 30 May 2023 15:17:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1685485069; x=1688077069; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=o5DUvOnBbNjICLS8rqmJBzZV+nxJEkq4dfwQCNKJREU=; b=gdD7q13ylhzuSbc0tCp1jSoF/6dL9hu6fuwYW5IS6CCSnPbj+DTylJJ9jPMTJYu6+P 9ldS4agVpZW1INit18f+fR/Pp3hW5TluxhK47FrTysvO2kMRRW0GSVIjrNje5jKUp9Rn CQr8PQoWSSLfXDJZAyV6sbibr8H6ajzuAQh4I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685485069; x=1688077069; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o5DUvOnBbNjICLS8rqmJBzZV+nxJEkq4dfwQCNKJREU=; b=IdaxofuuIb1ZMMysPGE2DCPMf5l3VKjhldc6+N5Px/7KR7kgIhuRQ60A/fG8+YFErd UTcUzui7Tq5gJ+WiSzY98HX37jHPu0I+x62811wmHxFvUy0tO1ysog+s/WfQ8WV2hv09 o/5HQpIJEFLjokjDHgHl7cqg/7bzpFv81lAJmooWA2kFtU4kM8T6wez2nAHMmv2qsn0X yy4suWKCfTz6dg4DXHRUp/ePnASLrGyUDyrt5g/jtW8ybwB4LmntwrEnPRnLcSwy+O75 JJYThUMpTuBrjjPrWNKuvJagn4/jTEi/l4o9eCv1C2sl3AX+OGEz8ICIRpL9n3ZNCTNy YPeQ== X-Gm-Message-State: AC+VfDxGk6vgJYYTbnmRUGHrml/Jz6AEW3BQI1GIG922l7EnGfB4Rc0M ojaWDcXa8uH+w6PMBDklAJhiW2HgNfuI1Sz/GfMnh1Va X-Google-Smtp-Source: ACHHUZ7zAwSJzKDaj3H81yqhJpjrF8MdTTGUqB6PkS6QypOgIe1rAaABViGdDvXYdz4eebLd0sV/EQ== X-Received: by 2002:a2e:9f02:0:b0:2ac:e66c:e91 with SMTP id u2-20020a2e9f02000000b002ace66c0e91mr1556706ljk.19.1685485069396; Tue, 30 May 2023 15:17:49 -0700 (PDT) Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com. [209.85.221.46]) by smtp.gmail.com with ESMTPSA id oz2-20020a170906cd0200b00932fa67b48fsm7883294ejb.183.2023.05.30.15.17.48 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 May 2023 15:17:49 -0700 (PDT) Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-30ae95c4e75so3199773f8f.2 for ; Tue, 30 May 2023 15:17:48 -0700 (PDT) X-Received: by 2002:a17:906:7945:b0:965:6d21:48bc with SMTP id l5-20020a170906794500b009656d2148bcmr3770717ejo.75.1685485048586; Tue, 30 May 2023 15:17:28 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Linus Torvalds Date: Tue, 30 May 2023 18:17:11 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] module: add support to avoid duplicates early on load To: Luis Chamberlain Cc: Lucas De Marchi , Johan Hovold , Petr Pavlu , gregkh@linuxfoundation.org, rafael@kernel.org, song@kernel.org, lucas.de.marchi@gmail.com, christophe.leroy@csgroup.eu, peterz@infradead.org, rppt@kernel.org, dave@stgolabs.net, willy@infradead.org, vbabka@suse.cz, mhocko@suse.com, dave.hansen@linux.intel.com, colin.i.king@gmail.com, jim.cromie@gmail.com, catalin.marinas@arm.com, jbaron@akamai.com, rick.p.edgecombe@intel.com, yujie.liu@intel.com, david@redhat.com, tglx@linutronix.de, hch@lst.de, patches@lists.linux.dev, linux-modules@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, pmladek@suse.com, prarit@redhat.com, lennart@poettering.net Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 7C8F3A000B X-Rspam-User: X-Stat-Signature: 55u9w9jhmgo6urx4ndwtyfkx1uokp9gj X-Rspamd-Server: rspam03 X-HE-Tag: 1685485071-764442 X-HE-Meta: U2FsdGVkX18IijWBnZ2gTuOONZ9ZLAH6Vs1pHcgY8WxtsLAOp5+n3UcxNPRoI0mukOxCD+dReZPdvyWMXg26hmp373c1+FIxHFBBs5q7WJH9CckCqtSIggpJ2nj/2zeZ5kBwp5DwKq7xTErmAFnGmf1HTA0o71E8+q0iwxoudjWL8G+eMDFxZ8nO15CFBT5Ij1rk0qJpn0Cc+qFUQvFwv9F2UMAjJ+yig2alTLIAGB8wLmdfIACudjypcii1Lhk3WYNmCcotWZ0V280Wbgn8hTsA6zLAbxaFWt+gTRZEOppbyVO+XBH0r1O73lsTmcBE1IzCYae/1+T7kUVtgQ875PtCeXh2421YiauuDnfJxDQg5f6+/+6WxUwn2YWDk23888nXDUgtHIwcc2U1ug1VzgrxFXTYGkzQ8lLGuPMdumfWp38OfdjAEYn5SJA58f6cbBkvzK24muzTeZPQAMgNr68B+HU0NAa1gDVaEAVofpZ0ynqn1ylhhdMyMC6f3Bt8r0ghyF4NQ0AIbm8Lqa0a/q8+eQcbhoNKioVKd9WbccIZ8Gs4AgTY69QiWR5OP8/imScOMz4xYYeblyjxLYs5qde1MEyCyYFWfw+mXPcMZq2URDvYOLE+/0TnMIX4Ovr34c+RZLL31yLkSPP0xQnDgaQ5UUO5S+QmMrncDDOK4F3LGxrJI36iFMjSSyIiKcQ3B2dicbwwv5pVz355n95e8RI6S4CIbGQXGqrcHJ+kahBUhbOuNkLTDXg5jcc8OlKClPgE245eN3Btd4erMxlenu0ICaaRXOhLPvuKjRmuHQMUTpaTaCHTIhwRj6lh73DhB8zkDrbBWsgdyzFJ4rA2xifk0kYpiVQ7x6rYX0s4V2TCC0P6qA+66wgiraQa+dG0l7YlkVfctJ08JD9fFdrBjdYrgmu8oCwy9Y1JSHvo8uPyFN6CPcp6L+4KhG1ZL3/AlJBvvyd9Abvr87cY8zC v35gE6+3 elNfm96ME3xhy2m8jdKVQs77jHa9M4N9QGc/qkGs62NExJk9N4STWibhCV0gatWTFUZubrxAT6v9htnbZXtFy9F/BJn0/L6HLF3s9CtmVJUVyMhHspzP1a51DSkzJuMurMtD1caVQUwOM+vUzeqkWHL2TWwXRsW5EhHHgvnLs3OqXKdq/2UodPoN+6a43YTmnhlbtO0CTiT/gHw1lopo/8374XSxBd6chBiAHlWPIv0kmqF0PkYEoS88rVocSmAgmxdwpU89OxZydeGmLy6qD/ba/HnxGe9HrZ1pUkOQM1WYm3CQhID415hRIN7eu0W8/yfTBOUPyCmqX+0YDyR3FZUCN64mR/iBeLUOgvw2VLSuW4K9qXH1YgCu4f9FI9ki7Th9I85vKbHejG5orJ0bSFGi2rqEU4zsetDwmPreut0KjWBPwvMzGqen/zTRqX+VGzKRLo+bVkzs9yoHBhxLWQG50UQrtqYDvSqby39vIfB6DkwMxp4hBLQx0RF3do7sP6MgLA735e9GY0twoWeovDniIH0c5FLebr8Z6/8PQgb48p4qr4rstFaRubFIKAAl1MGIaySdfKe8b2guc6H56N3abwRj455zcOAzBm72mT57HJ9bhCSsyLiELyS3koi2Ng1S0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000017, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, May 30, 2023 at 3:41=E2=80=AFPM Luis Chamberlain wrote: > > OK thanks! So just to confirm, it seems fine to return the same error > code if duplicates wait, or do you prefer for some reason for there to > be an exception and return -EEXIST if the module did succeed in the > duplicate case? I think either should be fine, since either was possible before. By definition, these are module loads being done in parallel, and so any of them "could" have been the first, and returned success before. And by extension, any of them could have been not first, and returned -EEXIST if somebody else loaded the same module first. So that "somebody else did a load" code: if (idempotent(&idem, file_inode(f))) { wait_for_completion(&idem.complete); return idem.ret; } could certainly have made the return value be something like return idem.ret ? : -EEXIST; instead of that "return idem.ret". But it does seem simpler - and more in line with the conceptual "loading the same module is an idempotent operation" of the patch - to just always return the success value to all of them. After all, they all did in some sense succeed to get that module loaded, even if it was a communal effort, and some threads did more than others... As mentioned, I don't think it can matter either way, since any of the callers might as well have been the successful one, and they would basically have to act the same way regardless (ie "somebody else succeeded" and "you succeeded" are basically equivalent return values). If the module was a prerequisite for another module being loaded, either -EEXIST or 0 _is_ a success case. Linus