<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/include/linux/static_key.h, branch linux-3.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-3.15.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-3.15.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2012-02-24T09:05:59Z</updated>
<entry>
<title>static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]()</title>
<updated>2012-02-24T09:05:59Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2012-02-24T07:31:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c5905afb0ee6550b42c49213da1c22d67316c194'/>
<id>urn:sha1:c5905afb0ee6550b42c49213da1c22d67316c194</id>
<content type='text'>
So here's a boot tested patch on top of Jason's series that does
all the cleanups I talked about and turns jump labels into a
more intuitive to use facility. It should also address the
various misconceptions and confusions that surround jump labels.

Typical usage scenarios:

        #include &lt;linux/static_key.h&gt;

        struct static_key key = STATIC_KEY_INIT_TRUE;

        if (static_key_false(&amp;key))
                do unlikely code
        else
                do likely code

Or:

        if (static_key_true(&amp;key))
                do likely code
        else
                do unlikely code

The static key is modified via:

        static_key_slow_inc(&amp;key);
        ...
        static_key_slow_dec(&amp;key);

The 'slow' prefix makes it abundantly clear that this is an
expensive operation.

I've updated all in-kernel code to use this everywhere. Note
that I (intentionally) have not pushed through the rename
blindly through to the lowest levels: the actual jump-label
patching arch facility should be named like that, so we want to
decouple jump labels from the static-key facility a bit.

