<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in set</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>ad811070 - locking/atomic: scripts: generate kerneldoc comments</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/atomic/kerneldoc/set#ad811070</link>
        <description>locking/atomic: scripts: generate kerneldoc commentsCurrently the atomics are documented in Documentation/atomic_t.txt, andhave no kerneldoc comments. There are a sufficient number of gotchas(e.g. semantics, noinstr-safety) that it would be nice to have commentsto call these out, and it would be nice to have kerneldoc comments suchthat these can be collated.While it&apos;s possible to derive the semantics from the code, this can bepainful given the amount of indirection we currently have (e.g. fallbackpaths), and it&apos;s easy to be mislead by naming, e.g.* The unconditional void-returning ops *only* have relaxed variants  without a _relaxed suffix, and can easily be mistaken for being fully  ordered.  It would be nice to give these a _relaxed() suffix, but this would  result in significant churn throughout the kernel.* Our naming of conditional and unconditional+test ops is rather  inconsistent, and it can be difficult to derive the name of an  operation, or to identify where an op is conditional or  unconditional+test.  Some ops are clearly conditional:  - dec_if_positive  - add_unless  - dec_unless_positive  - inc_unless_negative  Some ops are clearly unconditional+test:  - sub_and_test  - dec_and_test  - inc_and_test  However, what exactly those test is not obvious. A _test_zero suffix  might be clearer.  Others could be read ambiguously:  - inc_not_zero	// conditional  - add_negative	// unconditional+test  It would probably be worth renaming these, e.g. to inc_unless_zero and  add_test_negative.As a step towards making this more consistent and easier to understand,this patch adds kerneldoc comments for all generated *atomic*_*()functions. These are generated from templates, with some common textshared, making it easy to extend these in future if necessary.I&apos;ve tried to make these as consistent and clear as possible, and I&apos;vedeliberately ensured:* All ops have their ordering explicitly mentioned in the short and long  description.* All test ops have &quot;test&quot; in their short description.* All ops are described as an expression using their usual C operator.  For example:  andnot: &quot;Atomically updates @v to (@v &amp; ~@i)&quot;  inc:    &quot;Atomically updates @v to (@v + 1)&quot;  Which may be clearer to non-naative English speakers, and allows all  the operations to be described in the same style.* All conditional ops have their condition described as an expression  using the usual C operators. For example:  add_unless: &quot;If (@v != @u), atomically updates @v to (@v + @i)&quot;  cmpxchg:    &quot;If (@v == @old), atomically updates @v to @new&quot;  Which may be clearer to non-naative English speakers, and allows all  the operations to be described in the same style.* All bitwise ops (and,andnot,or,xor) explicitly mention that they are  bitwise in their short description, so that they are not mistaken for  performing their logical equivalents.* The noinstr safety of each op is explicitly described, with a  description of whether or not to use the raw_ form of the op.There should be no functional change as a result of this patch.Reported-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20230605070124.3741859-26-mark.rutland@arm.com

            List of files:
            /linux-6.15/scripts/atomic/kerneldoc/set</description>
        <pubDate>Mon, 05 Jun 2023 07:01:22 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
</channel>
</rss>
