<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/mips/include, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-04-25T12:50:21Z</updated>
<entry>
<title>MFC r342022 (by imp):</title>
<updated>2020-04-25T12:50:21Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2020-04-25T12:50:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d781a2df31fcdb1f8a6a32e4c2fe210649143583'/>
<id>urn:sha1:d781a2df31fcdb1f8a6a32e4c2fe210649143583</id>
<content type='text'>
Correctly implemenet atomic_swap_long for mips64.

MIPS64 has 64-bit longs, so use uint64_t for it, otherwise uint32_t.
sizeof(long) == sizeof(ptr) for all platforms, so define
atomic_swap_ptr in terms of atomic_swap_long.

Submitted by: hps@
</content>
</entry>
<entry>
<title>MFC r351594 (by kib): Centralize __pcpu definitions.</title>
<updated>2019-10-25T18:56:46Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-10-25T18:56:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c562cf63835fc7f35cefb7bda9ace3baaa23f442'/>
<id>urn:sha1:c562cf63835fc7f35cefb7bda9ace3baaa23f442</id>
<content type='text'>
Many extern struct pcpu &lt;something&gt;__pcpu declarations were
copied/pasted in sources.  The issue is that the definition is MD, but
it cannot be provided by machine/pcpu.h due to actual struct pcpu
defined in sys/pcpu.h later than the inclusion of machine/pcpu.h.
This forced the copying when other code needed direct access to
__pcpu.  There is no way around it, due to machine/pcpu.h supplying
part of struct pcpu fields.

To work around the problem, add a new machine/pcpu_aux.h header, which
should fill any needed MD definitions after struct pcpu definition is
completed. This allows to remove copies of __pcpu spread around the
source.  Also on x86 it makes it possible to remove work arounds like
OFFSETOF_CURTHREAD or clang specific warnings supressions.
</content>
</entry>
<entry>
<title>MFC r341787 by hselasky: Implement atomic_swap_xxx() for all platforms.</title>
<updated>2019-10-24T15:46:00Z</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2019-10-24T15:46:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0de8d60fe06121c41693f0a44b50a935606cebbf'/>
<id>urn:sha1:0de8d60fe06121c41693f0a44b50a935606cebbf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r353166: add atomic_load_64 for mipsn32</title>
<updated>2019-10-19T08:22:51Z</updated>
<author>
<name>Andriy Gapon</name>
<email>avg@FreeBSD.org</email>
</author>
<published>2019-10-19T08:22:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b7eb16baca1e06ec46f799f84b01bd408b844804'/>
<id>urn:sha1:b7eb16baca1e06ec46f799f84b01bd408b844804</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r351681: mips: fix some mcount nits</title>
<updated>2019-09-09T17:37:52Z</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2019-09-09T17:37:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6b0cb559495b14183206a78d9268e5222541528c'/>
<id>urn:sha1:6b0cb559495b14183206a78d9268e5222541528c</id>
<content type='text'>
The symbol version for _mcount was removed 12 years ago in r169525 from
gmon/Symbol.map, to be added to the per-arch Symbol.map. mips was overlooked
in this, so _mcount has no symver. Add it back to where it should have been,
rather than where it would go if it were added today, since we're correcting
a historical mistake.

Additionally, _mcount is getting thrown into .mdebug.abi32 in the llvm80/90
world as it's not getting explicitly thrown into .text, so do this now. This
fixes the libc build that was previously failing due to relocations in
.mdebug.abi32. This is specifically due to the way clang's integrated AS
works and that they emit the .mdebug.abiNN section early in the process. An
LLVM bug has been submitted (and since committed) and an agreement has been
made that the mips backend should switch to .text following .mdebug.abiNN
for compatibility.
</content>
</entry>
<entry>
<title>MFC r351227: mips: avoid empty mdproc struct</title>
<updated>2019-09-03T20:23:58Z</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2019-09-03T20:23:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3c6774c077963d940b163fab90b4946aa2a817d1'/>
<id>urn:sha1:3c6774c077963d940b163fab90b4946aa2a817d1</id>
<content type='text'>
Compiling with a more modern toolchain than GCC 4.2 in base warns about the
empty struct. Take a hint and comment from r350902+r350953 by luporl@.
</content>
</entry>
<entry>
<title>MFC r351408-r351410: reduce pollution from mips machine/regnum.h</title>
<updated>2019-09-03T20:19:43Z</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2019-09-03T20:19:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1bdb9589d444778137fbcee33a93b6213036f901'/>
<id>urn:sha1:1bdb9589d444778137fbcee33a93b6213036f901</id>
<content type='text'>
r351408:
libsa: mips: use _JB_* from machine/asm.h, remove regnum dep

This brings the libsa/mips _setjmp implementation closer to parity with the
libc version.

r351409:
mips: hide regnum definitions behind _KERNEL/_WANT_MIPS_REGNUM

machine/regnum.h ends up being included by sys/procfs.h and sys/ptrace.h via
machine/reg.h. Many of the regnum definitions are too short and too generic
to be exposing to any userland application including one of these two
headers. Moreover, these actively cause build failures in googletest
(template &lt;typename T1 ...&gt; expanding to template &lt;typename 9 ...&gt;).

Hide the definitions behind _KERNEL or _WANT_MIPS_REGNUM, and patch all of
the userland consumers to define as needed.

r351410:
libsa: mips: fix typo that had slipped into the diff on local machine
</content>
</entry>
<entry>
<title>MFC r345228:</title>
<updated>2019-03-23T11:47:13Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-03-23T11:47:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b120f251b6d0b4dbaa214d062fd754c57045dad4'/>
<id>urn:sha1:b120f251b6d0b4dbaa214d062fd754c57045dad4</id>
<content type='text'>
amd64 KPTI: add control from procctl(2).
</content>
</entry>
<entry>
<title>MFC r344353:</title>
<updated>2019-03-06T17:33:05Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-03-06T17:33:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=976fff0256ecb5fb48a260d5318e6e30244b0fd5'/>
<id>urn:sha1:976fff0256ecb5fb48a260d5318e6e30244b0fd5</id>
<content type='text'>
Add kernel support for Intel userspace protection keys feature on
Skylake Xeons.
</content>
</entry>
<entry>
<title>MFC 340164,340168,340170: Add custom cpu_lock_delay() for x86.</title>
<updated>2018-11-08T22:39:38Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2018-11-08T22:39:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8406429759c9e8b86b2be2115f7e3696f42aeae4'/>
<id>urn:sha1:8406429759c9e8b86b2be2115f7e3696f42aeae4</id>
<content type='text'>
340164:
Add a KPI for the delay while spinning on a spin lock.

Replace a call to DELAY(1) with a new cpu_lock_delay() KPI.  Currently
cpu_lock_delay() is defined to DELAY(1) on all platforms.  However,
platforms with a DELAY() implementation that uses spin locks should
implement a custom cpu_lock_delay() doesn't use locks.

340168:
Add a delay_tsc() static function for when DELAY() uses the TSC.

This uses slightly simpler logic than the existing code by using the
full 64-bit counter and thus not having to worry about counter
overflow.

340170:
Add a custom implementation of cpu_lock_delay() for x86.

Avoid using DELAY() since it can try to use spin locks on CPUs without
a P-state invariant TSC.  For cpu_lock_delay(), always use the TSC if
it exists (even if it is not P-state invariant) to delay for a
microsecond.  If the TSC does not exist, read from I/O port 0x84 to
delay instead.

PR:		228768
Approved by:	re (gjb)
</content>
</entry>
</feed>
