|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH][for-4.19 v5] xen: Add deviations for MISRA C:2012 Rule 7.1
> On 31 Oct 2023, at 15:36, Julien Grall <julien@xxxxxxx> wrote:
>
>
>
> On 31/10/2023 15:32, Luca Fancellu wrote:
>>> On 31 Oct 2023, at 15:27, Julien Grall <julien@xxxxxxx> wrote:
>>>
>>> Hi,
>>>
>>> On 31/10/2023 15:12, Luca Fancellu wrote:
>>>>> On 31 Oct 2023, at 15:10, Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
>>>>> wrote:
>>>>>
>>>>> On 2023-10-31 15:13, Luca Fancellu wrote:
>>>>>>> On 31 Oct 2023, at 13:27, Julien Grall <julien@xxxxxxx> wrote:
>>>>>>> Hi Stefano,
>>>>>>> On 30/10/2023 22:49, Stefano Stabellini wrote:
>>>>>>>> On Mon, 30 Oct 2023, Julien Grall wrote:
>>>>>>>>> Hi Nicola,
>>>>>>>>> On 27/10/2023 16:11, Nicola Vetrini wrote:
>>>>>>>>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>>>>>>>>> index 8511a189253b..8aaaa1473fb4 100644
>>>>>>>>>> --- a/docs/misra/deviations.rst
>>>>>>>>>> +++ b/docs/misra/deviations.rst
>>>>>>>>>> @@ -90,6 +90,13 @@ Deviations related to MISRA C:2012 Rules:
>>>>>>>>>> - __emulate_2op and __emulate_2op_nobyte
>>>>>>>>>> - read_debugreg and write_debugreg
>>>>>>>>>> + * - R7.1
>>>>>>>>>> + - It is safe to use certain octal constants the way they are
>>>>>>>>>> defined
>>>>>>>>>> + in specifications, manuals, and algorithm descriptions. Such
>>>>>>>>>> places
>>>>>>>>>> + are marked safe with a /\* octal-ok \*/ in-code comment, or
>>>>>>>>>> with a
>>>>>>>>>> SAF
>>>>>>>>>> + comment (see safe.json).
>>>>>>>>> Reading this, it is unclear to me why we have two ways to deviate the
>>>>>>>>> rule
>>>>>>>>> r7.1. And more importantely, how would the developper decide which
>>>>>>>>> one to use?
>>>>>>>> I agree with you on this and we were discussing this topic just this
>>>>>>>> morning in the FUSA community call. I think we need a way to do this
>>>>>>>> with the SAF framework:
>>>>>>>> if (some code with violation) /* SAF-xx-safe */
>>>>>>>> This doesn't work today unfortunately. It can only be done this way:
>>>>>>>> /* SAF-xx-safe */
>>>>>>>> if (some code with violation)
>>>>>>>> Which is not always desirable. octal-ok is just an ad-hoc solution for
>>>>>>>> one specific violation but we need a generic way to do this. Luca is
>>>>>>>> investigating possible ways to support the previous format in SAF.
>>>>>>> Why can't we use octal-ok everywhere for now? My point here is to make
>>>>>>> simple for the developper to know what to use.
>>>>>>>> I think we should take this patch for now and harmonize it once SAF is
>>>>>>>> improved.
>>>>>>> The description of the deviation needs some improvement. To give an
>>>>>>> example, with the current wording, one could they can use octal-ok
>>>>>>> everywhere. But above, you are implying that SAF-xx-safe should be
>>>>>>> preferred.
>>>>>>> I would still strongly prefer if we use octal-ok everywhere because
>>>>>>> this is simple to remember. But if the other are happy to have both
>>>>>>> SAF-XX and octal-ok, then the description needs to be completely
>>>>>>> unambiguous and the patch should contain some explanation why we have
>>>>>>> two different ways to deviate.
>>>>>> Would it be ok to have both, for example: /* SAF-XX-safe octal-ok */
>>>>>> So that the suppression engine do what it should (currently it doesn’t
>>>>>> suppress the same line, but we could do something about it) and the
>>>>>> developer
>>>>>> has a way to understand what is the violation here without going to the
>>>>>> justification database.
>>>>>
>>>>> I guess. It could overflow the 80-char limit in
>>>>> xen/arch/x86/hvm/svm/svm.h, though.
>>>> Yeah, but we could rule out something in code_style to allow only this
>>>> kind of trailing comments to exceed the 80 chars
>>>
>>> In the past I expressed concerned with this kind of the rule because it is
>>> not entirely clear how an automatic formatter will be able to check it.
>>>
>>> Can you clarify whether clang-format would be able to handle your proposed
>>> rule?
>> So, yesterday Bertrand pointed out a StackOverflow thread for this issue and
>> if we use ReflowComments: false we should
>> be able to let the line as it is (not tested).
>
> Wouldn't that prevent reflow for all the comments? If so, I don't think this
> is we want. Instead, we want to allow reflow for any comments but the one
> done at the end of the line.
Ok well, I was optimistic, in reality with the option as false, it would anyway
reflow the line leaving the comment untouched.
E.g. from this:
if ( modrm_mod == MASK_EXTR(instr_modrm, 0300) && /* SAF-2-safe
octal-ok */
(modrm_reg & 7) == MASK_EXTR(instr_modrm, 0070) && /* SAF-2-safe
octal-ok */
(modrm_rm & 7) == MASK_EXTR(instr_modrm, 0007) ) /* SAF-2-safe
octal-ok */
return emul_len;
To this:
if ( modrm_mod ==
MASK_EXTR(instr_modrm, 0300) && /* SAF-2-safe octal-ok */
(modrm_reg & 7) ==
MASK_EXTR(instr_modrm, 0070) && /* SAF-2-safe octal-ok */
(modrm_rm & 7) ==
MASK_EXTR(instr_modrm, 0007) ) /* SAF-2-safe octal-ok */
return emul_len;
... sigh...
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |