Re: Using ProcSignal to get memory context stats from a running backend

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Craig Ringer <craig(at)2ndquadrant(dot)com>, Greg Stark <stark(at)mit(dot)edu>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Using ProcSignal to get memory context stats from a running backend
Date: 2017-12-19 18:17:52
Message-ID: 906.1513707472@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> On Tue, Dec 19, 2017 at 8:44 AM, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:
>> I didn't want to mess with the MemoryContextMethods and expose a
>> printf-wrapper style typedef in memnodes.h, so I went with a hook global.

> That looks pretty grotty to me. I think if you want to elog/ereport
> this, you need to pass another argument to MemoryContextStats() or add
> another memory context method. This is pretty much a textbook example
> of the wrong way to use a global variable, IMHO.

Yeah. But please don't mess with MemoryContextStats per se ---
I dunno about you guys but "call MemoryContextStats(TopMemoryContext)"
is kinda wired into my gdb reflexes. I think what'd make sense
is a new function "MemoryContextStatsTo(context, function_pointer)".
It's okay to redefine the APIs of the per-context-type functions
these would call, though, because nobody calls those functions directly.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2017-12-19 18:29:31 Re: explain analyze output with parallel workers - question about meaning of information for explain.depesz.com
Previous Message Tom Lane 2017-12-19 18:14:09 Re: Protect syscache from bloating with negative cache entries