pgsql: Avoid floating-point underflow while tracking buffer allocation

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Avoid floating-point underflow while tracking buffer allocation
Date: 2011-11-19 05:38:05
Message-ID: E1RRdcr-0007Jj-Oi@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Avoid floating-point underflow while tracking buffer allocation rate.

When the system is idle for awhile after activity, the "smoothed_alloc"
state variable in BgBufferSync converges slowly to zero. With standard
IEEE float arithmetic this results in several iterations with denormalized
values, which causes kernel traps and annoying log messages on some
poorly-designed platforms. There's no real need to track such small values
of smoothed_alloc, so we can prevent the kernel traps by forcing it to zero
as soon as it's too small to be interesting for our purposes. This issue
is purely cosmetic, since the iterations don't happen fast enough for the
kernel traps to pose any meaningful performance problem, but still it seems
worth shutting up the log messages.

The kernel log messages were previously reported by a number of people,
but kudos to Greg Matthews for tracking down exactly where they were coming
from.

Branch
------
REL8_4_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/af7b787aad063b112f72691213fa05ccda489a63

Modified Files
--------------
src/backend/storage/buffer/bufmgr.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message User Fxjr 2011-11-21 02:04:34 npgsql - Npgsql2: Fixed some encoding problems detected by Monodevelop.
Previous Message User Fxjr 2011-11-19 04:11:59 npgsql - Npgsql2: Removed erroneous line added by mistake.