Alok Kataria wrote:
No, we're not getting anywhere. This is an outright broken idea. The space is too small to be able to chop up in this way, and the number of vendors too large to be able to do it without having a central oversight.
The only way this can work is by having explicit positive identification of each group of leaves with a signature. If there's a recognizable signature, then you can inspect the rest of the group; if not, then you can't. That way, you can avoid any leaf usage which doesn't conform to this model, and you can also simultaneously support multiple hypervisor ABIs. It also accommodates existing hypervisor use of this leaf space, even if they currently use a fixed location within it.
A concrete counter-proposal:
The space 0x40000000-0x400000ff is reserved for hypervisor usage.
This region is divided into 16 16-leaf blocks. Each block has the structure:
0x400000x0:
eax: max used leaf within the leaf block (max 0x400000xf)