On Tue, Jul 14, 2026 at 07:47:43AM -0700, Dave Hansen wrote:
On 7/14/26 07:03, Kevin Brodsky wrote:
quoted
+static inline bool mm_is_kernel(const struct mm_struct *mm)
+{
+ return mm && mm_flags_test(MMF_KERNEL, mm);
+}
Could we give this some nice comments explaining what a kernel mm is,
please? Part of the problem with the init_mm checks is that they're
magic and it's not always clear what's special about init_mm.
Maybe start with this list?
1. There's only one of them.
2. All kernel threads share it. tsk->mm is the same for all kernel
threads.
3. It holds the reference copy of the kernel page tables
4. Userspace can't be entered when it is the current mm
5. It has different TLB flushing rules than userspace mms
I _think_ those are universal across all architectures.
Well point 1 isn't true of efimm or tboot_mm so we possibly need a better
name :)
"Special" is overloaded too much already. I quite like "eternal" so:
static inline bool mm_is_eternal(const struct mm_struct *mm)
{
return mm && mm_flags_test(MMF_ETERNAL, mm);
}
:)
Cheers, Lorenzo