Skip to content

Commit f2439a7

Browse files
committed
feat(thp): disable transparent huge pages for DDE daemon services
1. Add dde-thp-disable script to disable THP at cgroup level before service startup 2. Integrate as ExecStartPre in dde-lock, dde-system-daemon, and dde-session-daemon services 3. Update Makefile and Debian packaging to install the script to /usr/libexec/ Log: Disable THP for DDE daemon processes to optimize memory behavior feat(thp): 禁用 DDE 守护进程的透明大页 1. 新增 dde-thp-disable 脚本,在服务启动前通过 cgroup 禁用 THP 2. 将脚本作为 ExecStartPre 集成到 dde-lock、dde-system-daemon 和 dde-session-daemon 服务中 3. 更新 Makefile 和 Debian 打包规则,将脚本安装到 /usr/libexec/ Log: 为 DDE 守护进程禁用透明大页以优化内存行为 PMS: TASK-390043
1 parent 2e39d84 commit f2439a7

6 files changed

Lines changed: 26 additions & 0 deletions

File tree

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ print_gopath: prepare
163163
GOPATH="${CURDIR}/${GOPATH_DIR}:${GOPATH}"
164164

165165
install: build install-dde-data install-icons
166+
mkdir -pv ${DESTDIR}${PREFIX}/libexec
167+
install -Dm755 misc/thp/dde-thp-disable ${DESTDIR}${PREFIX}/libexec/dde-thp-disable
168+
166169
mkdir -pv ${DESTDIR}${PREFIX}/lib/deepin-daemon
167170
cp -f out/bin/* ${DESTDIR}${PREFIX}/lib/deepin-daemon/
168171

debian/dde-daemon.install

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
debian/reconfigure-dde-daemon /etc/kernel/postinst.d/
2+
misc/thp/dde-thp-disable usr/libexec/

misc/systemd/services/system/dde-lock-service.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Type=dbus
77
User=lightdm
88
Group=lightdm
99
BusName=org.deepin.dde.LockService1
10+
ExecStartPre=-/usr/libexec/dde-thp-disable
1011
ExecStart=/usr/lib/deepin-daemon/dde-lockservice
1112
# 通过设置/var/lib/lightdm/目录的lightdm组权限,lockservice可以安全地以lightdm用户运行
1213
StandardOutput=journal

misc/systemd/services/system/dde-system-daemon.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Wants=nss-user-lookup.target fprintd.service
99

1010
[Service]
1111
User=root
12+
ExecStartPre=-/usr/libexec/dde-thp-disable
1213
ExecStart=/usr/lib/deepin-daemon/dde-system-daemon
1314
StandardOutput=null
1415
StandardError=journal

misc/systemd/services/user/org.dde.session.Daemon1.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ After=treeland-xwayland.service
1313
[Service]
1414
Type=dbus
1515
BusName=org.deepin.dde.Daemon1
16+
ExecStartPre=-/usr/libexec/dde-thp-disable
1617
ExecStart=/usr/lib/deepin-daemon/dde-session-daemon
1718
Slice=app.slice
1819
Restart=on-failure

misc/thp/dde-thp-disable

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd.
4+
#
5+
# SPDX-License-Identifier: GPL-3.0-or-later
6+
7+
CG=$(awk -F: '$1=="0"{print $3}' /proc/self/cgroup | head -n1)
8+
9+
[ -n "${CG:-}" ] || exit 0
10+
11+
FILE="/sys/fs/cgroup${CG}/memory.thp_mode"
12+
13+
if [ -e "$FILE" ]; then
14+
if ! echo disable > "$FILE" 2>/dev/null; then
15+
logger -t thp-disable "failed to write disable to $FILE"
16+
fi
17+
fi
18+
19+
exit 0

0 commit comments

Comments
 (0)