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 058DFCD1288 for ; Wed, 3 Apr 2024 14:39:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 48A246B0083; Wed, 3 Apr 2024 10:39:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 43A3E6B0085; Wed, 3 Apr 2024 10:39:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3019A6B0087; Wed, 3 Apr 2024 10:39:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 11BB36B0083 for ; Wed, 3 Apr 2024 10:39:54 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8B6151C0EBF for ; Wed, 3 Apr 2024 14:39:53 +0000 (UTC) X-FDA: 81968479866.02.7CFF28E Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by imf19.hostedemail.com (Postfix) with ESMTP id 2DE6B1A0016 for ; Wed, 3 Apr 2024 14:39:49 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JyABBn+V; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of vdonnefort@google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=vdonnefort@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712155190; 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=FklsZuM90rznRBFLrrNtkklczLk3WQXoeuBMkIdc+sw=; b=YqgR1d6+uVCRFNY2IsgU/bccYzLGm4R7yDvPUINqnSx+2el6ovAEVtuj1Wk9eu6iU03C9h 7gPEhvK5ef/4glHzIcGLlBgcWuk4IwNoiwwO1uYFz7C6BrHXYQJEVDLtzGFany4Y7O/xVD hU2B8AUlN5IRNcSYLOWvsMW6LgRMJX0= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JyABBn+V; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of vdonnefort@google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=vdonnefort@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712155190; a=rsa-sha256; cv=none; b=2w0bWMa8Xv0GKcpDnCnz01w9YaBdPY1EnZTJ5PbPJpATMVHBsijUX/OLoItO5Wxvr1dljV kJJZijawlX7CbZEl86rFs8mNSNpHsrHCSnDm7fYBjOLrUhxQnrtRyxpaTjORLZY0dD94zd osqfa4kZdJaTCU0S/4EBFRuinuFng38= Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-34372e3db28so1127140f8f.2 for ; Wed, 03 Apr 2024 07:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712155188; x=1712759988; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=FklsZuM90rznRBFLrrNtkklczLk3WQXoeuBMkIdc+sw=; b=JyABBn+VgwFGU4CrlJPUwl0kVUb2TWB9jKVifvM31NXhEe0XLc87bQcQ26wTpoSvl7 eYlTvZTJI6uTcHAfjSahRXYqXAOJCsSDWLP4dWPFaT6gQ6ecr37bYCYDJomri8ckBYfh 2TsCnfQmTPHJYO/dF61OQav6wyB6WoiQitfMXYpwgcxwunYqWkZZHSk3qy+zcaC0CdO2 ekgf7KHqApsKyfc3D9icu2/6FYNDqtrBN+uNpfKUyE/J+dHPLUOMtx/g2+I2CrMtOem8 vFBXbGeOGcINcVhnSboYKLqhl1y6rSV3wsC+e/hupDAJri8hTlgm4rS81nao12C/l01N nufg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712155188; x=1712759988; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FklsZuM90rznRBFLrrNtkklczLk3WQXoeuBMkIdc+sw=; b=paOTi3ehekSsqbOmG9d+95ZtjwjtHtoB75+xWQsfbhm9E7hm1rycrG+bEL2UzJ6/QR jSg8Uc9PSkERrQ9G1JcMjL+eSgpfiMjZcLP1eccpWqioR1Hyxqxgd/7kpYZl6Ax/5Kev g/2kwr+lkOPCfltB5RbEAkB09PdfwLU0Sbm6uF23D/34Q5To3on0idxv2rq4LrBqVDTs CFDx4Ea4Oyej3rfX/tvnvp8khTPevV+OkQ6HMs8jGar91IfIWGpSdOM6vGMGPzy22mQ9 X7itvDxnT2NLVSrWESet7B2D62/ZOryq4+PefQxl6HY8R8zujBkiuTX2naDcuLUhnK06 eM8g== X-Forwarded-Encrypted: i=1; AJvYcCWULDGOJEaUv/j47/qtZei27A/fyEMjPyC3U7j7vUFxtPdMTyf6kBxoEDKWhgJM4Tc0NT/e8Rf8lNy0ChHdzoQhQmU= X-Gm-Message-State: AOJu0Yx7RQGdUhG52UZibxI762DWQwWTEOWEZjFNOg8XojxBxwfG4ElC kjNZnmegMahcUf0lpqWj5sWJHCBZ3n7rQSRURhVI/3p6I+YotBIy1KU1VbQOlA== X-Google-Smtp-Source: AGHT+IE0XU9qxmp/M9iPgXeb9rRKuNSCPxPTPloUyHTQq1k1QWzd/q67ITtUheE9vPqlgNtysOX9mA== X-Received: by 2002:adf:fac8:0:b0:341:d765:8715 with SMTP id a8-20020adffac8000000b00341d7658715mr1935030wrs.35.1712155188365; Wed, 03 Apr 2024 07:39:48 -0700 (PDT) Received: from google.com (161.126.77.34.bc.googleusercontent.com. [34.77.126.161]) by smtp.gmail.com with ESMTPSA id az15-20020adfe18f000000b0034335f13570sm15409592wrb.116.2024.04.03.07.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Apr 2024 07:39:47 -0700 (PDT) Date: Wed, 3 Apr 2024 15:39:44 +0100 From: Vincent Donnefort To: Steven Rostedt Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, mathieu.desnoyers@efficios.com, kernel-team@android.com, linux-mm@kvack.org Subject: Re: [PATCH v19 RESEND 3/5] tracing: Allow user-space mapping of the ring-buffer Message-ID: References: <20240326100830.1326610-1-vdonnefort@google.com> <20240326100830.1326610-4-vdonnefort@google.com> <20240329144055.0ae2dd4b@gandalf.local.home> <20240403101352.08c83aa4@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240403101352.08c83aa4@gandalf.local.home> X-Rspam-User: X-Stat-Signature: 3efz6wa8ob6myjisfwdmwi9kimsarwun X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 2DE6B1A0016 X-HE-Tag: 1712155189-703817 X-HE-Meta: U2FsdGVkX18LbhtF56uKq/S8X8fofNGivTJmnCfZddbbfvK55tfBO1sKA0P1Cb0esA+/twyZyd0hHJXzUOSX8iPSHKwO6Q2cmYsOsRm0keMngIlHgavVBIUXjQDHcmK2j4yqHiMmrk6r67OwFMKtE3fWi9YQBefmaAZYgEDBJ3/NWWtMIzke0bZsqYeQLGhWe+gffak949tN5lPdw5iQG5l+4RDii2dVqxtZ9ArGcHXTKNyPm2KtHs4pQROJPTZiXPky/4HQcnkUsLrqeCi/1vHFgX2LcyVEpYaHzf6w4ImaTkViLtcg28PI5aXSFogAK5fjg3HvMKNPYWYRd1SnnNSmK07HIoPWxx3rHqRW9qc2PpWMqeVaSi4RnurK9rTNxd15bAb3j7YIPjxpsJvvZ4Uh0dYrkGbnJRLjdvAg0MsCrxz3yGj8CsJBAkQFJfZmO9QRviFveMOA0pV4M2DaEZqCpi6eqNLLv7O/4CpcyCtEXRe4iYWz9ZtIWpz9fDz2KhlPAkkQM8YCLw+i/mT6HO8LC07wRy6nD2GxYGKy0P76qcpkB7WAnxARX+UvJx4CqKHxHO+ioc1KYhbheOUL3/GJdQ0lNUCokwyFCmmtPgdQFr7fZ7hY7Ibod1waRFSHiZiqyOzfMHhKaxaAONF0qEfTmpJwwYeYsT9jepNUYvKB76qeduNeDaVo4WK7LZreRzqJNtPZSQHWk0IrObz7V9XeWnJk++3XWEPcX/NaGqOTUAA77PiBCgImo48NTVFlCUQxB4irKhXILtfCIpLynYNqcutFn816gWZFFvV8tVy7FQHVk+SJWhPDAgvj+Z0JMRP4++cK1Qk2IYzlLXXByyL1t82YWr0V4pE33GayzfoBTmWDEV6eY32dPnValLVX5pwR3+Aa4xuasbMLOM/hSXEcYfq028gZ4UO4qWBhmLwO6FL83X7xlJu896NTDREWRGJGz7ikloiFRucGwWK SGdu2xny 28HGNI03c4FTCEe+3VpV9Movoi8TH7LCeUqbwzdNyrE3QaQtjBZohqVX/n1e6kWiUuIP9Nup3BEN0uAe6C+3+XQtWCHjQ/Osz3EcvWRez32n8g6cbxrYfEZwuQU794GxSkkUgWdWg41drrRLSrehZ+ti8EAvKGiQl6KvM0bMyGnN08IpgHSGsqWC9+jOE5pkBmpq4XtlhRZDiPNPlGO9xGsEf69N9nVirTQLNpWOFE0Z45/4ST/3XsrvNZqqwWmvxJ3FN3o93vDW0A2oP8gRsECnnNGsGxGaHta4KKyNvGz8j/O7YUnS6ikNo0cLRfkvn7+/6U9Lq8Of2mxH8kEATvxMGe9jn7wiC4ijdEk3HTz4AWmzZWZBu/mKB0cQZJYp23rVu+HNvDBbet2UffImU5rVko1+Kv4pNYwq+9wXl3eR9Pjc= 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 Wed, Apr 03, 2024 at 10:13:52AM -0400, Steven Rostedt wrote: > On Fri, 29 Mar 2024 14:40:55 -0400 > Steven Rostedt wrote: > > > > +static vm_fault_t tracing_buffers_mmap_fault(struct vm_fault *vmf) > > > +{ > > > + return VM_FAULT_SIGBUS; > > > +} > > > > If this is all it does, I don't believe it's needed. > > > > > + > > > +#ifdef CONFIG_TRACER_MAX_TRACE > > > +static int get_snapshot_map(struct trace_array *tr) > > > +{ > > > + int err = 0; > > > + > > > + /* > > > + * Called with mmap_lock held. lockdep would be unhappy if we would now > > > + * take trace_types_lock. Instead use the specific > > > + * snapshot_trigger_lock. > > > + */ > > > + spin_lock(&tr->snapshot_trigger_lock); > > > + > > > + if (tr->snapshot || tr->mapped == UINT_MAX) > > > + err = -EBUSY; > > > + else > > > + tr->mapped++; > > > + > > > + spin_unlock(&tr->snapshot_trigger_lock); > > > + > > > + /* Wait for update_max_tr() to observe iter->tr->mapped */ > > > + if (tr->mapped == 1) > > > + synchronize_rcu(); > > > + > > > + return err; > > > + > > > +} > > > +static void put_snapshot_map(struct trace_array *tr) > > > +{ > > > + spin_lock(&tr->snapshot_trigger_lock); > > > + if (!WARN_ON(!tr->mapped)) > > > + tr->mapped--; > > > + spin_unlock(&tr->snapshot_trigger_lock); > > > +} > > > +#else > > > +static inline int get_snapshot_map(struct trace_array *tr) { return 0; } > > > +static inline void put_snapshot_map(struct trace_array *tr) { } > > > +#endif > > > + > > > +static void tracing_buffers_mmap_close(struct vm_area_struct *vma) > > > +{ > > > + struct ftrace_buffer_info *info = vma->vm_file->private_data; > > > + struct trace_iterator *iter = &info->iter; > > > + > > > + WARN_ON(ring_buffer_unmap(iter->array_buffer->buffer, iter->cpu_file)); > > > + put_snapshot_map(iter->tr); > > > +} > > > + > > > +static void tracing_buffers_mmap_open(struct vm_area_struct *vma) { } > > > > Same for the open. > > > > > > > + > > > +static const struct vm_operations_struct tracing_buffers_vmops = { > > > + .open = tracing_buffers_mmap_open, > > > + .close = tracing_buffers_mmap_close, > > > + .fault = tracing_buffers_mmap_fault, > > > +}; > > > > I replaced this with: > > > > static const struct vm_operations_struct tracing_buffers_vmops = { > > .close = tracing_buffers_mmap_close, > > }; > > > > And it appears to work just fine. The mm code handles the NULL cases for > > .open and .fault. > > > > Is there any reason to do something different than the mm defaults? No other reason here than my own ignorance. I will remove. > > Hi Vincent, > > Do you plan on sending out a v20 series? Of course, let me spin that this week! Got also few typos to fix in the doc and I believe an include missing for riscv. > > -- Steve