<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/hyperv/vmbus, branch release/12.3.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F12.3.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F12.3.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2021-10-12T16:01:26Z</updated>
<entry>
<title>pvclock: Add vDSO support</title>
<updated>2021-10-12T16:01:26Z</updated>
<author>
<name>Adam Fenn</name>
<email>adam@fenn.io</email>
</author>
<published>2021-08-07T20:10:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4b34c91973ddaf594bbb192f84e421598a1b39be'/>
<id>urn:sha1:4b34c91973ddaf594bbb192f84e421598a1b39be</id>
<content type='text'>
Add vDSO support for timekeeping devices that support the KVM/XEN
paravirtual clock API.

Also, expose, in the userspace-accessible '&lt;machine/pvclock.h&gt;',
definitions that will be needed by 'libc' to support
'VDSO_TH_ALGO_X86_PVCLK'.

Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D31418

(cherry picked from commit d4b2d3035a23d5dc468d41151487a8299bf45cdc)
</content>
</entry>
<entry>
<title>hyperv/vmbus: Update VMBus version 4.0 and 5.0 support.</title>
<updated>2021-03-15T05:00:05Z</updated>
<author>
<name>Wei Hu</name>
<email>whu@FreeBSD.org</email>
</author>
<published>2019-07-09T07:24:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c38b9b80149f463b0c39a677e91b20925ec486d1'/>
<id>urn:sha1:c38b9b80149f463b0c39a677e91b20925ec486d1</id>
<content type='text'>
Add VMBus protocol version 4.0. and 5.0 to support Windows 10 and newer HyperV hosts.

For VMBus 4.0 and newer HyperV, the netvsc gpadl teardown must be done after vmbus close.

Submitted by:	whu
MFC after:	2 weeks
Sponsored by:	Microsoft

(cherry picked from commit ace5ce7e701e5a98c23f820d4f126e5c265aa667)
</content>
</entry>
<entry>
<title>Prevent framebuffer mmio space from being allocated to other devices on HyperV.</title>
<updated>2021-03-15T04:47:18Z</updated>
<author>
<name>Wei Hu</name>
<email>whu@FreeBSD.org</email>
</author>
<published>2020-07-30T07:26:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e801c980e253d3f4087ef6d6b8fd382aed68d51c'/>
<id>urn:sha1:e801c980e253d3f4087ef6d6b8fd382aed68d51c</id>
<content type='text'>
On Gen2 VMs, Hyper-V provides mmio space for framebuffer.
This mmio address range is not useable for other PCI devices.
Currently only efifb driver is using this range without reserving
it from system.
Therefore, vmbus driver reserves it before any other PCI device
drivers start to request mmio addresses.

PR:		222996
Submitted by:	weh@microsoft.com
Reported by:	dmitry_kuleshov@ukr.net
Reviewed by:	decui@microsoft.com
Sponsored by:	Microsoft

(cherry picked from commit c565776195f2f2b62427af07f6b1a9b7670cbc1f)
</content>
</entry>
<entry>
<title>MFC r357871:</title>
<updated>2020-02-20T01:45:55Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2020-02-20T01:45:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d01ee9bff5508c11c7a842b60947b33d38f84458'/>
<id>urn:sha1:d01ee9bff5508c11c7a842b60947b33d38f84458</id>
<content type='text'>
hyperv: Add Hygon Dhyana support.
</content>
</entry>
<entry>
<title>Eliminate the arena parameter to kmem_free().  Implicitly this corrects an</title>
<updated>2018-08-25T19:38:08Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2018-08-25T19:38:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=49bfa624ac861d7fafc87f06dc2cdf4972aed854'/>
<id>urn:sha1:49bfa624ac861d7fafc87f06dc2cdf4972aed854</id>
<content type='text'>
error in the function hypercall_memfree(), where the wrong arena was being
passed to kmem_free().

Introduce a per-page flag, VPO_KMEM_EXEC, to mark physical pages that are
mapped in kmem with execute permissions.  Use this flag to determine which
arena the kmem virtual addresses are returned to.

Eliminate UMA_SLAB_KRWX.  The introduction of VPO_KMEM_EXEC makes it
redundant.

Update the nearby comment for UMA_SLAB_KERNEL.

Reviewed by:	kib, markj
Discussed with:	jeff
Approved by:	re (marius)
Differential Revision:	https://reviews.freebsd.org/D16845
</content>
</entry>
<entry>
<title>Eliminate kmem_malloc()'s unused arena parameter.  (The arena parameter</title>
<updated>2018-08-21T16:43:46Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2018-08-21T16:43:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=83a90bffd8d7374d27d8d63097c5205af7bfa4f6'/>
<id>urn:sha1:83a90bffd8d7374d27d8d63097c5205af7bfa4f6</id>
<content type='text'>
became unused in FreeBSD 12.x as a side-effect of the NUMA-related
changes.)

