Hi, > > - With relatively many elements fitting into a single HOB, on most > > platforms, just one HOB is going to be used. While that may be good for > > performance, it is not good for code coverage (testing). The quirky > > indexing method will not be exercised by most platforms. > > TRUE so I propose that the first version of the code change only expects > the HOB.NumberOfCpus equals to the NumberOfCpus returned from MP > service, meaning the code logic only supports single instance of the HOB. > When a platform that contains >8000 cpu threads resulting in multiple HOBs > produced, the expectation will break and remind us that the CpuSmm driver > needs to update to handle multiple HOBs.
Given that this is already the second case where we hit the 64k size limit and I expect it will not be the last one: I think it makes sense to introduce a generic and reusable concept of chunked HOBs, so you can add helper functions to HobLib for splitting and reassembling, with a struct along the lines of: typedef struct { // offset and size of this particular chunk UINT32 ChunkOffset; UINT32 ChunkSize; // number of chunks and size of all chunks combined. UINT32 ChunkCount; UINT32 TotalSize; // chunk data UINT8 Data[0]; } EFI_HOB_CHUNK; take care, Gerd -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#99473): https://edk2.groups.io/g/devel/message/99473 Mute This Topic: https://groups.io/mt/96350760/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-