git: 563d5929d5f2 - main - sysutils/kvmclock-kmod: new port - call for testing
Dave Cottlehuber
dch at FreeBSD.org
Sun May 30 13:37:42 UTC 2021
The branch main has been updated by dch:
URL: https://cgit.FreeBSD.org/ports/commit/?id=563d5929d5f28631999a32d2aab4e72e1bf2c323
commit 563d5929d5f28631999a32d2aab4e72e1bf2c323
Author: Dave Cottlehuber <dch at FreeBSD.org>
AuthorDate: 2021-05-30 13:35:19 +0000
Commit: Dave Cottlehuber <dch at FreeBSD.org>
CommitDate: 2021-05-30 13:35:19 +0000
sysutils/kvmclock-kmod: new port - call for testing
Improved performance on KVM paravirtualised systems. Testing
welcomed; please report successes and issues to:
https://reviews.freebsd.org/D29733
kvmclock-kmod is experimental and currently under development. This port
provides an easy and quick method for users to test this code for early
testing, feedback and bug reports.
This driver enables FreeBSD to use a more efficient paravirtualized
hardware clock, instead of emulating one, or abusing hypervisor
interrupts, when running as a virtualized OS under Linux KVM
(Kernel-based Virtual Machine).
Reviewed by: allanjude
Sponsored by: Klara Inc.
Sponsored by: SkunkWerks, GmbH
Differential Revision: https://reviews.freebsd.org/D30459
PR: 216759
---
sysutils/Makefile | 1 +
sysutils/kvmclock-kmod/Makefile | 25 +++++++++++++++++++++++++
sysutils/kvmclock-kmod/distinfo | 3 +++
sysutils/kvmclock-kmod/pkg-descr | 11 +++++++++++
sysutils/kvmclock-kmod/pkg-message | 24 ++++++++++++++++++++++++
5 files changed, 64 insertions(+)
diff --git a/sysutils/Makefile b/sysutils/Makefile
index dda66170e644..98481ed67421 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -581,6 +581,7 @@
SUBDIR += kshutdown
SUBDIR += ksystemlog
SUBDIR += kubectl
+ SUBDIR += kvmclock-kmod
SUBDIR += lava
SUBDIR += lbl-cf
SUBDIR += lbl-hf
diff --git a/sysutils/kvmclock-kmod/Makefile b/sysutils/kvmclock-kmod/Makefile
new file mode 100644
index 000000000000..6a1c5ec2d222
--- /dev/null
+++ b/sysutils/kvmclock-kmod/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= kvmclock
+DISTVERSION= 0.0.0-a2
+CATEGORIES= sysutils
+PKGNAMESUFFIX= -kmod
+
+MAINTAINER= dch at FreeBSD.org
+COMMENT= Paravirtualized Linux KVM clock support
+
+LICENSE= BSD2CLAUSE
+
+ONLY_FOR_ARCHS= amd64 i386
+ONLY_FOR_ARCHS_REASON= not yet tested for non-x86
+
+USES= kmod uidfix
+KMOD= kvmclock
+
+USE_GITHUB= yes
+GH_ACCOUNT= klarasystems
+
+PLIST_FILES= ${KMODDIR}/kvmclock.ko
+
+OPTIONS_DEFINE= DEBUG
+OPTIONS_SUB= yes
+
+.include <bsd.port.mk>
diff --git a/sysutils/kvmclock-kmod/distinfo b/sysutils/kvmclock-kmod/distinfo
new file mode 100644
index 000000000000..7e6f54fc3840
--- /dev/null
+++ b/sysutils/kvmclock-kmod/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1621967719
+SHA256 (klarasystems-kvmclock-0.0.0-a2_GH0.tar.gz) = 1497f3eca5bc1f1d9708aa601f5fdbdea08852e16b6c9c1d55bc6d0262baf708
+SIZE (klarasystems-kvmclock-0.0.0-a2_GH0.tar.gz) = 7676
diff --git a/sysutils/kvmclock-kmod/pkg-descr b/sysutils/kvmclock-kmod/pkg-descr
new file mode 100644
index 000000000000..7eca429ebc59
--- /dev/null
+++ b/sysutils/kvmclock-kmod/pkg-descr
@@ -0,0 +1,11 @@
+Development version of kvmclock FreeBSD driver for virtual machines.
+
+References and prior art:
+
+https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/chap-kvm_guest_timing_management
+https://www.vmware.com/files/pdf/techpaper/Timekeeping-In-VirtualMachines.pdf
+http://oliveryang.net/2015/09/pitfalls-of-TSC-usage/#33-tsc-emulation-on-different-hypervisors
+https://reviews.freebsd.org/D29531
+https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216759
+
+WWW: https://reviews.freebsd.org/D29733
diff --git a/sysutils/kvmclock-kmod/pkg-message b/sysutils/kvmclock-kmod/pkg-message
new file mode 100644
index 000000000000..d410eecdba03
--- /dev/null
+++ b/sysutils/kvmclock-kmod/pkg-message
@@ -0,0 +1,24 @@
+[
+{ type: install
+ message: <<EOM
+kvmclock-kmod is experimental and currently under development. This port
+provides an easy and quick method for users to test this code for early
+testing, feedback and bug reports.
+
+This driver enables FreeBSD to use a more efficient paravirtualized
+hardware clock, instead of emulating one, or abusing hypervisor
+interrupts, when running as a virtualized OS under Linux KVM
+(Kernel-based Virtual Machine).
+
+Usage:
+
+# kldload kvmclock
+# sysctl kern.timecounter
+kern.timecounter.choice: kvmclock(975) i8254(0) ...
+kern.timecounter.hardware: kvmclock
+...
+
+Please report successes and issues to: https://reviews.freebsd.org/D29733
+EOM
+}
+]
More information about the dev-commits-ports-all
mailing list