On 7/14/26 07:03, Kevin Brodsky wrote:
> +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.