|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Coverity complaints about Remus in xen-unstable
Andrew Cooper writes ("Re: [Xen-devel] Coverity complaints about Remus in
xen-unstable"):
> On 01/10/14 16:32, Ian Jackson wrote:
> > Yang Hongyang, could you prepare a patch to fix all the error exit
> > paths from this function to correctly set rc ? Thanks.
>
> No need - I already did a patch earlier today, which has even been
> committed.
Oh, good. I didn't spot that. Thanks.
> > This is because a lot of functions were introduced which say
> > STATE_AO_GC(something)
> > but do not happen to use the gc. This is actually perfectly normal
> > in libxl. And the STATE_AO_GC macro says:
> > libxl__gc *const gc __attribute__((unused)) =
> > libxl__ao_inprogress_gc(ao)
> > So I think this is some kind of failure by Coverity.
>
> This is not a failure in the slightest. [...]
>
> Coverity covers coding best practice as well as bugs. The fact that the
> programmer has indicated that the value is unused does not invalidate
> Coverities statement about it being unused.
It does however mean that it is not useful to tell the programmeer
about it. In other words, I entirely disagree with your analysis
which I think is bordering on the absurd.
Is there a way to fix this in Coverity's modelling or should we report
it as a false positive ?
> Also bear in mind that Coverities entire purpose is to second-guess what
> the programmer has actually written, and raise queries based on what
> they plausibly may have overlooked. Blindly trusting an
> "__attribute__((unused))" to 'fix' a compiler warning would entirely
> defeat the purpose flagging code maintenance issues.
The whole point of __attribute__((unused)) is for the programmer to be
able to say that it is _expected_ that the variable might not be used
and that it is unlikely to indicate any kind of `code maintenance
issue'.
As indeed in this case.
> > I don't think there is actually anything wrong with having STATE_AO_GC
> > used when not needed. It will reduce noise in future if code is added
> > which needs it, and in the meantime it's harmless. So I think it
> > would probably be better if STATE_AO_GC declared ao
> > __attribute__((unused)) as well.
>
> I disagree. Removing the gc could also aleivate redundant calls to
> libxl__ao_inprogress_gc() which is not inlinable as it resides in a
> different translation unit.
We do not care about that at all. Nothing in these functions is even
slightly near a hot path. We care much more about maintainability.
I would NAK a patch to remove all of these at-present-not-needed uses
of STATE_AO_GC.
> > Weirdly, although many of these uses (eg, all_devices_setup_cb at
> > libxl_remus_device.c:212) are in functions which do not use the
> > defined `ao' variable either, and ao is _not_ marked ok-to-be-unused,
> > Coverity hasn't complained about that.
> >
> > Andrew Cooper, as our Coverity modelling expert, can you comment ?
>
> 'ao' is unconditionally used in all places, as a parameter to
> libxl__ao_inprogress_gc(), used to get the gc.
Oh, yes, of course.
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |