Skip to content

Commit 42794de

Browse files
authored
Merge branch 'next' into feat/image-stream-kernel
2 parents b5f1ffb + 36ba085 commit 42794de

3 files changed

Lines changed: 60 additions & 0 deletions

File tree

‎os/mkosi/components/kernel/kernel.config‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,34 @@ CONFIG_SWIOTLB_DYNAMIC=y
8080
CONFIG_TRANSPARENT_HUGEPAGE=y
8181
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
8282

83+
# Let khugepaged collapse read-only file mappings -- in practice program and
84+
# library text -- into huge pages, for regions marked MADV_HUGEPAGE (or every
85+
# eligible region with THP "always"). Otherwise large-code workloads (torch's
86+
# shared libraries, say) run their text from 4 KiB pages and pay the
87+
# two-dimensional (guest + EPT) page walk on every iTLB miss.
88+
#
89+
# Kept in step with meta-dstack's dstack.cfg.
90+
CONFIG_READ_ONLY_THP_FOR_FS=y
91+
92+
# Multi-Gen LRU, built in but off by default: a workload under memory pressure
93+
# turns it on at runtime with "echo y > /sys/kernel/mm/lru_gen/enabled".
94+
#
95+
# Kept in step with meta-dstack's dstack.cfg.
96+
CONFIG_LRU_GEN=y
97+
98+
# BBR congestion control, built in so a container can select it through its own
99+
# network namespace (sysctl net.ipv4.tcp_congestion_control=bbr) without a
100+
# module load it has no privilege for. The default stays cubic.
101+
#
102+
# Kept in step with meta-dstack's dstack.cfg.
103+
CONFIG_TCP_CONG_BBR=y
104+
105+
# Initialise struct pages for most of memory in parallel kthreads after SMP
106+
# bring-up instead of on the boot CPU. A 512 GiB guest has 128M of them.
107+
#
108+
# Kept in step with meta-dstack's dstack.cfg.
109+
CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
110+
83111
CONFIG_BLK_DEV_NVME=y
84112
CONFIG_NVME_CORE=y
85113
CONFIG_NET_VENDOR_GOOGLE=y

‎os/mkosi/parity.json‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@
118118
"CONFIG_SWIOTLB_DYNAMIC=y",
119119
"CONFIG_TRANSPARENT_HUGEPAGE=y",
120120
"CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y",
121+
"CONFIG_READ_ONLY_THP_FOR_FS=y",
122+
"CONFIG_LRU_GEN=y",
123+
"CONFIG_TCP_CONG_BBR=y",
124+
"CONFIG_DEFERRED_STRUCT_PAGE_INIT=y",
121125
"CONFIG_INTEL_TDX_GUEST=y",
122126
"CONFIG_TDX_GUEST_DRIVER=y",
123127
"CONFIG_AMD_MEM_ENCRYPT=y",

‎os/yocto/layers/meta-dstack/recipes-kernel/linux/files/dstack.cfg‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,34 @@ CONFIG_SWIOTLB_DYNAMIC=y
4646
CONFIG_TRANSPARENT_HUGEPAGE=y
4747
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
4848

49+
# Let khugepaged collapse read-only file mappings -- in practice program and
50+
# library text -- into huge pages, for regions marked MADV_HUGEPAGE (or every
51+
# eligible region with THP "always"). Otherwise large-code workloads (torch's
52+
# shared libraries, say) run their text from 4 KiB pages and pay the
53+
# two-dimensional (guest + EPT) page walk on every iTLB miss.
54+
#
55+
# Kept in step with os/mkosi/components/kernel/kernel.config.
56+
CONFIG_READ_ONLY_THP_FOR_FS=y
57+
58+
# Multi-Gen LRU, built in but off by default: a workload under memory pressure
59+
# turns it on at runtime with "echo y > /sys/kernel/mm/lru_gen/enabled".
60+
#
61+
# Kept in step with os/mkosi/components/kernel/kernel.config.
62+
CONFIG_LRU_GEN=y
63+
64+
# BBR congestion control, built in so a container can select it through its own
65+
# network namespace (sysctl net.ipv4.tcp_congestion_control=bbr) without a
66+
# module load it has no privilege for. The default stays cubic.
67+
#
68+
# Kept in step with os/mkosi/components/kernel/kernel.config.
69+
CONFIG_TCP_CONG_BBR=y
70+
71+
# Initialise struct pages for most of memory in parallel kthreads after SMP
72+
# bring-up instead of on the boot CPU. A 512 GiB guest has 128M of them.
73+
#
74+
# Kept in step with os/mkosi/components/kernel/kernel.config.
75+
CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
76+
4977
# Network NIC drivers. GCP C3/modern instances use gVNIC (the Google gve
5078
# driver); older/virtio instances use virtio-net. Without gve, a C3 CVM gets
5179
# no NIC -> no DHCP -> no network. Build both in.

0 commit comments

Comments
 (0)