Reviewed by:	kib, markj
Discussed with:	jeff, re@
Differential Revision:	https://reviews.freebsd.org/D16825
</content>
</entry>
<entry>
<title>Use SMAP on amd64.</title>
<updated>2018-07-29T20:47:00Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2018-07-29T20:47:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b3a7db3b066386957607fe3e5db2a4c617d4f9bc'/>
<id>urn:sha1:b3a7db3b066386957607fe3e5db2a4c617d4f9bc</id>
<content type='text'>
Ifuncs selectors dispatch copyin(9) family to the suitable variant, to
set rflags.AC around userspace access.  Rflags.AC bit is cleared in
all kernel entry points unconditionally even on machines not
supporting SMAP.

Reviewed by:	jhb
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D13838
</content>
</entry>
<entry>
<title>hyperv: Fix boot-up after malloc() returns memory of NX by default now</title>
<updated>2018-07-07T00:41:04Z</updated>
<author>
<name>Dexuan Cui</name>
<email>dexuan@FreeBSD.org</email>
</author>
<published>2018-07-07T00:41:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=96f105d11fdc77359005c6d61604760a78f99ddb'/>
<id>urn:sha1:96f105d11fdc77359005c6d61604760a78f99ddb</id>
<content type='text'>
FreeBSD VM can't boot up on Hyper-V after the recent malloc change in
r335068: Make UMA and malloc(9) return non-executable memory in most cases.

The hypercall page here must be executable.
Fix the boot-up issue by adding M_EXEC.

PR:		229167
Sponsored by:	Microsoft
</content>
</entry>
<entry>
<title>i386 4/4G split.</title>
<updated>2018-04-13T20:30:49Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2018-04-13T20:30:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d86c1f0dc1b17d94a533b4d3e9228dff9cb3fb31'/>
<id>urn:sha1:d86c1f0dc1b17d94a533b4d3e9228dff9cb3fb31</id>
<content type='text'>
The change makes the user and kernel address spaces on i386
independent, giving each almost the full 4G of usable virtual addresses
except for one PDE at top used for trampoline and per-CPU trampoline
stacks, and system structures that must be always mapped, namely IDT,
GDT, common TSS and LDT, and process-private TSS and LDT if allocated.

By using 1:1 mapping for the kernel text and data, it appeared
possible to eliminate assembler part of the locore.S which bootstraps
initial page table and KPTmap.  The code is rewritten in C and moved
into the pmap_cold(). The comment in vmparam.h explains the KVA
layout.

There is no PCID mechanism available in protected mode, so each
kernel/user switch forth and back completely flushes the TLB, except
for the trampoline PTD region. The TLB invalidations for userspace
becomes trivial, because IPI handlers switch page tables. On the other
hand, context switches no longer need to reload %cr3.

copyout(9) was rewritten to use vm_fault_quick_hold().  An issue for
new copyout(9) is compatibility with wiring user buffers around sysctl
handlers. This explains two kind of locks for copyout ptes and
accounting of the vslock() calls.  The vm_fault_quick_hold() AKA slow
path, is only tried after the 'fast path' failed, which temporary
changes mapping to the userspace and copies the data to/from small
per-cpu buffer in the trampoline.  If a page fault occurs during the
copy, it is short-circuit by exception.s to not even reach C code.

The change was motivated by the need to implement the Meltdown
mitigation, but instead of KPTI the full split is done.  The i386
architecture already shows the sizing problems, in particular, it is
impossible to link clang and lld with debugging.  I expect that the
issues due to the virtual address space limits would only exaggerate
and the split gives more liveness to the platform.

Tested by: pho
Discussed with:	bde
Sponsored by:	The FreeBSD Foundation
MFC after:	1 month
Differential revision:	https://reviews.freebsd.org/D14633
</content>
</entry>
<entry>
<title>Correct comment typo in Hyper-V</title>
<updated>2018-03-30T02:25:12Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2018-03-30T02:25:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5a7ed65fffd3ee4406e66d43a9a45f81b4fa450c'/>
<id>urn:sha1:5a7ed65fffd3ee4406e66d43a9a45f81b4fa450c</id>
<content type='text'>
PR:		226665
Submitted by:	Ryo ONODERA
MFC after:	3 days
</content>
</entry>
</feed>
