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 DEE7BC05027 for ; Tue, 24 Jan 2023 03:16:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4A8196B0074; Mon, 23 Jan 2023 22:16:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 458266B0075; Mon, 23 Jan 2023 22:16:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 320A06B0078; Mon, 23 Jan 2023 22:16:44 -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 239156B0074 for ; Mon, 23 Jan 2023 22:16:44 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0459D1402C3 for ; Tue, 24 Jan 2023 03:16:43 +0000 (UTC) X-FDA: 80388230328.25.772B568 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by imf01.hostedemail.com (Postfix) with ESMTP id F06714001B for ; Tue, 24 Jan 2023 03:16:41 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=irnAgSyk; spf=pass (imf01.hostedemail.com: domain of npiggin@gmail.com designates 209.85.216.46 as permitted sender) smtp.mailfrom=npiggin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674530202; 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=bGZG93eiXRk22TOPDmFZGXGIOl8nFjO4bOBcCBu5uW8=; b=OQ59aL8791NVpwa+LLaHmFdMemJQpSnbMEJVNDlRGs/A+TF9SZTr3O7BX65aM3goz1ORxq fTpVkoCrIVMc4oElctf+p2deT8Rkv0NKN8p/ToNGzYJkomEZnP3x4AYhEIB8g4bpjUfT7c ufG4Qbk5TH2f6zKy71BJh0YWcWV9l/0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=irnAgSyk; spf=pass (imf01.hostedemail.com: domain of npiggin@gmail.com designates 209.85.216.46 as permitted sender) smtp.mailfrom=npiggin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674530202; a=rsa-sha256; cv=none; b=waeZTWMcSnshXCxkE+FU7jKJe4BuZATwZR0SK+Yi9dQnJ94G08aOPcwztj64jp/iMOdXUf Jhk2nq4s9Qaoqvv2Dyh6XzDCU+sylpJdJWS74vcAx1t/qkZwphEePDLQ6Y81/KMB/gkNQT DD1JuAKZuBRKIo1u7HHVb+37kUVmOVs= Received: by mail-pj1-f46.google.com with SMTP id t12-20020a17090aae0c00b00229f4cff534so420703pjq.1 for ; Mon, 23 Jan 2023 19:16:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:references:to:from:subject:cc:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bGZG93eiXRk22TOPDmFZGXGIOl8nFjO4bOBcCBu5uW8=; b=irnAgSykIWbmg9WdpxuRyMCuC9r6EUakDFGK2nhjUH6ns5CB7glOvHSr+w8WdAmM74 d4VSceT9xSlPEdFgWxtfyT4x81AG5eDXp8YSQSRMxmMvd+0gHAWp9hwb3v6K2I6O8LHx +xS/v2NL+vLtzBZaF7XFRPnR598DoWxZIRk95P8lWODo91fsUYHmTkuEnx+mbpHZzRiX RmFt/pZPihavSWUDUJvkUs2DVsuNAb7Ao7kog/4VqsKUo9i4zW/9NuCtEkr3W6gAJiIU b226eHn4FvJCFMMMySsSGi6Enl3ZscnElE1NS9TjLXundxfkTXoNQsKAzsitrOMN6Q00 +e4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:to:from:subject:cc:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bGZG93eiXRk22TOPDmFZGXGIOl8nFjO4bOBcCBu5uW8=; b=LuCIKYLG15qgpQ9hVVzRr9f+Vn7uYsvblZzU5QYLpa6Jy81HxXx0GJlwcMugMqonxX hHTl4OnYgmRvLH5FuiJVqrfdoms85Y8GCynohHDGF+VIkD6ugWcjvNzZFMwk6oSWkltL wIxTHIcm8pN/yfrwDE3uOSNvE5JJrni7Ocs1FdnGb1djKqlwZedywxQtnqKHeOvzyVwA Zz4bJbvFlazEbQlIduvFacwjnygEBqfM6z0n0zFDT7CBrGr/YiFdcXjxkxjxOG7cI9Kl t/itk7Amp6nSJN55JHHAsgtFa6nA4uNaVLmuggdjlYz7Hy3faTRt08HjA9KMS3agxUIA tpsQ== X-Gm-Message-State: AFqh2kqjVy0YuJQZY32BCBwAnvkvu0hFkSNjzISQIRUkFu7WQG9nA8k/ FKfgoojGzmSipr6n08ey1Is= X-Google-Smtp-Source: AMrXdXskD2W7zrNiaiZ6X+Pl5+Tp/VgiW0zZf5Jhb6BD28XXzBRcQy84AtLhiISjIw0wPIJMdQLWJA== X-Received: by 2002:a05:6a21:9101:b0:ad:db18:6d0d with SMTP id tn1-20020a056a21910100b000addb186d0dmr27460888pzb.59.1674530200792; Mon, 23 Jan 2023 19:16:40 -0800 (PST) Received: from localhost (121-44-64-35.tpgi.com.au. [121.44.64.35]) by smtp.gmail.com with ESMTPSA id p5-20020a170903248500b00189a50d2a3esm419719plw.241.2023.01.23.19.16.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Jan 2023 19:16:39 -0800 (PST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Tue, 24 Jan 2023 13:16:34 +1000 Message-Id: Cc: "Andrew Morton" , "Andy Lutomirski" , "Linus Torvalds" , "linux-arch" , "linux-mm" , Subject: Re: [PATCH v6 3/5] lazy tlb: shoot lazies, non-refcounting lazy tlb mm reference handling scheme From: "Nicholas Piggin" To: "Nadav Amit" X-Mailer: aerc 0.13.0 References: <20230118080011.2258375-1-npiggin@gmail.com> <20230118080011.2258375-4-npiggin@gmail.com> <5F3590B8-3F25-4EFB-BE3A-D32AAAC0B2F4@gmail.com> In-Reply-To: X-Rspamd-Queue-Id: F06714001B X-Stat-Signature: ss97g7kpjaf6dcnfu64cys5bctbcyzpr X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1674530201-97219 X-HE-Meta: U2FsdGVkX18xScjgAxpyKi+P862eh0fDOrNFced5ar7CyzuEgWLACXHUgYloF2dIadb3N+FO5U6Rg+lhXtvr0/vLkxhsEwsDpKSBaA0CmhwRhKXFwt/u8MUarKQsT6gMg5ukCivDbURESZjqxHtLSCCGKO0nYqA9VnIHYtE6brPJSB5YV98Yrx0qKl0T3Kfh9peHX6QuCTm5ML2z0yDH412gvt9ugf0O3tCqqUyKBkbuysVQjmbl01jiutQOO6hLBdq+eMkcS9fgDG8fa/o5Nw5A9OPQwU87PLOvVsew/gal4wqkiNjyHyzslTNwheQpL9/cEAdSvU/P3qLU4B1pCLarXMUNkrLd+epIN+AKG3xJmUVdkeugbjWZNb13DErrSWlvQGpe0lftiRnXY26v98SM94/VL1Zon2i7XxeD8mjOLv5GMeRdcBsDnESY4APbA96ch6d6lJBzos3Z2DicAUnYEMwUBfbL5JkccTKCDPInpeOYVUrYEWye83+Z3WRYttHf+2CToYDIbACpOwdL8iSVyhrx8wdoIx8XM7Zvgih8pSHq0Qd9Y6+9Hv62z688Hea6eDEWdy9OdBxVhTCdrFKbYtA2qoBmwI+ovXTEus9qNParOPwqhkXtsm2f+segjosCa/nvh25/j5OlcSxmAU6E/Q2q8UWP7gkMxAivquMtNtrmH+z8Tb4VVym0Gig5BGY4maHg5dJ3UVKFr66zWez2d+QqjO0+9sTF579+3d55xvp59VDmOS/R40GiGUDnE2N46O/K39retxz79F2XC7VTzmCqAM1u5JvfQ7iGlRYs7SzOF5ECiPWhIj9GsuU1vF39AvDYVFW1uzQ4+BiwG9gPQbuYZcRxgodmQBlw/P3Ex1UITgZhnrggxa7zabz1emekKWVs9gn0j199VJHZ/V15gCKuVDXw1n6CvA6NAOPaozGDwYEq70f5/NYLSBPJzdL6C7JUF8ARs1kCyJZ v4bb5xai R6F5yG6M2k36MsFz/oYkjll+K50HfqFW7BTuQoNbuoW1dkAzbp23DJp5XNUyhDCWHTqQel2GaLCbwSl24iPLjvFWOF5rsDqpVI0tIQUhwJDhdeex5fPlQZcJX6KldcuBN2fykw2bMZlofQLpHzQBQ/OTtC53Hr2NqWfH8jLLcbhlxI9iMzzXPEJLQycsog16FbPqpEDX2LtWPQICK1HNR+vg0e81Vc3kFEtxPzJM19F0OMYaQWII2rJ/WhCBFE0wl7asYcXZtRfEhZeiB6xUWRaQH7h/dGg8kSG5677UEHHTjvpGnYSTEkP7oQ6E9TE4F+734aQ8oriFMnFg66JzISkMzM0B1oD8aAXwyajtg4vR3rlKa3F4kBHaliKnqjR1AtiORxteHE6x5Yu7+viXRg977CfTGXuRp3ED7NW8M47SI6F8qrPsq3I2EMNx1ZeQv/GvjswZQjj7EO/8rGUchR8Vk+RQS1iLEqpcxHSzSoiyij7IeNTilpqY6BUaUJqdFduAlyN/J64nWYu91cGAFj5LayqL4JYh1JhEbqQUEG6zG8gXjfJOnY0YxbmlUy0JyZCZOunffQOCfMqaoieoM2Miy1gb3RwDy/iRvbtlp2mIGnN5WQ5P4t6tj0dYrsavy/YBWWKMHFlQIhFzujG4Zl1vPMzV4mBjlGuU0saIn2stxvaszurpjOnDKSw== 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 Mon Jan 23, 2023 at 6:16 PM AEST, Nadav Amit wrote: > > > On 1/19/23 6:22 AM, Nicholas Piggin wrote: > > On Thu Jan 19, 2023 at 8:22 AM AEST, Nadav Amit wrote: > >> > >> > >>> On Jan 18, 2023, at 12:00 AM, Nicholas Piggin wro= te: > >>> > >>> +static void do_shoot_lazy_tlb(void *arg) > >>> +{ > >>> + struct mm_struct *mm =3D arg; > >>> + > >>> + if (current->active_mm =3D=3D mm) { > >>> + WARN_ON_ONCE(current->mm); > >>> + current->active_mm =3D &init_mm; > >>> + switch_mm(mm, &init_mm, current); > >>> + } > >>> +} > >> > >> I might be out of touch - doesn=E2=80=99t a flush already take place w= hen we free > >> the page-tables, at least on common cases on x86? > >> > >> IIUC exit_mmap() would free page-tables, and whenever page-tables are > >> freed, on x86, we do shootdown regardless to whether the target CPU TL= B state > >> marks is_lazy. Then, flush_tlb_func() should call switch_mm_irqs_off()= and > >> everything should be fine, no? > >> > >> [ I understand you care about powerpc, just wondering on the effect on= x86 ] > >=20 > > Now I come to think of it, Rik had done this for x86 a while back. > >=20 > > https://lore.kernel.org/all/20180728215357.3249-10-riel@surriel.com/ > >=20 > > I didn't know about it when I wrote this, so I never dug into why it > > didn't get merged. It might have missed the final __mmdrop races but > > I'm not not sure, x86 lazy tlb mode is too complicated to know at a > > glance. I would check with him though. > > My point was that naturally (i.e., as done today), when exit_mmap() is=20 > done, you release the page tables (not just the pages). On x86 it means= =20 > that you also send shootdown IPI to all the *lazy* CPUs to perform a=20 > flush, so they would exit the lazy mode. > > [ this should be true for 99% of the cases, excluding cases where there > were not page-tables, for instance ] > > So the patch of Rik, I think, does not help in the common cases,=20 > although it may perhaps make implicit actions more explicit in the code. If that's what it does, then sure. IIRC x86 didn't used to work that way long ago, but you would know what it does today. You might find it doesn't need much arch change to work. OTOH Andy has major problems with active_mm and some other x86 use-after-free weirdness that that I wasn't able to comprehend. He'll be naking x86 implementation until that's all cleaned up so better try to understand what's going on with that first. Thanks, Nick