From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
michal.orzel@amd.com, xenia.ragiadakou@amd.com,
ayan.kumar.halder@amd.com, consulting@bugseng.com,
jbeulich@suse.com, andrew.cooper3@citrix.com,
roger.pau@citrix.com,
Simone Ballarin <simone.ballarin@bugseng.com>,
Doug Goldstein <cardoe@cardoe.com>,
George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [XEN PATCH][for-next][for-4.19 v2 1/8] xen/include: add macro LOWEST_BIT
Date: Fri, 13 Oct 2023 12:43:20 +0200 [thread overview]
Message-ID: <022106b550e8303d554e557bf6c23651@bugseng.com> (raw)
In-Reply-To: <f62ad310-0f9a-4b28-9592-023d6a98c0dd@xen.org>
On 13/10/2023 10:25, Julien Grall wrote:
> Hi Nicola,
>
> On 12/10/2023 16:28, Nicola Vetrini wrote:
>> The purpose of this macro is to encapsulate the well-known expression
>> 'x & -x', that in 2's complement architectures on unsigned integers
>> will
>> give 2^ffs(x), where ffs(x) is the position of the lowest set bit in
>> x.
>
> In the commit message it is clear that the macro will return the
> lowest set bit. But...
>
>>
>> A deviation for ECLAIR is also introduced.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> Changes in v2:
>> - rename to LOWEST_BIT
>> ---
>> automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>> xen/include/xen/macros.h | 6 ++++--
>> 2 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> index d8170106b449..b8e1155ee49d 100644
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -274,6 +274,12 @@ still non-negative."
>> -config=MC3R1.R10.1,etypes+={safe,
>> "stmt(operator(logical)||node(conditional_operator||binary_conditional_operator))",
>> "dst_type(ebool||boolean)"}
>> -doc_end
>>
>> +-doc_begin="The macro LOWEST_BIT encapsulates a well-known pattern to
>> obtain the value
>> +2^ffs(x) for unsigned integers on two's complement architectures
>> +(all the architectures supported by Xen satisfy this requirement)."
>> +-config=MC3R1.R10.1,reports+={safe,
>> "any_area(any_loc(any_exp(macro(^LOWEST_BIT$))))"}
>> +-doc_end
>> +
>> ### Set 3 ###
>>
>> #
>> diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
>> index d0caae7db298..af47179d1056 100644
>> --- a/xen/include/xen/macros.h
>> +++ b/xen/include/xen/macros.h
>> @@ -8,8 +8,10 @@
>> #define DIV_ROUND(n, d) (((n) + (d) / 2) / (d))
>> #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
>>
>> -#define MASK_EXTR(v, m) (((v) & (m)) / ((m) & -(m)))
>> -#define MASK_INSR(v, m) (((v) * ((m) & -(m))) & (m))
>> +#define LOWEST_BIT(x) ((x) & -(x))
>
> ... this is not reflected in the name of the macro. So it is not
> obvious if it will return the lowest bit set or clear.
>
> Can you at least add a comment on top explaining what it returns?
> Something like:
>
> /* Return the lowest bit set */
>
> Cheers,
No problem
--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)
next prev parent reply other threads:[~2023-10-13 10:43 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-12 15:28 [XEN PATCH v2 0/8] address violations of MISRA C:2012 Rule 10.1 Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-next][for-4.19 v2 1/8] xen/include: add macro LOWEST_BIT Nicola Vetrini
2023-10-12 23:31 ` Stefano Stabellini
2023-10-13 10:40 ` Nicola Vetrini
2023-10-13 8:25 ` Julien Grall
2023-10-13 10:43 ` Nicola Vetrini [this message]
2023-10-16 15:33 ` Jan Beulich
2023-10-16 16:17 ` Nicola Vetrini
2023-10-16 16:30 ` Jan Beulich
2023-10-17 0:57 ` Stefano Stabellini
2023-10-19 14:26 ` Nicola Vetrini
2023-10-19 19:58 ` Stefano Stabellini
2023-10-20 6:00 ` Jan Beulich
2023-10-20 10:40 ` Nicola Vetrini
2023-10-20 13:28 ` Jan Beulich
2023-10-20 13:13 ` Luca Fancellu
2023-10-20 18:07 ` Stefano Stabellini
2023-10-20 18:11 ` Luca Fancellu
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 2/8] arm/bitops: encapsulate violation of MISRA C:2012 Rule 10.1 Nicola Vetrini
2023-10-12 23:31 ` Stefano Stabellini
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 3/8] xen/pdx: amend definition of PDX_GROUP_COUNT Nicola Vetrini
2023-10-12 23:33 ` Stefano Stabellini
2023-10-12 15:28 ` [XEN PATCH][for-next v2 4/8] x86_64/mm: express macro CNT using LOWEST_BIT Nicola Vetrini
2023-10-12 23:34 ` Stefano Stabellini
2023-10-12 15:28 ` [XEN PATCH][for-next v2 5/8] x86/io_apic: address violation of MISRA C:2012 Rule 10.1 Nicola Vetrini
2023-10-16 15:42 ` Jan Beulich
2023-10-16 16:36 ` Nicola Vetrini
2023-10-17 6:58 ` Jan Beulich
2023-10-16 15:42 ` Jan Beulich
2023-10-16 16:36 ` Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-next v2 6/8] x86/mce: Move MC_NCLASSES into the enum mctelem_class Nicola Vetrini
2023-10-12 23:44 ` Stefano Stabellini
2023-10-16 15:45 ` Jan Beulich
2023-10-16 16:05 ` Nicola Vetrini
2023-10-17 7:02 ` Jan Beulich
2023-10-17 8:12 ` Nicola Vetrini
2023-10-17 8:26 ` Jan Beulich
2023-10-17 9:43 ` Nicola Vetrini
2023-10-17 9:54 ` Jan Beulich
2023-10-19 14:33 ` Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 7/8] xen/types: address Rule 10.1 for DECLARE_BITMAP use Nicola Vetrini
2023-10-16 15:49 ` Jan Beulich
2023-10-17 8:54 ` Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 8/8] xen/compat: use BUILD_BUG_ON in CHECK_SIZE macros Nicola Vetrini
2023-10-17 6:09 ` Jan Beulich
2023-10-19 14:35 ` Nicola Vetrini
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=022106b550e8303d554e557bf6c23651@bugseng.com \
--to=nicola.vetrini@bugseng.com \
--cc=andrew.cooper3@citrix.com \
--cc=ayan.kumar.halder@amd.com \
--cc=cardoe@cardoe.com \
--cc=consulting@bugseng.com \
--cc=george.dunlap@citrix.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=roger.pau@citrix.com \
--cc=simone.ballarin@bugseng.com \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
--cc=xenia.ragiadakou@amd.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.