From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A06A83C276B for ; Tue, 16 Jun 2026 17:55:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781632545; cv=none; b=R9UyWK04lhRpCKGHqpeE24xSe92+6mDip2VtTV3kE+ufsnUEFhjiwgq4ywRygXAocoBNIOeW1WaNV3ZR1eP061upCA4lkZ6EwOXnWr4RgOS5rhWGmpmGMr/DCMrnlpUzWUpIZYcOBvSrBHPiTaU6kDlSeTiFVeqjlCSqmwT2tGk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781632545; c=relaxed/simple; bh=DXPjtg4/TviSEO7XmWxn/4hRPAUBoOP65dE/hyPsigQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=KVQAcPI/hkA2Tq6NcysER5TnEgSTZyo5nEVtUvb4wteCx35vwyag8AA1cw4Kix340b75Sa9OG7jLORYIrqWCrdTvzsPle5fZ9eqA5q/XlNJiOPqGua1X2qs3yCKZnv50Mb+6KaLnz6blR8TH1v46JouKKHZ6Jx4R6p4nWwmVlAo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EBdKhjrB; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EBdKhjrB" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-490acbb0f89so31904295e9.0 for ; Tue, 16 Jun 2026 10:55:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781632542; x=1782237342; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=IpDfViAPLLPTathoex0SLhLjFbatGrByqWEhlJUdD5U=; b=EBdKhjrByYqdOQZVljckl1evlovJgEI4od9bYstvw/mVW+103FFMj5CUtEFAc/rfeE 0IqhI4D7rO0Bbly4KWPrlAM9RjDkINtTVkOTITeKJFhN2jIZ+Scs3kLMAiL6D8UqYzQA 9ofhRAi81QrRNCB+s5XgK2cC9dJpxsZ1OL1+W7UA4EaY/Fix1V13n6wltAwGycpYs6f/ 3KdJcXttUC3apyevWYyDtLZFj48xcxbZswoi8C4TC33L2lkuQkKhJo2H31yApy05Kkxn oqAikzRtlXo5mrHcJx9Fzc4NPOIat3J1QIRsoB4HUcRVBkYiBrRlxXbKU4myKeZt4IJa pV0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781632542; x=1782237342; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IpDfViAPLLPTathoex0SLhLjFbatGrByqWEhlJUdD5U=; b=j5AQ9rAy9dtG83UBHDLv/rEjZ5/z6Uyrm/KXq+670tm1t/+SF2+Mr7SPahv3OKyz31 LRTtzDqTV/gpm4/cJ0QwbdXz4GjuUhrPCPF5k/JNXNzfvifEBWjGLRIsdRGTIijwtbUO xiZ1aHX/yfckZsxkgxV7qKuUCQwRHMUduUAU8emTHxeUi/idSkLgR+j7V4Hhscq/dzt2 tDy3KuQfc4fkSML2PLdcEylk6HN2/hJTWJz3syvlRaUxkIt09WjInLLHJ1zWIotIxGqk HC0K0E+57UJcZxd470wId7z3h9dxIEXnqJr5G/No6SnbcODwJLRD0NIXqUA9Iv1r9qw2 gAMg== X-Forwarded-Encrypted: i=1; AFNElJ/f7s5f8e7LciT3FhYLtTBkjKvfsQcRe7fBEuS51BgzLwI1mUuBTwLmj+wvVRUfyIvBmJdNJeZ+wQ/Ywq0=@vger.kernel.org X-Gm-Message-State: AOJu0YyNu3/2HfCtyIqvY0GQWHhMR5slTSytdnbi6eqUMz5kN0DpIjHB 15jTUSjMCtUjulhqxAzHKcBjNHR6qk0FxgJ/44cH1/m3v2Yuu73Ag4Xr X-Gm-Gg: Acq92OHDhwBbGOGGVk+7lEBqi4Wo8wR3k9g/BYFjNUa8W77fO4TXpgAhDTzuv0QgirQ 4ZrVpC2e+IQqJQ5nsPZ7Tl1gX3fAwmASY09XeOsy6cQcGeWE+Uoz2VAixhdjjnmWvzYX/B43ARk NGOWkxdc13nJyqeK6wGu2mK08Lg+zBElvMLnbAWVZZRBN6F4GoOt8R0Sp9bc8Ou9M4SM6a5t730 RSI8psi6k4Z7IxQmqCloeDPc1s6b4GHlGYMNTFscR9teBPHd5KvJ8AZyPUUGbp+G3wqQkcGuFX+ ahxMGOtxusyj/lYQ4Du6HWGqOaTg9/nlk1zK3wamTD7cqE3wRvkRYqmR2frh/TiAZ/KARvqrq91 daOOBYDPQaaUGdAsALyXGURZOiPCKugWIRgbc8Ipn3hD0O2Lru7/fPB2s0lw1JwxNCHYdR7pkk1 74+MR8v0yoSQjVvS4Yf20Kc2AfcIIRg/G1F481uoemzZBtPBv+0JpbpRjKR+927QNmYJuNCh7tt 6a0Jhj+olI= X-Received: by 2002:a05:600c:4e15:b0:490:9d1b:f086 with SMTP id 5b1f17b1804b1-492333a90d9mr9938625e9.14.1781632541682; Tue, 16 Jun 2026 10:55:41 -0700 (PDT) Received: from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4606f26434dsm47211622f8f.1.2026.06.16.10.55.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2026 10:55:41 -0700 (PDT) From: David Carlier To: rostedt@goodmis.org, mhiramat@kernel.org Cc: mathieu.desnoyers@efficios.com, linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org, David Carlier Subject: [PATCH] ring-buffer: Fix ring_buffer_read_page() copying only one event per page Date: Tue, 16 Jun 2026 18:55:38 +0100 Message-ID: <20260616175538.111628-1-devnexen@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Commit 8928e4a3be34 ("ring-buffer: Show persistent buffer dropped events in trace_pipe file") split the "commit" variable in ring_buffer_read_page() into "commit" (raw) and "size" (masked page size), but the inner copy loop's terminator was changed to compare rpos against "event_size" instead of "size". rpos is the cumulative read offset within the page; event_size is the length of the single event just copied. The loop thus breaks after the first event, so only one event is copied per call. This regresses the per-event memcpy path (partial reads, the active commit page, and mapped/remote buffers) used by splice/trace_pipe_raw and mmap consumers into a one-event-at-a-time read. Compare rpos against the page size as the original code did. Fixes: 8928e4a3be34 ("ring-buffer: Show persistent buffer dropped events in trace_pipe file") Signed-off-by: David Carlier --- kernel/trace/ring_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 06fb365bb86e..06155ab3366f 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -7181,7 +7181,7 @@ int ring_buffer_read_page(struct trace_buffer *buffer, rpos = reader->read; pos += event_size; - if (rpos >= event_size) + if (rpos >= size) break; event = rb_reader_event(cpu_buffer); -- 2.53.0