<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/include/asm/asm.h, branch linux-3.10.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.10.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.10.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-04-21T00:22:34Z</updated>
<entry>
<title>x86, extable: Switch to relative exception table entries</title>
<updated>2012-04-21T00:22:34Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2012-04-21T00:12:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=706276543b699d80f546e45f8b12574e7b18d952'/>
<id>urn:sha1:706276543b699d80f546e45f8b12574e7b18d952</id>
<content type='text'>
Switch to using relative exception table entries on x86.  On i386,
this has the advantage that the exception table entries don't need to
be relocated; on x86-64 this means the exception table entries take up
only half the space.

In either case, a 32-bit delta is sufficient, as the range of kernel
code addresses is limited.

Since part of the goal is to avoid needing to adjust the entries when
the kernel is relocated, the old trick of using addresses in the NULL
pointer range to indicate uaccess_err no longer works (and unlike RISC
architectures we can't use a flag bit); instead use an delta just
below +2G to indicate these special entries.  The reach is still
limited to a single instruction.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
</content>
</entry>
<entry>
<title>x86, extable: Add _ASM_EXTABLE_EX() macro</title>
<updated>2012-04-20T23:57:35Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2012-04-20T23:57:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=535c0c34698061544f81a51c65fc51f4eeeebff6'/>
<id>urn:sha1:535c0c34698061544f81a51c65fc51f4eeeebff6</id>
<content type='text'>
Add _ASM_EXTABLE_EX() to generate the special extable entries that are
associated with uaccess_err.  This allows us to change the protocol
associated with these special entries.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
</content>
</entry>
<entry>
<title>x86, extable: Remove the now-unused __ASM_EX_SEC macros</title>
<updated>2012-04-20T20:51:40Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2012-04-20T19:20:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=447657e31235c692f579c639250317c7f565cd0d'/>
<id>urn:sha1:447657e31235c692f579c639250317c7f565cd0d</id>
<content type='text'>
Nothing should use them anymore; only _ASM_EXTABLE() should ever be
used.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
</content>
</entry>
<entry>
<title>x86, extable: Use .pushsection ... .popsection for _ASM_EXTABLE()</title>
<updated>2012-04-20T20:51:38Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2012-04-20T19:12:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d4541805e812abb5110d5de83246488fa0aa9a8e'/>
<id>urn:sha1:d4541805e812abb5110d5de83246488fa0aa9a8e</id>
<content type='text'>
Instead of using .section ... .previous, use .pushsection
... .popsection; this is (hopefully) a bit more robust, especially in
complex assembly code.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
</content>
</entry>
<entry>
<title>x86: Fix write lock scalability 64-bit issue</title>
<updated>2011-07-21T07:03:36Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2011-07-19T12:00:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a750036f35cda160ef77408ec92c3dc41f8feebb'/>
<id>urn:sha1:a750036f35cda160ef77408ec92c3dc41f8feebb</id>
<content type='text'>
With the write lock path simply subtracting RW_LOCK_BIAS there
is, on large systems, the theoretical possibility of overflowing
the 32-bit value that was used so far (namely if 128 or more
CPUs manage to do the subtraction, but don't get to do the
inverse addition in the failure path quickly enough).

A first measure is to modify RW_LOCK_BIAS itself - with the new
value chosen, it is good for up to 2048 CPUs each allowed to
nest over 2048 times on the read path without causing an issue.
Quite possibly it would even be sufficient to adjust the bias a
little further, assuming that allowing for significantly less
nesting would suffice.

However, as the original value chosen allowed for even more
nesting levels, to support more than 2048 CPUs (possible
currently only for 64-bit kernels) the lock itself gets widened
to 64 bits.

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/4E258E0D020000780004E3F0@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: Unify rwlock assembly implementation</title>
<updated>2011-07-21T07:03:31Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2011-07-19T11:59:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4625cd637919edfb562e0d62abf94f52e9321335'/>
<id>urn:sha1:4625cd637919edfb562e0d62abf94f52e9321335</id>
<content type='text'>
Rather than having two functionally identical implementations
for 32- and 64-bit configurations, extend the existing assembly
abstractions enough to fold the two rwlock implementations into
a shared one.

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/4E258DD7020000780004E3EA@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86, asm: Make _ASM_EXTABLE() usable from assembly code</title>
<updated>2009-08-31T22:14:30Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2009-08-31T18:57:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=709972b1f6f70535d1fddbe1243a51b90c408a1c'/>
<id>urn:sha1:709972b1f6f70535d1fddbe1243a51b90c408a1c</id>
<content type='text'>
We have had this convenient macro _ASM_EXTABLE() to generate exception
table entry in inline assembly.  Make it also usable for pure
assembly.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
</entry>
<entry>
<title>x86: Fix ASM_X86__ header guards</title>
<updated>2008-10-23T05:55:23Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2008-10-23T05:26:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1965aae3c98397aad957412413c07e97b1bd4e64'/>
<id>urn:sha1:1965aae3c98397aad957412413c07e97b1bd4e64</id>
<content type='text'>
Change header guards named "ASM_X86__*" to "_ASM_X86_*" since:

a. the double underscore is ugly and pointless.
b. no leading underscore violates namespace constraints.

Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
</entry>
<entry>
<title>x86, um: ... and asm-x86 move</title>
<updated>2008-10-23T05:55:20Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2008-08-18T01:05:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb8985586b7a906e116db835c64773b7a7d51663'/>
<id>urn:sha1:bb8985586b7a906e116db835c64773b7a7d51663</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@zytor.com&gt;
</content>
</entry>
</feed>
