pgsql: Add valgrind suppressions for wcsrtombs optimizations

From: Tomas Vondra <tomas(dot)vondra(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add valgrind suppressions for wcsrtombs optimizations
Date: 2018-11-17 23:10:27
Message-ID: E1gO9jP-0000gp-0k@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Add valgrind suppressions for wcsrtombs optimizations

wcsrtombs (called through wchar2char from common functions like lower,
upper, etc.) uses various optimizations that may look like access to
uninitialized data, triggering valgrind reports.

For example AVX2 instructions load data in 256-bit chunks, and gconv
does something similar with 32-bit chunks. This is faster than accessing
the bytes one by one, and the uninitialized part of the buffer is not
actually used. So suppress the bogus reports.

The exact stack depends on possible optimizations - it might be AVX, SSE
(as in the report by Aleksander Alekseev) or something else. Hence the
last frame is wildcarded, to deal with this.

Backpatch all the way back to 9.4.

Author: Tomas Vondra
Discussion: https://www.postgresql.org/message-id/flat/90ac0452-e907-e7a4-b3c8-15bd33780e62%402ndquadrant.com
Discussion: https://www.postgresql.org/message-id/20180220150838.GD18315@e733.localdomain

Branch
------
REL9_4_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/41344896364c4bf2229ec590c95cf23a6bec928e

Modified Files
--------------
src/tools/valgrind.supp | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2018-11-18 04:16:29 pgsql: Fix AC_REQUIRES breakage in LLVM autoconf tests.
Previous Message Tomas Vondra 2018-11-17 23:09:54 pgsql: Add valgrind suppressions for wcsrtombs optimizations