1
- From 000264f8823f76fb6cf91dc40ace84a29a0fa089 Mon Sep 17 00:00:00 2001
1
+ From 83ed02c1c583b5b831e7827453845fe4fd7b4c80 Mon Sep 17 00:00:00 2001
2
2
From: Fuad Tabba <
[email protected] >
3
- Date: Tue, 15 Jul 2025 10:33:30 +0100
4
- Subject: [PATCH 01/46] KVM: Rename CONFIG_KVM_PRIVATE_MEM to CONFIG_KVM_GMEM
3
+ Date: Tue, 29 Jul 2025 15:54:32 -0700
4
+ Subject: [PATCH 01/49] KVM: Rename CONFIG_KVM_PRIVATE_MEM to
5
+ CONFIG_KVM_GUEST_MEMFD
5
6
6
- Rename the Kconfig option CONFIG_KVM_PRIVATE_MEM to CONFIG_KVM_GMEM. The
7
- original name implied that the feature only supported "private" memory.
8
- However, CONFIG_KVM_PRIVATE_MEM enables guest_memfd in general, which is
9
- not exclusively for private memory. Subsequent patches in this series
10
- will add guest_memfd support for non-CoCo VMs, whose memory is not
11
- private.
7
+ Rename the Kconfig option CONFIG_KVM_PRIVATE_MEM to
8
+ CONFIG_KVM_GUEST_MEMFD. The original name implied that the feature only
9
+ supported "private" memory. However, CONFIG_KVM_PRIVATE_MEM enables
10
+ guest_memfd in general, which is not exclusively for private memory.
11
+ Subsequent patches in this series will add guest_memfd support for
12
+ non-CoCo VMs, whose memory is not private.
12
13
13
- Renaming the Kconfig option to CONFIG_KVM_GMEM more accurately reflects
14
- its broader scope as the main Kconfig option for all guest_memfd-backed
15
- memory. This provides clearer semantics for the option and avoids
16
- confusion as new features are introduced.
14
+ Renaming the Kconfig option to CONFIG_KVM_GUEST_MEMFD more accurately
15
+ reflects its broader scope as the main Kconfig option for all
16
+ guest_memfd-backed memory. This provides clearer semantics for the
17
+ option and avoids confusion as new features are introduced.
17
18
18
19
Reviewed-by: Ira Weiny <
[email protected] >
19
20
Reviewed-by: Gavin Shan <
[email protected] >
20
21
Reviewed-by: Shivank Garg <
[email protected] >
21
22
Reviewed-by: Vlastimil Babka <
[email protected] >
23
+ Reviewed-by: Xiaoyao Li <
[email protected] >
22
24
Co-developed-by: David Hildenbrand <
[email protected] >
23
25
Signed-off-by: David Hildenbrand <
[email protected] >
24
26
Signed-off-by: Fuad Tabba <
[email protected] >
27
+ Signed-off-by: Sean Christopherson <
[email protected] >
25
28
---
26
29
arch/x86/include/asm/kvm_host.h | 2 +-
27
30
include/linux/kvm_host.h | 14 +++++++-------
32
35
6 files changed, 17 insertions(+), 17 deletions(-)
33
36
34
37
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
35
- index f7af967aa16f..acb25f935d84 100644
38
+ index f19a76d3ca0e..7b0f2b3e492d 100644
36
39
--- a/arch/x86/include/asm/kvm_host.h
37
40
+++ b/arch/x86/include/asm/kvm_host.h
38
- @@ -2275 ,7 +2275 ,7 @@ void kvm_configure_mmu(bool enable_tdp, int tdp_forced_root_level,
41
+ @@ -2276 ,7 +2276 ,7 @@ void kvm_configure_mmu(bool enable_tdp, int tdp_forced_root_level,
39
42
int tdp_max_root_level, int tdp_huge_page_level);
40
43
41
44
42
45
- #ifdef CONFIG_KVM_PRIVATE_MEM
43
- + #ifdef CONFIG_KVM_GMEM
46
+ + #ifdef CONFIG_KVM_GUEST_MEMFD
44
47
#define kvm_arch_has_private_mem(kvm) ((kvm)->arch.has_private_mem)
45
48
#else
46
49
#define kvm_arch_has_private_mem(kvm) false
47
50
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
48
- index 3bde4fb5c6aa..755b09dcafce 100644
51
+ index 15656b7fba6c..8cdc0b3cc1b1 100644
49
52
--- a/include/linux/kvm_host.h
50
53
+++ b/include/linux/kvm_host.h
51
- @@ -601 ,7 +601 ,7 @@ struct kvm_memory_slot {
54
+ @@ -602 ,7 +602 ,7 @@ struct kvm_memory_slot {
52
55
short id;
53
56
u16 as_id;
54
57
55
58
- #ifdef CONFIG_KVM_PRIVATE_MEM
56
- + #ifdef CONFIG_KVM_GMEM
59
+ + #ifdef CONFIG_KVM_GUEST_MEMFD
57
60
struct {
58
61
/*
59
62
* Writes protected by kvm->slots_lock. Acquiring a
60
- @@ -719 ,10 +719 ,10 @@ static inline int kvm_arch_vcpu_memslots_id(struct kvm_vcpu *vcpu)
63
+ @@ -720 ,10 +720 ,10 @@ static inline int kvm_arch_vcpu_memslots_id(struct kvm_vcpu *vcpu)
61
64
#endif
62
65
63
66
/*
@@ -67,107 +70,107 @@ index 3bde4fb5c6aa..755b09dcafce 100644
67
70
+ * enabled.
68
71
*/
69
72
- #if !defined(kvm_arch_has_private_mem) && !IS_ENABLED(CONFIG_KVM_PRIVATE_MEM)
70
- + #if !defined(kvm_arch_has_private_mem) && !IS_ENABLED(CONFIG_KVM_GMEM )
73
+ + #if !defined(kvm_arch_has_private_mem) && !IS_ENABLED(CONFIG_KVM_GUEST_MEMFD )
71
74
static inline bool kvm_arch_has_private_mem(struct kvm *kvm)
72
75
{
73
76
return false;
74
- @@ -2527 ,7 +2527 ,7 @@ bool kvm_arch_post_set_memory_attributes(struct kvm *kvm,
77
+ @@ -2505 ,7 +2505 ,7 @@ bool kvm_arch_post_set_memory_attributes(struct kvm *kvm,
75
78
76
79
static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn)
77
80
{
78
81
- return IS_ENABLED(CONFIG_KVM_PRIVATE_MEM) &&
79
- + return IS_ENABLED(CONFIG_KVM_GMEM ) &&
82
+ + return IS_ENABLED(CONFIG_KVM_GUEST_MEMFD ) &&
80
83
kvm_get_memory_attributes(kvm, gfn) & KVM_MEMORY_ATTRIBUTE_PRIVATE;
81
84
}
82
85
#else
83
- @@ -2537 ,7 +2537 ,7 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn)
86
+ @@ -2515 ,7 +2515 ,7 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn)
84
87
}
85
88
#endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */
86
89
87
90
- #ifdef CONFIG_KVM_PRIVATE_MEM
88
- + #ifdef CONFIG_KVM_GMEM
91
+ + #ifdef CONFIG_KVM_GUEST_MEMFD
89
92
int kvm_gmem_get_pfn(struct kvm *kvm, struct kvm_memory_slot *slot,
90
93
gfn_t gfn, kvm_pfn_t *pfn, struct page **page,
91
94
int *max_order);
92
- @@ -2550 ,7 +2550 ,7 @@ static inline int kvm_gmem_get_pfn(struct kvm *kvm,
95
+ @@ -2528 ,7 +2528 ,7 @@ static inline int kvm_gmem_get_pfn(struct kvm *kvm,
93
96
KVM_BUG_ON(1, kvm);
94
97
return -EIO;
95
98
}
96
99
- #endif /* CONFIG_KVM_PRIVATE_MEM */
97
- + #endif /* CONFIG_KVM_GMEM */
100
+ + #endif /* CONFIG_KVM_GUEST_MEMFD */
98
101
99
102
#ifdef CONFIG_HAVE_KVM_ARCH_GMEM_PREPARE
100
103
int kvm_arch_gmem_prepare(struct kvm *kvm, gfn_t gfn, kvm_pfn_t pfn, int max_order);
101
104
diff --git a/virt/kvm/Kconfig b/virt/kvm/Kconfig
102
- index 727b542074e7..49df4e32bff7 100644
105
+ index 727b542074e7..e4b400feff94 100644
103
106
--- a/virt/kvm/Kconfig
104
107
+++ b/virt/kvm/Kconfig
105
108
@@ -112,19 +112,19 @@ config KVM_GENERIC_MEMORY_ATTRIBUTES
106
109
depends on KVM_GENERIC_MMU_NOTIFIER
107
110
bool
108
111
109
112
- config KVM_PRIVATE_MEM
110
- + config KVM_GMEM
113
+ + config KVM_GUEST_MEMFD
111
114
select XARRAY_MULTI
112
115
bool
113
116
114
117
config KVM_GENERIC_PRIVATE_MEM
115
118
select KVM_GENERIC_MEMORY_ATTRIBUTES
116
119
- select KVM_PRIVATE_MEM
117
- + select KVM_GMEM
120
+ + select KVM_GUEST_MEMFD
118
121
bool
119
122
120
123
config HAVE_KVM_ARCH_GMEM_PREPARE
121
124
bool
122
125
- depends on KVM_PRIVATE_MEM
123
- + depends on KVM_GMEM
126
+ + depends on KVM_GUEST_MEMFD
124
127
125
128
config HAVE_KVM_ARCH_GMEM_INVALIDATE
126
129
bool
127
130
- depends on KVM_PRIVATE_MEM
128
- + depends on KVM_GMEM
131
+ + depends on KVM_GUEST_MEMFD
129
132
diff --git a/virt/kvm/Makefile.kvm b/virt/kvm/Makefile.kvm
130
- index 724c89af78af..8d00918d4c8b 100644
133
+ index 724c89af78af..d047d4cf58c9 100644
131
134
--- a/virt/kvm/Makefile.kvm
132
135
+++ b/virt/kvm/Makefile.kvm
133
136
@@ -12,4 +12,4 @@ kvm-$(CONFIG_KVM_ASYNC_PF) += $(KVM)/async_pf.o
134
137
kvm-$(CONFIG_HAVE_KVM_IRQ_ROUTING) += $(KVM)/irqchip.o
135
138
kvm-$(CONFIG_HAVE_KVM_DIRTY_RING) += $(KVM)/dirty_ring.o
136
139
kvm-$(CONFIG_HAVE_KVM_PFNCACHE) += $(KVM)/pfncache.o
137
140
- kvm-$(CONFIG_KVM_PRIVATE_MEM) += $(KVM)/guest_memfd.o
138
- + kvm-$(CONFIG_KVM_GMEM ) += $(KVM)/guest_memfd.o
141
+ + kvm-$(CONFIG_KVM_GUEST_MEMFD ) += $(KVM)/guest_memfd.o
139
142
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
140
- index 222f0e894a0c..d5f0ec2d321f 100644
143
+ index 6c07dd423458..25a94eed75fd 100644
141
144
--- a/virt/kvm/kvm_main.c
142
145
+++ b/virt/kvm/kvm_main.c
143
- @@ -4913 ,7 +4913 ,7 @@ static int kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg)
146
+ @@ -4915 ,7 +4915 ,7 @@ static int kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg)
144
147
case KVM_CAP_MEMORY_ATTRIBUTES:
145
148
return kvm_supported_mem_attributes(kvm);
146
149
#endif
147
150
- #ifdef CONFIG_KVM_PRIVATE_MEM
148
- + #ifdef CONFIG_KVM_GMEM
151
+ + #ifdef CONFIG_KVM_GUEST_MEMFD
149
152
case KVM_CAP_GUEST_MEMFD:
150
153
return !kvm || kvm_arch_has_private_mem(kvm);
151
154
#endif
152
- @@ -5347 ,7 +5347 ,7 @@ static long kvm_vm_ioctl(struct file *filp,
155
+ @@ -5352 ,7 +5352 ,7 @@ static long kvm_vm_ioctl(struct file *filp,
153
156
case KVM_GET_STATS_FD:
154
157
r = kvm_vm_ioctl_get_stats_fd(kvm);
155
158
break;
156
159
- #ifdef CONFIG_KVM_PRIVATE_MEM
157
- + #ifdef CONFIG_KVM_GMEM
160
+ + #ifdef CONFIG_KVM_GUEST_MEMFD
158
161
case KVM_CREATE_GUEST_MEMFD: {
159
162
struct kvm_create_guest_memfd guest_memfd;
160
163
161
164
diff --git a/virt/kvm/kvm_mm.h b/virt/kvm/kvm_mm.h
162
- index acef3f5c582a..ec311c0d6718 100644
165
+ index acef3f5c582a..31defb08ccba 100644
163
166
--- a/virt/kvm/kvm_mm.h
164
167
+++ b/virt/kvm/kvm_mm.h
165
168
@@ -67,7 +67,7 @@ static inline void gfn_to_pfn_cache_invalidate_start(struct kvm *kvm,
166
169
}
167
170
#endif /* HAVE_KVM_PFNCACHE */
168
171
169
172
- #ifdef CONFIG_KVM_PRIVATE_MEM
170
- + #ifdef CONFIG_KVM_GMEM
173
+ + #ifdef CONFIG_KVM_GUEST_MEMFD
171
174
void kvm_gmem_init(struct module *module);
172
175
int kvm_gmem_create(struct kvm *kvm, struct kvm_create_guest_memfd *args);
173
176
int kvm_gmem_bind(struct kvm *kvm, struct kvm_memory_slot *slot,
@@ -176,7 +179,7 @@ index acef3f5c582a..ec311c0d6718 100644
176
179
WARN_ON_ONCE(1);
177
180
}
178
181
- #endif /* CONFIG_KVM_PRIVATE_MEM */
179
- + #endif /* CONFIG_KVM_GMEM */
182
+ + #endif /* CONFIG_KVM_GUEST_MEMFD */
180
183
181
184
#endif /* __KVM_MM_H__ */
182
185
- -
0 commit comments