From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 0/9] valgrind/i386/s390x: memcheck false positives
Date: Thu, 30 Oct 2014 14:20:09 +0100 [thread overview]
Message-ID: <54523B09.7000108@de.ibm.com> (raw)
In-Reply-To: <5452370E.90407@redhat.com>
Am 30.10.2014 14:03, schrieb Paolo Bonzini:
> On 10/30/2014 10:36 AM, Christian Borntraeger wrote:
>> Some of these things could
>> also be fixed in valgrind, but it will take a while until these changes
>> hit a release or distros.
>
> Ok, it's sensible to have it fixed in QEMU if it's temporary. Which
> could not be fixed in valgrind?
This is a tricky question. A typical annotation in valgrind for an more complex ioctl looks like
case VKI_SIOCGMIIREG: /* get hardware entry registers */
PRE_MEM_RASCIIZ( "ioctl(SIOCGIFMIIREG)",
(Addr)((struct vki_ifreq *)ARG3)->vki_ifr_name );
PRE_MEM_READ( "ioctl(SIOCGIFMIIREG)",
(Addr)&((struct vki_mii_ioctl_data *)&((struct vki_ifreq *)ARG3)->vki_ifr_data)->phy_id,
sizeof(((struct vki_mii_ioctl_data *)&((struct vki_ifreq *)ARG3)->vki_ifr_data)->phy_id) );
PRE_MEM_READ( "ioctl(SIOCGIFMIIREG)",
(Addr)&((struct vki_mii_ioctl_data *)&((struct vki_ifreq *)ARG3)->vki_ifr_data)->reg_num,
sizeof(((struct vki_mii_ioctl_data *)&((struct vki_ifreq *)ARG3)->vki_ifr_data)->reg_num) );
PRE_MEM_WRITE( "ioctl(SIOCGIFMIIREG)", ARG3,
sizeof(struct vki_ifreq));
break;
This scheme works fine as long as the ioctl is unchanged.
So any ioctl that has padding and no flags this should be doable.
For all KVM ioctls with reserved fields that might become used on certain flags, we have two options:
a: we would instruct valgrind to not check the reserved fields
Whenever we start using them, we would still not check those field
b: we would instruct valgrind to not check the reserved fields if flags has a certain value (e.g. 0), otherwise all reserved fields would be checked.
Whenever we start using the reserved fields, valgrind would complain unless we write all. So in that case we have to modify valgrind again
In essence a will cause false negatives, b will cause false positives
I think b is preferred
Christian
next prev parent reply other threads:[~2014-10-31 15:48 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-30 9:36 [Qemu-devel] [PATCH 0/9] valgrind/i386/s390x: memcheck false positives Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 1/9] valgrind: avoid false positives in KVM_GET_DIRTY_LOG ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 2/9] valgrind/i386: avoid false positives on KVM_SET_CLOCK ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 3/9] valgrind/i386: avoid false positives on KVM_SET_PIT ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 4/9] valgrind/i386: avoid false positives on KVM_SET_XCRS ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 5/9] valgrind/i386: avoid false positives on KVM_SET_MSRS ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 6/9] valgrind/i386: avoid false positives on KVM_SET_MSRS(TSC) ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 7/9] valgrind/i386: avoid false positives on KVM_GET_MSRS ioctl Christian Borntraeger
2014-11-05 10:33 ` Paolo Bonzini
2014-11-05 10:37 ` Paolo Bonzini
2014-10-30 9:36 ` [Qemu-devel] [PATCH 8/9] valgrind/i386: avoid false positives on KVM_SET_VCPU_EVENTS ioctl Christian Borntraeger
2014-10-30 9:36 ` [Qemu-devel] [PATCH 9/9] valgrind/s390x: avoid false positives on KVM_SET_FPU ioctl Christian Borntraeger
2014-10-30 9:46 ` [Qemu-devel] [PATCH 0/9] valgrind/i386/s390x: memcheck false positives Peter Maydell
2014-10-30 9:50 ` Christian Borntraeger
2014-10-30 9:58 ` Peter Maydell
2014-10-30 11:01 ` Christian Borntraeger
2014-10-30 13:03 ` Paolo Bonzini
2014-10-30 13:20 ` Christian Borntraeger [this message]
2014-11-03 12:27 ` Paolo Bonzini
2014-11-13 14:34 ` Paolo Bonzini
2014-11-13 19:07 ` Christian Borntraeger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54523B09.7000108@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).