From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31E422E8DEC for ; Tue, 10 Mar 2026 14:35:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773153353; cv=none; b=hD+zj7k01jNHVbkxicPXcWgQKoPpz7+WS+ziBhA8Xo4CKv7FnQ72l9Mps3duUH8IdwjwL6htBJmA7xoH+FWSR7TbO5mpP3LpQKUhA6mTmyTwah/BPjI+T3RTrlp9ei2Fy6GdvG2J5Sq6woVqwg7DnfIELT0KaFjDqV6ChgzWxok= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773153353; c=relaxed/simple; bh=ejHgdDAabKDPyZoSRHRPybzahuBisuPz+K6hBpo1uWI=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=nSTJDE6t3f7yqAUg3nLywK4039I3AuSlZFQG4DGj8hhG684a9PyH9Qy9dP+L1u9XIFEM/V98PnBgzdspStRwM+zVAuXH/L8fixAZzzyo7NZGaJZsTMeRE3/aRB0JsZPLckW6o91bN4TroevbSwMxsMeAX14SGbkt52177Ng32xI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m0961o/9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m0961o/9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3917C2BC86; Tue, 10 Mar 2026 14:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773153352; bh=ejHgdDAabKDPyZoSRHRPybzahuBisuPz+K6hBpo1uWI=; h=Date:From:To:Cc:Subject:References:From; b=m0961o/9TmU2a4NUKKSkrYCCYeYIjgU+RCsK9lbLXr2dmtlhTmx0vBhxiaJhKsxvj 3H2gB0IqObMoJDsixdkoDUbnKZipQDtRUINR9JXQd5feqhEFFnaYMnn6Dlv46Ru0mY JYQ301Nz9B3A8U45CqE1FBsM4xvnqVEeVsMZ1jyqVeD6sEj9mKkk7KaWtV4qsUqLKb 7tk88Uc88rRQm5cGUEuzy5EHRhTXpmNoA79DbMKBRln5VDTuCQ2y4XfAL7xvnRDa3E f6Gf5XIjsH9yMedtz7YxpE5bkdZiqaHfmYYCSBw2jYQz6FS1c5Nbf7qeFiARtbI0Lx F+VNBXM+Bc9uw== Received: from rostedt by gandalf with local (Exim 4.99.1) (envelope-from ) id 1vzyBm-00000002ZZr-3k3x; Tue, 10 Mar 2026 10:36:02 -0400 Message-ID: <20260310143602.750104863@kernel.org> User-Agent: quilt/0.69 Date: Tue, 10 Mar 2026 10:35:16 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Vincent Donnefort Subject: [for-next][PATCH 01/18] ring-buffer: Add page statistics to the meta-page References: <20260310143515.132579088@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 From: Vincent Donnefort Add two fields pages_touched and pages_lost to the ring-buffer meta-page. Those fields are useful to get the number of used pages in the ring-buffer. Link: https://patch.msgid.link/20260309162516.2623589-2-vdonnefort@google.com Reviewed-by: Steven Rostedt (Google) Signed-off-by: Vincent Donnefort Signed-off-by: Steven Rostedt (Google) --- include/uapi/linux/trace_mmap.h | 8 ++++---- kernel/trace/ring_buffer.c | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/uapi/linux/trace_mmap.h b/include/uapi/linux/trace_mmap.h index c102ef35d11e..e8185889a1c8 100644 --- a/include/uapi/linux/trace_mmap.h +++ b/include/uapi/linux/trace_mmap.h @@ -17,8 +17,8 @@ * @entries: Number of entries in the ring-buffer. * @overrun: Number of entries lost in the ring-buffer. * @read: Number of entries that have been read. - * @Reserved1: Internal use only. - * @Reserved2: Internal use only. + * @pages_lost: Number of pages overwritten by the writer. + * @pages_touched: Number of pages written by the writer. */ struct trace_buffer_meta { __u32 meta_page_size; @@ -39,8 +39,8 @@ struct trace_buffer_meta { __u64 overrun; __u64 read; - __u64 Reserved1; - __u64 Reserved2; + __u64 pages_lost; + __u64 pages_touched; }; #define TRACE_MMAP_IOCTL_GET_READER _IO('R', 0x20) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 17d0ea0cc3e6..82b4df579670 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -6154,6 +6154,8 @@ static void rb_update_meta_page(struct ring_buffer_per_cpu *cpu_buffer) meta->entries = local_read(&cpu_buffer->entries); meta->overrun = local_read(&cpu_buffer->overrun); meta->read = cpu_buffer->read; + meta->pages_lost = local_read(&cpu_buffer->pages_lost); + meta->pages_touched = local_read(&cpu_buffer->pages_touched); /* Some archs do not have data cache coherency between kernel and user-space */ flush_kernel_vmap_range(cpu_buffer->meta_page, PAGE_SIZE); -- 2.51.0