11.06.2019 21:02, Andrey Shinkevich wrote: > The Valgrind tool reports about an uninitialised memory usage when the > initialization is actually not needed. For example, the buffer 'buf' > instantiated on a stack of the function guess_disk_lchs().
for convinience, you may add: "of the function guess_disk_lchs(), which is then actually initialized by blk_pread_unthrottled()" > Let's use the Valgrind technology to suppress the unwanted reports by > adding the Valgrind specific format file valgrind.supp to the QEMU > project. The file content is extendable for future needs. > > Signed-off-by: Andrey Shinkevich <andrey.shinkev...@virtuozzo.com> > --- > tests/qemu-iotests/common.rc | 5 ++++- > tests/qemu-iotests/valgrind.supp | 31 +++++++++++++++++++++++++++++++ > 2 files changed, 35 insertions(+), 1 deletion(-) > create mode 100644 tests/qemu-iotests/valgrind.supp > > diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc > index 3caaca4..9b74890 100644 > --- a/tests/qemu-iotests/common.rc > +++ b/tests/qemu-iotests/common.rc > @@ -17,6 +17,8 @@ > # along with this program. If not, see <http://www.gnu.org/licenses/>. > # > > +readonly VALGRIND_SUPPRESS_ERRORS=./valgrind.supp Why readonly? I think it should be defined near and in same manner as VALGRIND_LOGFILE, with use of TEST_DIR > + > SED= > for sed in sed gsed; do > ($sed --version | grep 'GNU sed') > /dev/null 2>&1 > @@ -65,7 +67,8 @@ _qemu_proc_wrapper() > local VALGRIND_LOGFILE="$1" > shift > if [ "${VALGRIND_QEMU}" == "y" ]; then > - exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 > "$@" > + exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 \ > + --suppressions="${VALGRIND_SUPPRESS_ERRORS}" "$@" > else > exec "$@" > fi > diff --git a/tests/qemu-iotests/valgrind.supp > b/tests/qemu-iotests/valgrind.supp > new file mode 100644 > index 0000000..78215b6 > --- /dev/null > +++ b/tests/qemu-iotests/valgrind.supp > @@ -0,0 +1,31 @@ > +# > +# Valgrind errors suppression file for QEMU iotests > +# > +# Copyright (c) 2019 Virtuozzo International GmbH > +# > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > +# > +{ > + hw/block/hd-geometry.c > + Memcheck:Cond > + fun:guess_disk_lchs > + fun:hd_geometry_guess > + fun:blkconf_geometry > + ... > + fun:device_set_realized > + fun:property_set_bool > + fun:object_property_set > + fun:object_property_set_qobject > + fun:object_property_set_bool > +} > -- Best regards, Vladimir