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 D1798EB64DA for ; Sat, 8 Jul 2023 17:30:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A76BF8D0001; Sat, 8 Jul 2023 13:30:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A26ED6B0072; Sat, 8 Jul 2023 13:30:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8EE338D0001; Sat, 8 Jul 2023 13:30:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 7F56B6B0071 for ; Sat, 8 Jul 2023 13:30:05 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 27DC31A0228 for ; Sat, 8 Jul 2023 17:30:05 +0000 (UTC) X-FDA: 80989132770.21.93A70FD Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by imf08.hostedemail.com (Postfix) with ESMTP id 127E8160005 for ; Sat, 8 Jul 2023 17:30:02 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=QzeQwAce; spf=pass (imf08.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.128.42 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=1688837403; 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=KYD6jlXBis0p+PBTKlv8qzvLQ1gqj2dZYI23tZfDs+4=; b=sS5B7LmH2IpKwbPI87JTfQ1nhHAAd+In72b0B9eEO3E0Z6wYQ/vZ4UDwGlhEcBE4ODmBnc M1ZVabCNCuzeQR5Qi6kx7u6YHLgnda9AEXxHOMdESMqqPP/w0mOypW9w7E0+tRJt1O+5u1 gkwIKpucXt8iXj8dZnKpQTgRMLAnd1k= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688837403; a=rsa-sha256; cv=none; b=XfR1PypCaAW40TV9d/xL5KY9/sEK1zGUIAsi4E1in8n/v9VaeykbWoCFOtgb9vmlXZbYdd I8ouj6CWdPg18oqHOKuFJFZ+rJi/ryGis6v3/VcoNbCI8hZj6UagEQOAAwB5VjstYmXZzb g2Cxj3hvSt2KYqmcZQ80X5/aFns6V9w= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=QzeQwAce; spf=pass (imf08.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.128.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-3fbea14706eso31643005e9.2 for ; Sat, 08 Jul 2023 10:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1688837401; x=1691429401; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KYD6jlXBis0p+PBTKlv8qzvLQ1gqj2dZYI23tZfDs+4=; b=QzeQwAceDJjVXJvGJM+3WucNS3YwkJuqcjbVwBANp9B0yMPX6R+mPsBtM7EmTqinwO JDbtzZwZMizOiOl7fV7piKWPbwokJSlqBFiq4V9vWh/dTGbk4ezsUKKlbbj/sW9ieE+g T8gQKKc3AlrB4ZvceyWg+gm3K6DJ5+evwa4Cs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688837401; x=1691429401; h=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=KYD6jlXBis0p+PBTKlv8qzvLQ1gqj2dZYI23tZfDs+4=; b=UllvaDv0X53HYLidX3/uEtWNr4kJIEwa5WkRKoInwfEeq6e3DynqkE3o+roltTgJ8X bEXaHmOyOUB30cO0iD4mPtR49b8sJx1RNHN0FtUJF1v6K+E9NUmQmoVgfwAHw+RnmE41 8hNdTRj4TdYOqpQDG3TBlWJZbNiY0bPPCvCtLxunO0K7OUXXVRgoCXsLhcOBTYMzeCYB hwb5NpY0m/C0xlMwbIxV4AE/Tv8n7o5PCDdVFWBU29SeDfyMd6hauD2jJ8YqNZ6Dbxas PnM7yxdB8dzRaWLEKKb+I+amh7hTLku4eZBf5CHoAT4F9XngPpCRFTfsLUMqHY8SxTFb RiTA== X-Gm-Message-State: ABy/qLY5/OWky9GjiRTKzUXJwG3l4VQD4QEXKj6JcYMG6i/aKGnf6fas 2q7j+k+4wcrTIMT0eJIkMkM2c/pQy/7Q3eSDiBlInqSf X-Google-Smtp-Source: APBJJlFpK2OsLrdbuCOV3sJcCIG11enbi0MNoqGZj2FHMquctLowsOUVeSLq0JVg7LDfuQ625X7Hsg== X-Received: by 2002:a05:6000:92a:b0:314:c01:2e76 with SMTP id cx10-20020a056000092a00b003140c012e76mr5897838wrb.64.1688837401325; Sat, 08 Jul 2023 10:30:01 -0700 (PDT) Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com. [209.85.208.49]) by smtp.gmail.com with ESMTPSA id w4-20020aa7dcc4000000b0051da8fd7570sm3522970edu.41.2023.07.08.10.29.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 08 Jul 2023 10:29:59 -0700 (PDT) Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-51e292cf214so3869884a12.2 for ; Sat, 08 Jul 2023 10:29:59 -0700 (PDT) X-Received: by 2002:aa7:cc8d:0:b0:51b:e4b4:8bb0 with SMTP id p13-20020aa7cc8d000000b0051be4b48bb0mr5997528edt.2.1688837399295; Sat, 08 Jul 2023 10:29:59 -0700 (PDT) MIME-Version: 1.0 References: <5c7455db-4ed8-b54f-e2d5-d2811908123d@leemhuis.info> <2023070359-evasive-regroup-f3b8@gregkh> <2023070453-plod-swipe-cfbf@gregkh> <20230704091808.aa2ed3c11a5351d9bf217ac9@linux-foundation.org> <2023070509-undertow-pulverize-5adc@gregkh> <7668c45a-70b1-dc2f-d0f5-c0e76ec17145@leemhuis.info> <20230705084906.22eee41e6e72da588fce5a48@linux-foundation.org> In-Reply-To: From: Linus Torvalds Date: Sat, 8 Jul 2023 10:29:42 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Fwd: Memory corruption in multithreaded user space program while calling fork To: Thorsten Leemhuis Cc: Andrew Morton , Suren Baghdasaryan , Bagas Sanjaya , Jacob Young , Laurent Dufour , Linux Kernel Mailing List , Linux Memory Management , Linux PowerPC , Linux ARM , Greg KH , Linux regressions mailing list Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: 1iuiuh6886p3fmyyjmmir6a3hqzwp635 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 127E8160005 X-Rspam-User: X-HE-Tag: 1688837402-336269 X-HE-Meta: U2FsdGVkX1+nnTGWeuU2rIiZQ5GKV/YbNlRllyCz4a2opBKsctrunQv0mOcYhinWEHCBiwy24GPHq+Qw7M+NiAY7nqU481aDwf9+9QzsnKQtrTvHGsOzbDceoYeVmLoK8SHeYbawUAuBEwtTxS7DlysQ9gks2rdREXgRtnY86U1PJsPDbNbpk3/6UwXElisv6kLTqhJqfL1BifVT7WQ0XLjU82MNyCi/FNo4UYrz7CY3tXcN9iefgUA2b608wMuaO/lKuIQmjfVhUcV8bzAf0fvGKHKZ05134HlLBUR81ukVaq1YPS8gRK/5h73mCDMDNckFqmJr+MrhhmOhugKV5KwFGJDyK/Lf7Vw9ow/B1z/TYz2mHty1BCCd9eiPa1G/tdXZ3yZ35C6vKc6Rl77Z67BuLKIpEWwugFPR6OLN2wtmWvQdnzEB9xusiHT54M1s38vmg5qrLdIfMV/0O34KYSSFNq53PImIHzVaCpPGmxzZj19De+BMdJRvl8gA//AMBQTYpid4Gr7yhFlGqWkM4afbSB6NtOYAKKbl7Z12ZAYurWjq2GJlOB3ewx17fBYo4jOfjJq6HD9+9/01bnxcCX6zzsWQKgP3KyrjWwgCG7NcbCsvNny2Nkxp1dNA5h6fanTEribyOquvJPaJr8sQrEhmpPXX+B8CD8sR0SaRgZru3fjCgcnX12vSePPcu7krW/lKrJ9sWG5kDA3WeVZ742+0f1QNZ6qDFsWKdn8Qm7zm8wFv1Eoqz7jew1K0rW3Wm2iULUIS8lpd9ZBzWYB7u3g80/o1/lod31DYYzLxsgCYKAAKHiPBuomHp52HxenUBFss39VVW8WR20/Wuf1/YQKNFuMqSW4zuToXXwbX1AM+cZH9YnBRPlGJuXRtsYXvwlJ7f+jJqohSKoGoH2yU7WJK9vdAAqSOB6n6NkrSU6na4TSTJaAZAh+P2VVXNkFGjgGohErYPCHVVASVZLM y0+6IB5W YhPhxskh2nztwcZOAsDMMjxxFxpX0og8+FRjh88voaMg4OE+qDjnVwJiNJ2gnwWiWrRNCNAQ5jeUKRMZCctyrQw4KrDsUB2awzkuHLKPyLayyVF0U0PYgtj7gxl7++zz7K5h9z/3nMqdxbfTWllWLWIQUn0ApqXZoCzdS2JFGTsIC+HMxh/6OGFIa3yC3BiTbhUaQpEuasB36CQvPwa142q54z38WR2SNAiWH5YMTEzBpKaBLZT+NLa26pDwl4u/NfxToWN6aMLsHWmLffKSm5tjgB8m4XMvDViMUn9N5Otn17qHwNrFa2D78qYcLJBD/1SwAuwtQZuEJlc/oXXyduGr2l3RbW81a+4HEwUs7/A32ljVYjHuby4WfW37noPwslJRkSLimcuFcIey8GkLO6OVTZW9HWaZrVu3iNIZVvMTcdv5wvKrVn8JzqHbsWs8xPV2imO+rH846WDqg0iU+XYMbPvIp7zNPqD46nl8cxywuDvfZIgpy2hwUbUX55IvU7DT+iLYk96eiCu1tjrhfWQKKOnB+MCAuRZ4Jt69ZHmNI5A5eM/wKN9ekmttmLpDh6UPBcz4WnBBMQ+NIJqx8mgYdfDkWvCk/Ajj/ctsxTB2/NVx2kLJx37d/t0z8cWdqFtEK 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: On Sat, 8 Jul 2023 at 04:35, Thorsten Leemhuis wrote: > > The plan since early this week is to mark CONFIG_PER_VMA_LOCK as broken; > latest patch that does this is this one afaics: Bah. Both marking it as broken and the pending fix seems excessive. Why isn't the trivial fix just to say "yes, fork() gets the mmap_lock for writing for a reason, and that reason is that it acts kind of like mprotect()". And then just do what those functions do. IOW, why isn't the fix just to do --- a/kernel/fork.c +++ b/kernel/fork.c @@ -686,6 +686,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, for_each_vma(old_vmi, mpnt) { struct file *file; + vma_start_write(mpnt); if (mpnt->vm_flags & VM_DONTCOPY) { vm_stat_account(mm, mpnt->vm_flags, -vma_pages(mpnt)); continue; and be done with this? Yes, we could move it down a bit more, ignoring the VM_DONTCOPY vma's, but they are so uncommon as to not matter, so who cares? Linus