On Tue, 14 Nov 2023 16:23:29 +0800 Yunsheng Lin wrote: > I would expect net stack, page pool, driver still see the 'struct page', > only memory provider see the specific struct for itself, for the above, > devmem memory provider sees the 'struct page_pool_iov'. You can't lie to the driver that an _iov is a page either. The driver must explicitly "opt-in" to using the _iov variant, by calling the _iov set of APIs. Only drivers which can support header-data split can reasonably use the _iov API, for data pages.