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 91D43D6EBEC for ; Fri, 29 Nov 2024 08:53:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE6E06B0083; Fri, 29 Nov 2024 03:53:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C969E6B0085; Fri, 29 Nov 2024 03:53:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B5DC76B0088; Fri, 29 Nov 2024 03:53:03 -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 9750C6B0083 for ; Fri, 29 Nov 2024 03:53:03 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E0743C01E3 for ; Fri, 29 Nov 2024 08:53:02 +0000 (UTC) X-FDA: 82838517342.09.66C2581 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf30.hostedemail.com (Postfix) with ESMTP id 6AD9C80014 for ; Fri, 29 Nov 2024 08:52:45 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=fW2bCBua; spf=none (imf30.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732870372; 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=O2+u05xTHSY3QQsq9FkC78F9fugOK9yNUXh05XJsWLw=; b=0Ifwcz//GdbPdw+cc1Ydb6gKaxKL90I0TYhVJ44zQrzkISJDIvZf/tljBwijJu5kFHedHA KZzJbFk8uUXPult758H0AdfwUmxX2DIB6oR3YE0f9T4ZHM91nnxleyB0G/hwyXjOXxPbuy IY8FoW4UIffst19tKuiq+IaeulwZ9AM= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=fW2bCBua; spf=none (imf30.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732870372; a=rsa-sha256; cv=none; b=H5O7rpLfcw0OYIGWQqlh3MWPmBSpGOoaxCpyGqukCpOMNwUREhhxw8q+pITqsfIGWfzuIg r/oimE0ASZHmoeMTLn+1fu76t6TUXWIBj+VYYFmPGOl1sHywVFvnLWjAwZ7pOqbt63SxUA fWXfmFb6ZMe0EBQwdLBPfYtlqJnR/1M= 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=O2+u05xTHSY3QQsq9FkC78F9fugOK9yNUXh05XJsWLw=; b=fW2bCBua7cQBQbDv2mHlhvAgNO mAKfin6cpSkjwFPWBU3Nzu4FaANef5HKnhrSqs2PpcgFQ1DMrgS5pgNc8Cq9CHUC/BiySjtgZKPD5 EzBYw2lc2FXfuQhfKPKcE5kH0TaJRkVvVh2hfLyXW5SpR4R7T1H68yrL7dwUZ02iK4D/FK5erlmm+ s9YEYwkF0bLmGFYJiqZIGGVJTcIbePY54Xl+5ZmY0BxjkMQpV93T9ycsTY3U9fXP8+N2ojnDQCj56 Maxx7qYlvUkonf9I75sNAI86W3nyGrl7iv1d3q2Y3UQSCPu/5RM8IWG0stEaCMlilS0/qAJnTkGrN RUNuGeWg==; Received: from 77-249-17-89.cable.dynamic.v4.ziggo.nl ([77.249.17.89] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1tGwk8-00000003nIg-0gqM; Fri, 29 Nov 2024 08:52:53 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id A19BC30026A; Fri, 29 Nov 2024 09:52:52 +0100 (CET) Date: Fri, 29 Nov 2024 09:52:52 +0100 From: Peter Zijlstra To: Lorenzo Stoakes Cc: Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Matthew Wilcox Subject: Re: [PATCH] perf: map pages in advance Message-ID: <20241129085252.GA15382@noisy.programming.kicks-ass.net> References: <20241128113714.492474-1-lorenzo.stoakes@oracle.com> <2550a3c6-b0d9-4ad2-ae04-5735d7b4cf5f@lucifer.local> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2550a3c6-b0d9-4ad2-ae04-5735d7b4cf5f@lucifer.local> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 6AD9C80014 X-Rspam-User: X-Stat-Signature: 3f9j3u3uybntzrscidgxosbsiqjhmfwt X-HE-Tag: 1732870365-616170 X-HE-Meta: U2FsdGVkX1/lswjkx+ZE73rNBmBMHiAVduwjR+SPpvVfM1ooiRdTRv77HhqGqSNhWggClo8IozVMU2XvVifsdH88yz5+o/7FRLszJ80lBdj+f+ifAHK99qFbuEXAfFMLyCzP5MetfC/5ChOqJV8TUp+de8VRXwvtCWtiPLUpsVDFwVdrzq9a+GeJgeni5ibszIMIOxnRRX0uYLrwmTtELcY3bPpPmIxCji7WkSrRe301JIZAxI36PqzHeq9MVb3VTbjsn5mD+aDKD3Dbt1w8JvzcnChfRcjcMYBskFftJng/bWLhhdsxVnypfTx4NCavD/c3Lby9SHJOMCHmeotUhKSRTu++1D9e14MNdQu4mbg2cckCR7u/B6ZeVEBd77PIf03mWcv+/ai5FQZ7tKTrTOkzDSPxoWUdobwC9ZUPNYdeCtiqfMuNZAe3jt9nspRD7MOpPE2jeCzqCIzxhQ4sB95DPvngHsgw1O7TynA1Lsir+xjufWVCG+7ElgnuvzY78RVaHiiaRJz/fBxOnpLwvGx27JME3NQF+lfXHXh/YzmUyD5f/US95zAvceBBnvLIszfIGOMn+kbOm+KttPi6/hCrjXY5qOVqy8AM2KBvAbbWQKG/U3KRAmUG2A5NjI0xSgAnUgBl4i+20GtF3FZ1K+7wVVZZWRMrWB3u6hTwhapTVgKCSKKe11nxnQ6etagwf1l1dP7qTwL5dw0k8oRdiWHCDz7jxy9sxU8VWehopQe5/597l0Kd7Ux7JMd0wAdiVryFE9VMHh+/Uj8lBfpt478R8lVUCSTHvaSc9d7ms7nHHwqgUk+uAod22P9C4d8E74IQWinCkfHE10jKgTmE01xsoVKk9QvqavDXumQVbdL0TaTX4Znh5gxD85ISP6gaXEWU+xpjjmRVf5ulgXnBKXINURPQPhUH94PCGRFUrwuvX5NCCZdV0BqLMJeOipEIyTK2ayiZo8cPVeoZRZo 2GNSCPht p/wfWMDpdO66u69vfTBMl53/owJ6Yr93WHvd+N3gPJrcw99eAysXBgRxBjDZEeYD0gs5YVuIM/qwKFpvDmxBzrWvtsn28hQ9C8Z2yymYlPiinYty/xuB5mVD25q0g2wzdSpaOChbe7E4qcLLRpsXrdlwrWQVch+BFIc8xrHGh8JmPv/SRoZ2qdb/FGABMDrYXnVgk 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 Thu, Nov 28, 2024 at 08:47:28PM +0000, Lorenzo Stoakes wrote: > Peter - not sure whether it's easy for you to make a simple adjustment to this > patch or if you want me to just send a v2, but I have to pop an #ifdef CONFIG_MMU > into the code. > > > +static int map_range(struct perf_buffer *rb, struct vm_area_struct *vma) > > +{ > > + unsigned long nr_pages = vma_pages(vma); > > + int err = 0; > > + unsigned long pgoff; > > + > > + for (pgoff = 0; pgoff < nr_pages; pgoff++) { > > + unsigned long va = vma->vm_start + PAGE_SIZE * pgoff; > > + struct page *page = perf_mmap_to_page(rb, pgoff); > > + > > + if (page == NULL) { > > + err = -EINVAL; > > + break; > > + } > > + > > + /* Map readonly, perf_mmap_pfn_mkwrite() called on write fault. */ > > + err = remap_pfn_range(vma, va, page_to_pfn(page), PAGE_SIZE, > > + vm_get_page_prot(vma->vm_flags & ~VM_SHARED)); > > + if (err) > > + break; > > + } > > + > > Need a: > > #ifdef CONFIG_MMU > > + /* Clear any partial mappings on error. */ > > + if (err) > > + zap_page_range_single(vma, vma->vm_start, nr_pages * PAGE_SIZE, NULL); > #endif > > Here to work around the wonders of nommu :) All good, I'll edit the thing.