On Tue, Mar 11, 2025 at 08:25:25PM +0800, Yunsheng Lin wrote: > > struct page { > > unsigned long flags; > > unsigned long memdesc; > > It seems there may be memory behind the above 'memdesc' with different size > and layout for different subsystem? Yes. > I am not sure if I understand the case of the same page might be handle in > two subsystems concurrently or a page is allocated in one subsystem and > then passed to be handled in other subsystem, for examlpe: > page_pool owned page is mmap'ed into user space through tcp zero copy, > see tcp_zerocopy_vm_insert_batch(), it seems the same page is handled in > both networking/page_pool and vm subsystem? It's not that arbitrary. I mean, you could read all the documentation I've written about this concept, listen to the talks I've given. But sure, you're a special fucking snowflake and deserve your own unique explanation.