Re: [PATCH v7 03/14] mm: Introduce memfile_notifier

From: David Hildenbrand
Date: Fri Aug 05 2022 - 09:23:11 EST


On 06.07.22 10:20, Chao Peng wrote:
> This patch introduces memfile_notifier facility so existing memory file
> subsystems (e.g. tmpfs/hugetlbfs) can provide memory pages to allow a
> third kernel component to make use of memory bookmarked in the memory
> file and gets notified when the pages in the memory file become
> invalidated.

Stupid question, but why is this called "memfile_notifier" and not
"memfd_notifier". We're only dealing with memfd's after all ... which
are anonymous files essentially. Or what am I missing? Are there any
other plans for fs than plain memfd support that I am not aware of?

>
> It will be used for KVM to use a file descriptor as the guest memory
> backing store and KVM will use this memfile_notifier interface to
> interact with memory file subsystems. In the future there might be other
> consumers (e.g. VFIO with encrypted device memory).
>
> It consists below components:
> - memfile_backing_store: Each supported memory file subsystem can be
> implemented as a memory backing store which bookmarks memory and
> provides callbacks for other kernel systems (memfile_notifier
> consumers) to interact with.
> - memfile_notifier: memfile_notifier consumers defines callbacks and
> associate them to a file using memfile_register_notifier().
> - memfile_node: A memfile_node is associated with the file (inode) from
> the backing store and includes feature flags and a list of registered
> memfile_notifier for notifying.
>
> In KVM usages, userspace is in charge of guest memory lifecycle: it first
> allocates pages in memory backing store and then passes the fd to KVM and
> lets KVM register memory slot to memory backing store via
> memfile_register_notifier.

Can we add documentation/description in any form how the different
functions exposed in linux/memfile_notifier.h are supposed to be used?

Staring at memfile_node_set_flags() and memfile_notifier_invalidate()
it's not immediately clear to me who's supposed to call that and under
which conditions.

--
Thanks,

David / dhildenb