Re: [PATCH v6 3/3] luo: Update serialized data to use KHOSER_PTR
[email protected] Thu, 23 Jul 2026 15:33:21 +0000
| Newsgroups | org.infradead.lists.kexec,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
Hello, I dont have much opinion here. I am writing this as a gentle reminder to the open discussion below. ~Tarun Pratyush Yadav <[email protected]> writes: > Hi Pasha, > > On Mon, Jun 29 2026, Pasha Tatashin wrote: > >> On Sun, 28 Jun 2026 00:11:14 +0000, Tarun Sahu <[email protected]> wrote: >>> diff --git a/include/linux/kho/abi/luo.h b/include/linux/kho/abi/luo.h >>> index 288076de6d4a..9e78625cfdc1 100644 >>> --- a/include/linux/kho/abi/luo.h >>> +++ b/include/linux/kho/abi/luo.h >>> @@ -89,14 +90,14 @@ struct luo_ser { >>> /** >>> * struct luo_file_ser - Represents the serialized preserves files. >>> * @compatible: File handler compatible string. >>> - * @data: Private data >>> + * @serialized_data: The serialized KHO pointer for this file >> >> I am concerned about layring violation here. >> >> LUO is designed as a generic, opaque transport layer that promises to >> preserve 64 bits of raw data. How those 64 bits are interpreted is >> entirely up to individual clients. >> >> While some clients like memfd_luo will use those 64 bits as a physical >> address pointing to KHO-preserved structures, other clients may store a >> generic token, cookie, index, or non-pointer status. By >> changing u64 data to DECLARE_KHOSER_PTR(serialized_data, void *) in >> struct luo_file_ser, we force KHO pointer semantics and layout >> constraints on all generic LUO files. > > That makes sense theory, but in practice, no file handler is going to > need only 8 bytes for its metadata. It is always going to need more, and > to store more information, it needs to store a pointer to that > information with the 64 bits it gets. > > Do you have any examples of something else one might store here? > > At least looking at the current file handlers merged and in flight, > memfd, iommufd, vfio, pci, hugetlb, guest_memfd, all of them store a > pointer here. > > And if everyone is only storing pointers in this field, might as well > give them a bit of type safety. > >> >> Clients that need KHO pointer serialization must cast that opaque 64-bit >> value to/from a KHOSER_PTR within their own callbacks. >> >> Also, the field descriptions in struct luo_file_ser are no longer >> aligned due to the length of the new variable name, I believe it will >> cause warning when making docs. > > -- > Regards, > Pratyush Yadav