From 4106dfd813ce42678e0395eda42e36149d1ac851 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 9 Jan 2023 05:52:38 +0000 Subject: various doc updates, add mwrap(1) manpage FreeBSD 12.x doesn't seem to work with the `pkg install'-ed ruby --- README | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'README') diff --git a/README b/README index 382c5a0..761f87e 100644 --- a/README +++ b/README @@ -8,8 +8,8 @@ mwrap wraps all malloc-family calls to trace the Ruby source location of such calls and bytes allocated at each callsite. As of mwrap 2.0.0, it can also function as a leak detector and show live allocations at every call site. Depending on -your application and workload, the overhead is roughly a 50% -increase memory and runtime. +your application and workload, the overhead is roughly a 50-100% +increase memory and runtime with default settings. It works best for allocations under GVL, but tries to track numeric caller addresses for allocations made without GVL so you @@ -22,15 +22,13 @@ Userspace RCU project: https://liburcu.org/ It does not require recompiling or rebuilding Ruby, but only supports Ruby 2.7.0 or later on a few platforms: -* GNU/Linux -* FreeBSD +* GNU/Linux (only tested --without-jemalloc, mwrap 3.x provides its own) -It may work on NetBSD, OpenBSD and DragonFly BSD. +It may work on FreeBSD, NetBSD, OpenBSD and DragonFly BSD if given +appropriate build options. == Install - # FreeBSD: pkg install liburcu - # Debian-based systems: apt-get liburcu-dev # Install mwrap via RubyGems.org @@ -64,24 +62,33 @@ or an address retrieved by backtrace_symbols(3). It is recommended to use the sort(1) command on either of the first two columns to find the hottest malloc locations. -mwrap 2.0.0+ also supports a Rack application endpoint, +mwrap 3.0.0+ also supports an embedded HTTP server it is documented at: -https://80x24.org/mwrap/MwrapRack.html +https://80x24.org/mwrap.git/tree/Documentation/mwrap.pod == Known problems * 32-bit machines are prone to overflow (WONTFIX) -== Public mail archives and contact info: +* signalfd(2)-reliant code will need latest URCU with commit + ea3a28a3f71dd02f (Disable signals in URCU background threads, 2022-09-23) + This doesn't affect C Ruby itself, and signalfd(2) use is rare + 3rd-party processes. + +* Ruby source files over 16.7 million lines long are not supported :P + +== Public mail archives (HTTP, Atom feeds, IMAP mailbox, NNTP group, POP3): * https://80x24.org/mwrap-public/ * nntps://80x24.org/inbox.comp.lang.ruby.mwrap * imaps://;AUTH=ANONYMOUS@80x24.org/inbox.comp.lang.ruby.mwrap.0 * https://80x24.org/mwrap-public/_/text/help/#pop3 -No subscription will ever be required to post, but HTML mail -will be rejected: +No subscription nor real identities will ever be required to obtain support, +but HTML mail is rejected. Memory usage reductions start with you; +only send plain-text mail to us and do not top-post. HTML mail and +top-posting costs everybody memory and bandwidth. mwrap-public@80x24.org @@ -89,9 +96,10 @@ will be rejected: git clone https://80x24.org/mwrap.git -Send all patches and pull requests (use "git request-pull" to format) to -mwrap-public@80x24.org. We do not use centralized or proprietary messaging -systems. +Send all patches ("git format-patch" + "git send-email") and +pull requests (use "git request-pull" to format) via email +to mwrap-perl@80x24.org. We do not and will not use +proprietary messaging systems. == License -- cgit v1.2.3-24-ge0c7