Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Jul 2023 08:57:40 GMT
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 9bb1dbe67772 - main - x11-wm/kwinft: support mac_priority(4) on Wayland
Message-ID:  <202307150857.36F8vebD033864@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9bb1dbe677724f5a7a6bb29e6978842468387670

commit 9bb1dbe677724f5a7a6bb29e6978842468387670
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-07-15 08:31:14 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-07-15 08:57:03 +0000

    x11-wm/kwinft: support mac_priority(4) on Wayland
    
    https://blog.martin-graesslin.com/blog/2017/09/kwinwayland-goes-real-time/
---
 x11-wm/kwinft/Makefile                      |  2 +-
 x11-wm/kwinft/files/patch-main__wayland.cpp | 36 +++++++++++++++++++++++++++++
 x11-wm/kwinft/pkg-message                   |  7 ++++++
 3 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/x11-wm/kwinft/Makefile b/x11-wm/kwinft/Makefile
index 56a796c3d84a..7535d04701aa 100644
--- a/x11-wm/kwinft/Makefile
+++ b/x11-wm/kwinft/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	kwinft
 DISTVERSIONPREFIX=	${PORTNAME}@
 DISTVERSION=	5.27.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	x11-wm wayland
 
 MAINTAINER=	jbeich@FreeBSD.org
diff --git a/x11-wm/kwinft/files/patch-main__wayland.cpp b/x11-wm/kwinft/files/patch-main__wayland.cpp
new file mode 100644
index 000000000000..df6a92432f05
--- /dev/null
+++ b/x11-wm/kwinft/files/patch-main__wayland.cpp
@@ -0,0 +1,36 @@
+- Emulate SCHED_RESET_ON_FORK via pthread_atfork
+- Switch to pthread_setschedparam as Linux sched_setscheduler
+  operates on threads contrary to POSIX
+
+--- main_wayland.cpp.orig	2023-02-17 14:50:58 UTC
++++ main_wayland.cpp
+@@ -58,7 +58,7 @@ along with this program.  If not, see <http://www.gnu.
+ #include <QDebug>
+ #include <QWindow>
+ 
+-#include <sched.h>
++#include <pthread.h>
+ #include <sys/resource.h>
+ 
+ #include <iostream>
+@@ -122,12 +122,17 @@ void gainRealTime()
+ namespace {
+ void gainRealTime()
+ {
+-#if HAVE_SCHED_RESET_ON_FORK
+     const int minPriority = sched_get_priority_min(SCHED_RR);
+     sched_param sp;
+     sp.sched_priority = minPriority;
+-    sched_setscheduler(0, SCHED_RR | SCHED_RESET_ON_FORK, &sp);
+-#endif
++    if (pthread_setschedparam(pthread_self(), SCHED_RR, &sp))
++        return;
++
++    pthread_atfork(NULL, NULL, []() {
++        sched_param sp;
++        sp.sched_priority = 0;
++        pthread_setschedparam(pthread_self(), SCHED_OTHER, &sp);
++    });
+ }
+ }
+ 
diff --git a/x11-wm/kwinft/pkg-message b/x11-wm/kwinft/pkg-message
index 68e3a0e9b0dd..969f9444a619 100644
--- a/x11-wm/kwinft/pkg-message
+++ b/x11-wm/kwinft/pkg-message
@@ -36,6 +36,13 @@ Replace KWin in Plasma Desktop:
   $ pkg set -o x11-wm/plasma5-kwin:x11-wm/kwinft
   $ pkg upgrade -f kwinft
   $ pkg lock kwinft
+
+Improve Wayland responsiveness under high load:
+
+  $ sysrc kld_list+=mac_priority
+  $ service kld restart
+  $ pw groupmod realtime -m <user>
+  $ exit # log out to refresh group permissions
 EOM
 }
 ]



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202307150857.36F8vebD033864>