From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.8 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.1 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id B6C4D1F404 for ; Fri, 10 Aug 2018 07:08:43 +0000 (UTC) From: Eric Wong To: Subject: [PATCH] remove "memalign:" MWRAP option Date: Fri, 10 Aug 2018 07:08:43 +0000 Message-Id: <20180810070843.30290-1-e@80x24.org> List-Id: Since we learned to treat heap_page_body allocations specially, we can also keep track of rare memalign allocations done outside of the Ruby GC this way. --- ext/mwrap/mwrap.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/ext/mwrap/mwrap.c b/ext/mwrap/mwrap.c index 29cfc11..c44ea89 100644 --- a/ext/mwrap/mwrap.c +++ b/ext/mwrap/mwrap.c @@ -23,7 +23,6 @@ #include "jhash.h" static ID id_uminus; -static unsigned int track_memalign; const char *rb_source_location_cstr(int *line); /* requires 2.6.0dev */ extern int __attribute__((weak)) ruby_thread_has_gvl_p(void); extern void * __attribute__((weak)) ruby_current_execution_context_ptr; @@ -152,10 +151,6 @@ __attribute__((constructor)) static void resolve_malloc(void) fprintf(stderr, "pthread_atfork failed: %s\n", strerror(err)); page_size = sysconf(_SC_PAGESIZE); opt = getenv("MWRAP"); - if (opt && (opt = strstr(opt, "memalign:"))) { - if (!sscanf(opt, "memalign:%u", &track_memalign)) - fprintf(stderr, "not an unsigned int: %s\n", opt); - } --locating; } @@ -575,10 +570,8 @@ internal_memalign(void **pp, size_t alignment, size_t size, uintptr_t caller) if (alignment == HEAP_PAGE_ALIGN && size == HEAP_PAGE_SIZE) { if (has_ec_p()) generation = rb_gc_count(); l = IS_HEAP_PAGE_BODY; - } else if (track_memalign) { - l = update_stats_rcu_lock(size, caller); } else { - l = 0; + l = update_stats_rcu_lock(size, caller); } if (l == IS_HEAP_PAGE_BODY) { @@ -1285,16 +1278,9 @@ static VALUE hpb_stat(int argc, VALUE *argv, VALUE hpb) * * dump_fd: a writable FD to dump to * * dump_path: a path to dump to, the file is opened in O_APPEND mode * * dump_min: the minimum allocation size (total) to dump - * * memalign: use `1' to enable tracking the memalign family * * If both `dump_fd' and `dump_path' are specified, dump_path takes * precedence. - * - * Tracking the memalign family of functions is misleading for Ruby - * applications, as heap page allocations can happen anywhere a - * Ruby object is allocated, even in the coldest code paths. - * Furthermore, it is rarely-used outside of the Ruby object allocator. - * Thus tracking memalign functions is disabled by default. */ void Init_mwrap(void) { -- EW