-
Notifications
You must be signed in to change notification settings - Fork 506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hv: fix using cpuid does not clear the upper 32-bit registers. #8610
Conversation
Can one of the admins verify this patch? |
I verified it on nuttx,I defined a 64-bit variable to pass the cpuid parameter. The high 32 bits of the return value were cleared. |
start to run premerge test |
HI Please tell me how to check the error cause of CI. Is there any relevant documentation? |
I suspect there were some internal instability issues in the CI system. We'll check. The CI system itself is internal and we'll post meaning errors or warnings on GitHub if there is any requiring attention from the author. |
@476997779 ,no space left on CI server (sit server), please wait until we clean the space on CI server, sorry for the trouble brought by this. |
start to run premerge test |
@476997779, please modify "Tracked-On:8605" in commit message to "Tracked-On:#8605" to pass TRACKED_ON_TEST |
In HV, cpuid uses the lower 32 bits of rax\rbx\rcx\rdx registers to pass parameters, But the software does not clear the upper 32-bit registers, if the guest uses 64-bit variables to pass parameters to cpuid,guest will use rax\rbx\rcx\rdx, not eax\ebx\ecx\edx, the previous value of the high 32 registers will affect the guest. Tracked-On: projectacrn#8605 Reviewed-by: Junjie Mao <[email protected]> Signed-off-by: andi6 <[email protected]>
@lifeix please help approve this PR, thanks |
@lifeix @junjiemao1 please help approve this PR, thanks |
start to run premerge test |
In HV, cpuid uses the lower 32 bits of rax\rbx\rcx\rdx registers to pass parameters, But the software does not clear the upper 32-bit registers, if the guest uses 64-bit variables to pass parameters to cpuid,guest will use rax\rbx\rcx\rdx, not eax\ebx\ecx\edx, the previous value of the high 32 registers will affect the guest.
Tracked-On:8605
Reviewed-by: Junjie Mao [email protected]