On Mon, Sep 30, 2019 at 10:18:43AM -0700, H. Peter Anvin wrote: > On 2019-09-30 08:01, Daniel Kiper wrote: > > > > OK. > > > >> field for the entire .kernel_info section, thus ensuring it is a > >> single self-contained blob. > > > > .rodata.kernel_info contains its total size immediately behind the > > "InfO" header. Do you suggest that we should add the size of > > .rodata.kernel_info into setup_header too? > > > > No, what I want is a chunked architecture for kernel_info. > > That is: > > /* Common chunk header */ > struct kernel_info_header { > uint32_t magic; > uint32_t len; > }; > > /* Top-level chunk, always first */ > #define KERNEL_INFO_MAGIC 0x45fdbe4f > > struct kernel_info { > struct kernel_info_header hdr; > uint32_t total_size; /* Total size of all chunks */ > > /* Various fixed-sized data objects, OR offsets to other chunks */ > }; OK, so, this is more or less what I had in my v3 patch before sending this email. So, it looks that I am on good track. Great! Though I am not sure that we should have magic for chunked objects. If yes could you explain why? I would just leave len for chunked objects. > Also "InfO" is a pretty hideous magic. In general, all-ASCII magics have much > higher risk of collision than *RANDOM* binary numbers. However, for a chunked > architecture they do have the advantage that they can be used also as a human > name or file name for the chunk, e.,g. in sysfs, so maybe something like > "LnuX" or even "LToP" for the top-level chunk might make sense. > > How does that sound? Well, your proposals are more cryptic, especially the second one, than mine but I tend to agree that more *RANDOM* magics are better. So, I would choose "LToP" if you decipher it for me. Linux Top? Daniel