Hello Tom, On Tue, Jun 22, 2021 at 06:06:24PM -0500, Tom Lendacky wrote: > > + > > +/** > > + Figures out if we are running inside KVM HVM and > > + KVM HVM supports SEV Live Migration feature. > > + > > + @retval TRUE KVM was detected and Live Migration supported > > + @retval FALSE KVM was not detected or Live Migration not supported > > + > > +**/ > > +BOOLEAN > > +KvmDetectSevLiveMigrationFeature( > > + VOID > > + ) > > +{ > > + UINT8 Signature[13]; > > + UINT32 mKvmLeaf = 0; > > + UINT32 RegEax, RegEbx, RegEcx, RegEdx; > > + > > + Signature[12] = '\0'; > > + for (mKvmLeaf = 0x40000000; mKvmLeaf < 0x40010000; mKvmLeaf += 0x100) { > > What's the reason for the loop? I would think that just checking > 0x40000000 would be enough, so a comment seems to be warranted. >
0x40000000 leaf is the hypervisor CPUID information leaf, so probably just checking 0x40000000 should be enough. But i see that other hypervisor detection functions like XenDetect() do a loop test on the hypervisor existence function until the signature match, is there a specific reason for that ? Is this for some kind of support for another/multiple hypervisors ? > > + AsmCpuid (mKvmLeaf, > > + NULL, > > + (UINT32 *) &Signature[0], > > + (UINT32 *) &Signature[4], > > + (UINT32 *) &Signature[8]); > > + > > + if (!AsciiStrCmp ((CHAR8 *) Signature, "KVMKVMKVM\0\0\0")) { > > + DEBUG (( > > + DEBUG_ERROR, > > DEBUG_INFO, it doesn't seem like an error. > Ok. > > + "%a: KVM Detected, signature = %s\n", > > + __FUNCTION__, > > + Signature > > + )); > > +> + RegEax = 0x40000001; > > Should this be mKvmLeaf + 1? It is confusing that you may check 0x40000100 > and then not do 0x40000101. > Yes, it should be mKvmLeaf + 1, assuming the loop above is being used. > > + RegEcx = 0; > > + AsmCpuid (0x40000001, &RegEax, &RegEbx, &RegEcx, &RegEdx); > > + if (RegEax & (1 << KVM_FEATURE_MIGRATION_CONTROL)) { > Thanks, Ashish -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#77067): https://edk2.groups.io/g/devel/message/77067 Mute This Topic: https://groups.io/mt/83688901/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-