|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/2] xen/misra: add entries to exclude-list.json
On Fri, 24 Feb 2023, Luca Fancellu wrote:
> Hi Stefano,
>
> >> Hi Jan,
> >>
> >> my personal opinion is that we can’t handle them for files that needs to
> >> be kept
> >> in sync from an external source, because we can’t justify findings or tag
> >> false
> >> positives, if we are lucky we might fix the non compliances but even in
> >> that case
> >> there might be times when the fix goes through and cases where the fix is
> >> objected
> >> by the maintainers just because their project is not following the MISRA
> >> standard.
> >>
> >> On our side, what we can do is track these files and from time to time
> >> check that
> >> they are still eligible to backport, because when they are not anymore we
> >> could
> >> just port them to Xen coding style and start doing direct changes.
> >>
> >>
> >> @Stefano/@Bertrand/@Julien thanks for your effort on the list, yesterday
> >> morning
> >> I’ve also had a look on the Michal’s file list and I’ve tracked down the
> >> origin, here
> >> my findings, maybe we could merge your list with mine?
> >
> > Yes to merge the two lists, but I think we should keep only items that we
> > actually need for the sake of having a cleaner baseline. So I would only
> > add things we need today to reduce the noise on cppcheck results
> > (excluding 20.7 and also excluding unusedStructMember which I think we
> > should probably stop scanning with cppcheck altogether).
>
> Yes I thought about excluding unusedStructMember, I see there are a lot of
> findings on x86
> which are not real findings, it’s just that the tool has not the complete
> picture.
>
> Here the ways are two:
> 1) exclude globally unusedStructMember
> 2) exclude unusedStructMember only on some selected files (available only on
> cppcheck)
> this requires some work to add a field to this list, like
> “cppcheck-error-exclude” and a list,
> comma separated, of error-id to be suppressed from the corresponding file.
For now, I would exclude globally
> Regarding the list, I merged your list with mine (and Michal’s work) to
> create a complete list,
> I think it’s better to have it complete because all those files are external
> and even if today we don’t
> have findings for some of these files, we could have some in the future, and
> since we know today
> that we can’t do direct changes to them, in my opinion it’s better to list
> them now instead of forgetting
> them later.
>
> I left out for now these files to start a discussion for them, because I
> think they should be included in
> the analysis:
>
> common/symbols-dummy.c:
> this file accepts direct changes, cppcheck complains about misra-c2012-8.4
> but I think it is right, also
> Coverity complains about the same findings, they can be fixed adding
> declarations on symbols.h I think
> and removing the declarations from symbol.c module
>
> common/version.c:
> Apart from unusedStructMember, cppcheck is confused only on 2 findings that
> compares one local symbol
> and one linker defined symbol, could we have just one tag to suppress those
> two findings instead of removing
> completely the file? This file is under our control, so we could push
> changes.
>
> include/xen/lib.h:
> Findings are from the bsearch function, which is derived from Linux, but I
> can see the codestyle is the Xen style
> and it seems (I might be wrong) that it has diverged from Linux, so we
> might do changes and fix the findings that
> are correct, void* arithmetic is working because gcc make it work assigning
> a sizeof of 1, using char* pointers we
> have the same result without having the undefined behaviour (correct me if
> I am wrong).
>
> include/xen/sort.h:
> Also this one is derived from Linux, but seems that we converted it to our
> coding style and we can do direct changes,
> the same reasoning about void* pointers arithmetic applies here.
>
>
> What are your thoughts?
I am good with this
> Here the merged list, capturing also Jan comments:
>
> {
> "version": "1.0",
> "content": [
> {
> "rel_path": "arch/arm/arm64/cpufeature.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/arm/arm64/insn.c",
> "comment": "Imported on Linux"
> },
> {
> "rel_path": "arch/arm/arm64/lib/find_next_bit.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/acpi/boot.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/acpi/cpu_idle.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/acpi/cpufreq/cpufreq.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/acpi/cpuidle_menu.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/acpi/lib.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/amd.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/centaur.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/common.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/hygon.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/intel.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/intel_cacheinfo.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/mcheck/non-fatal.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/mtrr/*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/cpu/mwait-idle.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/delay.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/dmi_scan.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/mpparse.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/srat.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/time.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "arch/x86/x86_64/mmconf-fam10h.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/bitmap.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/bunzip2.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/earlycpio.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/inflate.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/libfdt/*",
> "comment": "External library"
> },
> {
> "rel_path": "common/livepatch_elf.c",
> "comment" : "Not in scope initially as it generates many
> violations and it is not enabled in safety configurations"
> },
> {
> "rel_path": "common/lzo.c",
> "comment" : "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/lz4/decompress.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/radix-tree.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/ubsan/ubsan.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/un*.c",
> "comment": "unlz4.c implementation by Yann Collet, the others un*
> are from Linux, ignore for now"
> },
> {
> "rel_path": "common/xz/*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "common/zstd/*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "crypto/*",
> "comment": "Origin is external and documented in
> crypto/README.source"
> },
> {
> "rel_path": "drivers/acpi/apei/*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/acpi/hwregs.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/acpi/numa.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/acpi/osl.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/acpi/tables.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/acpi/tables/*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/acpi/utilities/*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "drivers/video/font_*",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "lib/list-sort.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "lib/rbtree.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "lib/xxhash*.c",
> "comment": "Imported from Linux, ignore for now"
> },
> {
> "rel_path": "xsm/flask/*",
> "comment" : "Not in scope initially as it generates many
> violations and it is not enabled in safety configurations"
> }
> ]
> }
>
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |