lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231229211314.081907608@goodmis.org>
Date: Fri, 29 Dec 2023 16:13:14 -0500
From: Steven Rostedt <rostedt@...dmis.org>
To: linux-kernel@...r.kernel.org
Cc: Masami Hiramatsu <mhiramat@...nel.org>,
 Mark Rutland <mark.rutland@....com>,
 Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
 Andrew Morton <akpm@...ux-foundation.org>,
 Jiri Olsa <jolsa@...nel.org>
Subject: [for-linus][PATCH 0/3] tracing: Fixes for v6.7-rc7



tracing fixes for v6.7-rc7:

- Fix readers on blocked on the ring buffer when buffer_percent is
  100%. They are supposed to wake up when the buffer is full, but
  because the sub-buffer that the writer is on is never considered
  "dirty" in the calculation, dirty pages will never equal nr_page.
  Add +1 to the dirty count in order to count for the sub-buffer that
  the writer is on.

- When a reader is blocked on the "snapshot_raw" file, it is to be
  woken up when a snapshot is done and be able to read the snapshot
  buffer. But because the snapshot swaps the buffers (the main one
  with the snapshot one), and the snapshot reader is waiting on the
  old snapshot buffer, it was not woken up (because it is now on
  the main buffer after the swap). Worse yet, when it reads the buffer
  after a snapshot, it's not reading the snapshot buffer, it's reading
  the live active main buffer.

  Fix this by forcing a wakeup of all readers on the snapshot buffer when
  a new snapshot happens, and then update the buffer that the reader
  is reading to be back on the snapshot buffer.

- Fix the modification of the direct_function hash. There was a race
  when new functions were added to the direct_function hash as when
  it moved function entries from the old hash to the new one, a direct
  function trace could be hit and not see its entry.

  This is fixed by allocating the new hash, copy all the old entries
  onto it as well as the new entries, and then use rcu_assign_pointer()
  to update the new direct_function hash with it.

  This also fixes a memory leak in that code.

Steven Rostedt (Google) (3):
      ring-buffer: Fix wake ups when buffer_percent is set to 100
      tracing: Fix blocked reader of snapshot buffer
      ftrace: Fix modification of direct_function hash while in use

----
 kernel/trace/ftrace.c      | 100 +++++++++++++++++++++------------------------
 kernel/trace/ring_buffer.c |  12 ++++--
 kernel/trace/trace.c       |  20 +++++++--
 3 files changed, 73 insertions(+), 59 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