On non-jump-label enabled architectures static keys default to
likely()/unlikely() branches.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: Jason Baron &lt;jbaron@redhat.com&gt;
Acked-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: a.p.zijlstra@chello.nl
Cc: mathieu.desnoyers@efficios.com
Cc: davem@davemloft.net
Cc: ddaney.cavm@gmail.com
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Link: http://lkml.kernel.org/r/20120222085809.GA26397@elte.hu
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
</feed>
.y'>linux-2.6.37.y</option>
<option value='linux-2.6.38.y'>linux-2.6.38.y</option>
<option value='linux-2.6.39.y'>linux-2.6.39.y</option>
<option value='linux-3.0.y'>linux-3.0.y</option>
<option value='linux-3.1.y'>linux-3.1.y</option>
<option value='linux-3.10.y'>linux-3.10.y</option>
<option value='linux-3.11.y'>linux-3.11.y</option>
<option value='linux-3.12.y'>linux-3.12.y</option>
<option value='linux-3.13.y'>linux-3.13.y</option>
<option value='linux-3.14.y'>linux-3.14.y</option>
<option value='linux-3.15.y'>linux-3.15.y</option>
<option value='linux-3.16.y'>linux-3.16.y</option>
<option value='linux-3.17.y'>linux-3.17.y</option>
<option value='linux-3.18.y'>linux-3.18.y</option>
<option value='linux-3.19.y'>linux-3.19.y</option>
<option value='linux-3.2.y'>linux-3.2.y</option>
<option value='linux-3.3.y'>linux-3.3.y</option>
<option value='linux-3.4.y'>linux-3.4.y</option>
<option value='linux-3.5.y'>linux-3.5.y</option>
<option value='linux-3.6.y'>linux-3.6.y</option>
<option value='linux-3.7.y'>linux-3.7.y</option>
<option value='linux-3.8.y'>linux-3.8.y</option>
<option value='linux-3.9.y'>linux-3.9.y</option>
<option value='linux-4.0.y'>linux-4.0.y</option>
<option value='linux-4.1.y'>linux-4.1.y</option>
<option value='linux-4.10.y'>linux-4.10.y</option>
<option value='linux-4.11.y'>linux-4.11.y</option>
<option value='linux-4.12.y'>linux-4.12.y</option>
<option value='linux-4.13.y'>linux-4.13.y</option>
<option value='linux-4.14.y'>linux-4.14.y</option>
<option value='linux-4.15.y'>linux-4.15.y</option>
<option value='linux-4.16.y'>linux-4.16.y</option>
<option value='linux-4.17.y'>linux-4.17.y</option>
<option value='linux-4.18.y'>linux-4.18.y</option>
<option value='linux-4.19.y'>linux-4.19.y</option>
<option value='linux-4.2.y'>linux-4.2.y</option>
<option value='linux-4.20.y'>linux-4.20.y</option>
<option value='linux-4.3.y'>linux-4.3.y</option>
<option value='linux-4.4.y'>linux-4.4.y</option>
<option value='linux-4.5.y'>linux-4.5.y</option>
<option value='linux-4.6.y'>linux-4.6.y</option>
<option value='linux-4.7.y'>linux-4.7.y</option>
<option value='linux-4.8.y'>linux-4.8.y</option>
<option value='linux-4.9.y'>linux-4.9.y</option>
<option value='linux-5.0.y'>linux-5.0.y</option>
<option value='linux-5.1.y'>linux-5.1.y</option>
<option value='linux-5.10.y'>linux-5.10.y</option>
<option value='linux-5.11.y'>linux-5.11.y</option>
<option value='linux-5.12.y'>linux-5.12.y</option>
<option value='linux-5.13.y'>linux-5.13.y</option>
<option value='linux-5.14.y'>linux-5.14.y</option>
<option value='linux-5.15.y'>linux-5.15.y</option>
<option value='linux-5.16.y'>linux-5.16.y</option>
<option value='linux-5.17.y'>linux-5.17.y</option>
<option value='linux-5.18.y'>linux-5.18.y</option>
<option value='linux-5.19.y'>linux-5.19.y</option>
<option value='linux-5.2.y'>linux-5.2.y</option>
<option value='linux-5.3.y'>linux-5.3.y</option>
<option value='linux-5.4.y'>linux-5.4.y</option>
<option value='linux-5.5.y'>linux-5.5.y</option>
<option value='linux-5.6.y'>linux-5.6.y</option>
<option value='linux-5.7.y'>linux-5.7.y</option>
<option value='linux-5.8.y'>linux-5.8.y</option>
<option value='linux-5.9.y'>linux-5.9.y</option>
<option value='linux-6.0.y'>linux-6.0.y</option>
<option value='linux-6.1.y'>linux-6.1.y</option>
<option value='linux-6.10.y'>linux-6.10.y</option>
<option value='linux-6.11.y'>linux-6.11.y</option>
<option value='linux-6.12.y'>linux-6.12.y</option>
<option value='linux-6.13.y'>linux-6.13.y</option>
<option value='linux-6.14.y'>linux-6.14.y</option>
<option value='linux-6.15.y'>linux-6.15.y</option>
<option value='linux-6.16.y'>linux-6.16.y</option>
<option value='linux-6.17.y'>linux-6.17.y</option>
<option value='linux-6.18.y'>linux-6.18.y</option>
<option value='linux-6.19.y'>linux-6.19.y</option>
<option value='linux-6.2.y'>linux-6.2.y</option>
<option value='linux-6.3.y'>linux-6.3.y</option>
<option value='linux-6.4.y'>linux-6.4.y</option>
<option value='linux-6.5.y'>linux-6.5.y</option>
<option value='linux-6.6.y'>linux-6.6.y</option>
<option value='linux-6.7.y'>linux-6.7.y</option>
<option value='linux-6.8.y'>linux-6.8.y</option>
<option value='linux-6.9.y'>linux-6.9.y</option>
<option value='linux-rolling-lts'>linux-rolling-lts</option>
<option value='linux-rolling-stable'>linux-rolling-stable</option>
<option value='master'>master</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Hosts the 0x221E linux distro kernel.</td><td class='sub right'>Ubuntu</td></tr></table>
<table class='tabs'><tr><td>
<a href='/distro/kernel/'>summary</a><a href='/distro/kernel/refs/?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>refs</a><a class='active' href='/distro/kernel/log/sound/soc/sof/imx/Kconfig'>log</a><a href='/distro/kernel/tree/sound/soc/sof/imx/Kconfig?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>tree</a><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>commit</a><a href='/distro/kernel/diff/sound/soc/sof/imx/Kconfig?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>diff</a></td><td class='form'><form class='right' method='get' action='/distro/kernel/log/sound/soc/sof/imx/Kconfig'>
<input type='hidden' name='id' value='3f9df56480fc8ce492fc9e988d67bdea884ed15c'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/distro/kernel/log/?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>root</a>/<a href='/distro/kernel/log/sound?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>sound</a>/<a href='/distro/kernel/log/sound/soc?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>soc</a>/<a href='/distro/kernel/log/sound/soc/sof?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>sof</a>/<a href='/distro/kernel/log/sound/soc/sof/imx?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>imx</a>/<a href='/distro/kernel/log/sound/soc/sof/imx/Kconfig?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c'>Kconfig</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/distro/kernel/log/sound/soc/sof/imx/Kconfig?id=3f9df56480fc8ce492fc9e988d67bdea884ed15c&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th></tr>
<tr><td><span title='2020-05-01 17:45:24 +0100'>2020-05-01</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=e149ca29f3994ca79e9e77aa2f5b2e871e9f7c99'>ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only</a></td><td>Pierre-Louis Bossart</td></tr>
<tr><td><span title='2020-04-30 14:39:44 +0100'>2020-04-30</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=f9dfa8f25462a2b9bb47dcb563688d616e21ee83'>ASoC: SOF: sort out Kconfig, again</a></td><td>Arnd Bergmann</td></tr>
<tr><td><span title='2020-04-23 17:27:27 +0100'>2020-04-23</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=fe57a92c88580ae7894b9c71d2d520ba98eb1591'>ASoC: SOF: Add missing dependency on IMX_SCU</a></td><td>Mark Brown</td></tr>
<tr><td><span title='2020-04-15 23:28:06 +0100'>2020-04-15</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=afb93d716533ddef20fc70e626f7b43f204cb411'>ASoC: SOF: imx: Add i.MX8M HW support</a></td><td>Daniel Baluta</td></tr>
<tr><td><span title='2020-04-15 23:28:05 +0100'>2020-04-15</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=cb0312f61c3e95c71ec8955a94d42bf7eb5ba617'>ASoC: SOF: imx: fix undefined reference issue</a></td><td>Pierre-Louis Bossart</td></tr>
<tr><td><span title='2020-04-15 23:28:04 +0100'>2020-04-15</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=fe17e6cdc0fefca96ba9659be4b2b07487cbf0c5'>ASoC: SOF: imx8: Fix randbuild error</a></td><td>YueHaibing</td></tr>
<tr><td><span title='2019-11-07 14:12:30 +0100'>2019-11-07</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=9ff7759731db1df8dfe036046d05c3f7ed1e37b0'>Merge tag 'asoc-v5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broo...</a></td><td>Takashi Iwai</td></tr>
<tr><td><span title='2019-11-04 13:24:02 +0000'>2019-11-04</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=f9ad75468453b019b92c5296e6a04bf7c37f49e4'>ASoC: SOF: imx: fix reverse CONFIG_SND_SOC_SOF_OF dependency</a></td><td>Pierre-Louis Bossart</td></tr>
<tr><td><span title='2019-10-07 03:53:03 +0200'>2019-10-07</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=82e8d723e9e6698572098bf2976223d5069b34b5'>sound: Fix Kconfig indentation</a></td><td>Krzysztof Kozlowski</td></tr>
<tr><td><span title='2019-09-05 18:18:25 +0100'>2019-09-05</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=f4df4e4042b045c6ddbaff878a17ae169fe68ba6'>ASoC: SOF: imx8: Fix COMPILE_TEST error</a></td><td>YueHaibing</td></tr>
<tr><td><span title='2019-08-22 18:28:32 +0100'>2019-08-22</span></td><td><a href='/distro/kernel/commit/sound/soc/sof/imx/Kconfig?id=202acc565a1f050f82fdab646fd9c86bfdb21733'>ASoC: SOF: imx: Add i.MX8 HW support</a></td><td>Daniel Baluta</td></tr>
