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 4CDF8EE49B2 for ; Wed, 23 Aug 2023 12:24:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A133690001A; Wed, 23 Aug 2023 08:24:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C3368E0011; Wed, 23 Aug 2023 08:24:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B25390001A; Wed, 23 Aug 2023 08:24:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7C4508E0011 for ; Wed, 23 Aug 2023 08:24:01 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 4B3914065F for ; Wed, 23 Aug 2023 12:24:01 +0000 (UTC) X-FDA: 81155286282.07.2D8CAFC Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf24.hostedemail.com (Postfix) with ESMTP id 53E3718001F for ; Wed, 23 Aug 2023 12:23:58 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=KB4J0oRG; dmarc=none; spf=none (imf24.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692793439; 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=NAn7Et+nztXESFPu12aEfljdvss36V30xUJRFOCYDik=; b=JWqg9c7BFpu7ys5/DAV9YpwIe9i+qr2tVp65Bq5WOGsb+d2kk/GA1joo8rNKdvDx8V4F/G xCGbF4ghVQ6voIlSQkeb4E2ugJGesdghXULep1hCqjAtIYE4tkwZUYmUYeYhmHUve++Ose BFNdySxENPZ50OzpgHTGNwz+1xYn/SE= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=KB4J0oRG; dmarc=none; spf=none (imf24.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692793439; a=rsa-sha256; cv=none; b=4eghX1dH6y/5XGH+Vh93GUK3kBT7X7uyoXWEjuXkUOSLynhtUjGnjZKGIGVcRIxUyVtsRR NNrz8F9c+umCNH65FOLA/fG3ylu5u22jov6bjDtRq6p0hejh1QP5PhYovQn0wcZXMWrWec 5s6D8v3ksMPdNmnsul6lrRYuO4o0P8o= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=NAn7Et+nztXESFPu12aEfljdvss36V30xUJRFOCYDik=; b=KB4J0oRGKXky6wM0JaxipxV2LA 9UMJBaEnoOehAfxgL1vhnEF4e0aE7f4gCC7v+yxjC5B8RuqKeZ/eGTPdEiWXeBPLnEJAPl4858djn YVNKkw8FwSdKQP1SKnuip+KrhKkYoey6fRXYlFoj48ITb2fNFpJqfbBPaODcrlJHLpTbZU/IsREv+ VLkmGkL+lOIDQmnEgtzTnvEiOvyKxhd2CIxXVC/x23C19kfCnK2PD9IsA484ZR9dL9IqBtfkLZj0Q 0jSX+ArokHZNEBLDhpOa7hVAVnqv4UPeUXm2/1qOTFJPTvlEvODyDdFcsFLlpYBZBBbyTQy22m17K raPapzPg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qYmtt-004ncu-4r; Wed, 23 Aug 2023 12:23:53 +0000 Date: Wed, 23 Aug 2023 13:23:53 +0100 From: Matthew Wilcox To: Yin Fengwei Cc: linux-mm@kvack.org, linux-perf-users@vger.kernel.org, peterz@infradead.org, mingo@redhat.com, acme@kernel.org, urezki@gmail.com, hch@infradead.org, lstoakes@gmail.com Subject: Re: [RFC PATCH 4/4] perf: Use folios for the aux ringbuffer & pagefault path Message-ID: References: <20230821202016.2910321-1-willy@infradead.org> <20230821202016.2910321-5-willy@infradead.org> <05db7f07-2ac2-f4d5-54ea-b5f1633e8c0c@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <05db7f07-2ac2-f4d5-54ea-b5f1633e8c0c@intel.com> X-Rspam-User: X-Stat-Signature: kkazhmwtbqdspef76fdpf948ektf5xo6 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 53E3718001F X-HE-Tag: 1692793438-56556 X-HE-Meta: U2FsdGVkX1/rLLFVzzN87O/N9KGzwYkBDZb0iLJwsrL0A3WhiCKH0lMLeFV3hJreJyh9xEapq+9XQb7296eIOhz+sYQ2HeVexaFqU9DmdmnQ3DxB5eL9Wsqxk5/gqgYgHZMGnZUVFnlZjJNl0Jtn7q+S5GlS4zUfiOjX+PgPrWJyaVsLdE6RtlfnL+K1snJ+Oh/g2JwdlxpRO8RBA99xu0GhJnWmq25eiP/f3SjTzqnRI2lS2xFjwlX/GwKzPMaAZ6/2aLe+mD4CZ6AtNc5mfo2ej/W9mA8Xh3WQrkFGKRWBU+7VbJRZw1e9qRoJYpS/sVh2YEe0ogoEE5DtkgxDBUVEEUje6wpFrynu05TAhde5vvmMaqpSzpjXPh1+2TDB7CgwEH9I0Y32S31ONOAJSocHA2EAbzeXVXF0szfbppiBzgromFqQic/oU8ZmQHTY44FtDtqZXYBiDOvJyQhUC27qFUwghQGrdbmGkHo/jKXT457k1wWOPhoCz+R1I56Yyib7kUfMI1ut3hRZTrwIdNfUIt4Q82i/XOoZUW1/yGgUCDXN6G/w7CRsZj0qWHUY4cI7LHG8jLOQOlSr62L0u8r+RC3cA2Ny6yEp61Of5SOVjcyZMb9/AZjt16rpYoJRxnfmd+fXaQ+Ta7ltpvjYDAVIgNzPO4BJd6+rFtpksuylTVeNKUWNn0T8S1TkH8yWZQcxsbLR6xDZj4vKb0irJRMQGqsbnaNh3NeY16yFhUgVvf4L9LVKnqUgtJi4CSiOM06TwlDhp1IRs0Qtek5H5IhtwUfnxmFwV9H7jrvS3Z+UdS1dwNOxShonWdmmtpVjGmda31C74owYdRp5KHYJprQlCzmexj61KPqzIPlkC/66lw5T8I1BT/8AsSAhtg1UL5R2qMd3F8LoZzH/22k7DujhRAOjMBymDzJgDe5VZu4OjKGknoMSVHruZdms0EYyB9WSVQHO39lxhOWaxzs pr7Hdok9 2AhAHossaBT7vSj0KX+cM8dUuwduyeHVGsDZ+v/CE4Tm1VW4FqQb4TpaQCyOTm96QRbb83OgSxrLv0eVxXu1pKClN6iKRWU4q/96zwATSqfEy8bp4TkZ8VY1tw9sjuYp+YaqNbIvgDcBWLC4= 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 Wed, Aug 23, 2023 at 03:38:13PM +0800, Yin Fengwei wrote: > On 8/22/23 04:20, Matthew Wilcox (Oracle) wrote: > > - get_page(vmf->page); > > - vmf->page->mapping = vmf->vma->vm_file->f_mapping; > > - vmf->page->index = vmf->pgoff; > > + folio_get(folio); > > + rcu_read_unlock(); > > + folio_lock(folio); > > + if (!folio->mapping) > > + folio->mapping = vmf->vma->vm_file->f_mapping; > > > > - ret = 0; > > + return VM_FAULT_LOCKED; > In __do_fault(): > > if (unlikely(!(ret & VM_FAULT_LOCKED))) > lock_page(vmf->page); > else > VM_BUG_ON_PAGE(!PageLocked(vmf->page), vmf->page); > > As we lock folio, not sure whether !PageLocked(vmf->page) can be true > here. My understanding is yes if vmf->pgoff belongs to tail pages. Did > I can miss something here? There's only one lock bit per folio; there's no lock bit for individual pages. When we check PageLocked() on a tail page, it redirects to the head page. __PAGEFLAG(Locked, locked, PF_NO_TAIL) #define PF_NO_TAIL(page, enforce) ({ \ VM_BUG_ON_PGFLAGS(enforce && PageTail(page), page); \ PF_POISONED_CHECK(compound_head(page)); }) #define TESTPAGEFLAG(uname, lname, policy) \ static __always_inline int Page##uname(struct page *page) \ { return test_bit(PG_##lname, &policy(page, 0)->flags); } and that expands out to: static __always_inline int PageLocked(struct page *page) { return test_bit(PG_##locked, &compound_head(page)->flags); }