<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/compat/linux/linux_vdso.c, branch release/13.2.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F13.2.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F13.2.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2022-06-17T19:33:09Z</updated>
<entry>
<title>Drop "All rights reserved" from my copyright statements.</title>
<updated>2022-06-17T19:33:09Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2021-07-20T07:05:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2e084b4b54cbaeb8fe1e6f7dd778bb79f12f0b4c'/>
<id>urn:sha1:2e084b4b54cbaeb8fe1e6f7dd778bb79f12f0b4c</id>
<content type='text'>
Add email and fixup years while here.

Reviewed by:		imp
Differential Revision:	https://reviews.freebsd.org/D30912
MFC after:		2 weeks

(cherry picked from commit 1ca6b15bbdcebd6a0726dae2e9b72f383139d16c)
</content>
</entry>
<entry>
<title>linux(4); Almost complete the vDSO.</title>
<updated>2022-06-17T19:33:07Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2022-06-17T19:33:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a340b5b4bd4814ad2010c5e7bfaa51082427c4ae'/>
<id>urn:sha1:a340b5b4bd4814ad2010c5e7bfaa51082427c4ae</id>
<content type='text'>
The vDSO (virtual dynamic shared object) is a small shared library that the
kernel maps R/O into the address space of all Linux processes on image
activation. The vDSO is a fully formed ELF image, shared by all processes
with the same ABI, has no process private data.

The primary purpose of the vDSO:
- non-executable stack, signal trampolines not copied to the stack;
- signal trampolines unwind, mandatory for the NPTL;
- to avoid contex-switch overhead frequently used system calls can be
  implemented in the vDSO: for now gettimeofday, clock_gettime.

The first two have been implemented, so add the implementation of system
calls.

System calls implemenation based on a native timekeeping code with some
limitations:
- ifunc can't be used, as vDSO r/o mapped to the process VA and rtld
  can't relocate symbols;
- reading HPET memory is not implemented for now (TODO).

In case on any error vDSO system calls fallback to the kernel system
calls. For unimplemented vDSO system calls added prototypes which call
corresponding kernel system call.

Relnotes:		yes
Tested by:              trasz (arm64)
Differential revision:  https://reviews.freebsd.org/D30900
MFC after:              2 weeks

(cherry picked from commit 9931033bbfbe56a037723638cf3712366c6d943f)
</content>
</entry>
<entry>
<title>amd64: wrap 64bit sigtramp into vdso</title>
<updated>2022-01-02T16:43:01Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2021-11-05T08:07:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=203bcad73164bf6e4f51edc4ffda7f2a3885b413'/>
<id>urn:sha1:203bcad73164bf6e4f51edc4ffda7f2a3885b413</id>
<content type='text'>
(cherry picked from commit ab4524b3d7fba872a143b03c9346cb04c3670efa)
</content>
</entry>
<entry>
<title>linux: Unmap the VDSO page when unloading</title>
<updated>2021-02-23T01:29:55Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2021-02-16T14:30:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3df2766a691679ac383aabc8409a1a84433c15e6'/>
<id>urn:sha1:3df2766a691679ac383aabc8409a1a84433c15e6</id>
<content type='text'>
linux_shared_page_init() creates an object and grabs and maps a single
page to back the VDSO.  When destroying the VDSO object, we failed to
destroy the mapping and free KVA.  Fix this.

Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D28696

(cherry picked from commit 0fc8a796722846d0d676548aa0f5cc660199db73)
</content>
</entry>
<entry>
<title>compat: clean up empty lines in .c and .h files</title>
<updated>2020-09-01T21:24:33Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-09-01T21:24:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1a180032407ba2dabd02e39c508fe232a9ef66ba'/>
<id>urn:sha1:1a180032407ba2dabd02e39c508fe232a9ef66ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix the last few cases that grab without busy or valid.  The grab functions must</title>
<updated>2019-12-02T22:38:25Z</updated>
<author>
<name>Jeff Roberson</name>
<email>jeff@FreeBSD.org</email>
</author>
<published>2019-12-02T22:38:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4504268a1b3cc208ac7fddfae567217aa1f2b68d'/>
<id>urn:sha1:4504268a1b3cc208ac7fddfae567217aa1f2b68d</id>
<content type='text'>
return the page in some held state for consistency elsewhere.

Reviewed by:	alc, kib, markj
Differential Revision:	https://reviews.freebsd.org/D22610
</content>
</entry>
<entry>
<title>Avoid using [LINUX_]SHAREDPAGE constant directly in the vdso code.</title>
<updated>2017-07-30T21:24:20Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2017-07-30T21:24:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c151945c8645ef2c44d4f06ded23f9c43ea48d98'/>
<id>urn:sha1:c151945c8645ef2c44d4f06ded23f9c43ea48d98</id>
<content type='text'>
This is needed for https://reviews.freebsd.org/D11780.

Reported by:	kib@
</content>
</entry>
<entry>
<title>Fix usage of the same 'i' variable in the external and nested loops.</title>
<updated>2017-03-14T18:29:23Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2017-03-14T18:29:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5bb676adf7be0ca250b2273a4faee74ceabc826e'/>
<id>urn:sha1:5bb676adf7be0ca250b2273a4faee74ceabc826e</id>
<content type='text'>
Submitted by: Svyatoslav &lt;razmyslov at viva64.com&gt;
Sponsored by: PVS-Studio

MFC after:	1 week
</content>
</entry>
<entry>
<title>Add 64 bit support to the vdso.</title>
<updated>2015-05-24T15:45:36Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2015-05-24T15:45:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=36204c301698ea648796bfc50ff61c17b75d7f9e'/>
<id>urn:sha1:36204c301698ea648796bfc50ff61c17b75d7f9e</id>
<content type='text'>
Differential Revision:	https://reviews.freebsd.org/D1069
Reviewed by:	trasz
</content>
</entry>
<entry>
<title>Implement vdso - virtual dynamic shared object. Through vdso Linux</title>
<updated>2015-05-24T15:28:17Z</updated>
<author>
<name>Dmitry Chagin</name>
<email>dchagin@FreeBSD.org</email>
</author>
<published>2015-05-24T15:28:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bdc379344aee7b07ea84d4da61a4f228b72f8079'/>
<id>urn:sha1:bdc379344aee7b07ea84d4da61a4f228b72f8079</id>
<content type='text'>
exposes functions from kernel with proper DWARF CFI information so that
it becomes easier to unwind through them.
Using vdso is a mandatory for a thread cancelation &amp;&amp; cleanup
on a modern glibc.

Differential Revision:	https://reviews.freebsd.org/D1060
</content>
</entry>
</feed>
