-
Notifications
You must be signed in to change notification settings - Fork 408
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
Exit陷入,触发INIT信号 (常量 3) #91
Comments
Hi, I do not think I encountered INIT signal while working on this project. I also cannot think of why INIT would be sent either. I would try to see which code is sending INIT (and why). If the system is configured to use x2APIC, it would be simply intercepting WRMSR to |
感谢前辈的回帖, 我在运行中发现 win7系统不会遇到此类情况,win10 才会这样,不晓得是什么原因 |
您好前辈,通过您的指点,我尝试在您的项目中定义了 :kIa32Icr= 0x40000071, 也就是您说的 Interrupt Command Register |
非常感谢前辈给我的回信:
关于您说MWAIT会导致 Exit Vt接收到 INIT信号。
我在代码中模拟了 MWAIT 运行,但是并没有触发Exit vt INIT信号的产生。
…------------------ 原始邮件 ------------------
发件人: "tandasat/HyperPlatform" ***@***.***>;
发送时间: 2023年2月12日(星期天) 下午5:32
***@***.***>;
***@***.******@***.***>;
主题: Re: [tandasat/HyperPlatform] Exit陷入,触发INIT信号 (常量 3) (Issue #91)
The INIT signal could be due to MWAIT was being processed, return with no-op could resolved.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
I have a theory about receiving INIT signal when hypervisor is running - I guess it is because the core was being unresponsive, one thing you can try is skip the INIT signal , see if you receive CLOCK_WATCHDOG_TIMEOUT |
您好前辈,感谢您的回信。
关于您说的 试跳过INIT信号,我的做法是 Exit Vt 陷入以后。陷入原因是INIT。
这个时候我不做任何处理 让他自己返回。这个时候电脑会卡死,电脑无法画面任何都无响应 (不是蓝屏)。
…------------------ 原始邮件 ------------------
发件人: "tandasat/HyperPlatform" ***@***.***>;
发送时间: 2023年2月13日(星期一) 下午3:25
***@***.***>;
***@***.******@***.***>;
主题: Re: [tandasat/HyperPlatform] Exit陷入,触发INIT信号 (常量 3) (Issue #91)
I have a theory about receiving INIT signal when hypervisor is running - I guess it is because the core was being unresponsive, one thing you can try is skip the INIT signal , see if you receive CLOCK_WATCHDOG_TIMEOUT
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
not even adjust the RIP.. |
不改变 rip。
在我的认知里,触发INIT 信号,陷入Exit Vt以后。
context已经不是可信的上下文了。
我曾经尝试过自己模拟触发INIT信号。 只有apic wirte +300 (300偏移量),成功过。
而且context,包括rip已经不是写 apic wirte +300 时的上下文了。
…------------------ 原始邮件 ------------------
发件人: "tandasat/HyperPlatform" ***@***.***>;
发送时间: 2023年2月13日(星期一) 下午4:01
***@***.***>;
***@***.******@***.***>;
主题: Re: [tandasat/HyperPlatform] Exit陷入,触发INIT信号 (常量 3) (Issue #91)
not even jump the RIP..
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
What is the current RIP? |
context 的rip吗?
context 的 rip 很随机,位置每次都不确定。
不过我见到过。
mwait
test r9,r9 ← rip 指向这里。 但是这个时候 当前rip 是不可信的。
…------------------ 原始邮件 ------------------
发件人: "tandasat/HyperPlatform" ***@***.***>;
发送时间: 2023年2月13日(星期一) 下午4:09
***@***.***>;
***@***.******@***.***>;
主题: Re: [tandasat/HyperPlatform] Exit陷入,触发INIT信号 (常量 3) (Issue #91)
What is the current RIP?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
The reason why idle thread get scheduled is because there's no other thread on the system could be scheduled on the core from scheduler point of view, it shouldn't be in a busy system, and if it persist for too long can cause some normal thread cannot be scheduled by some reason, and affect tick accumulation, System or HAL would think the core is being unresponsive, hence trigger CLOCK_WATCHDOG_TIMEOUT bugcheck. I guess if you keep the RIP unchanged, the system will still run for awhile, but eventually get the bugcheck, just because the system thinks the processor core isn't responsive. and System or HAL might tries to restart the system and/or processors where issue INIT#. (unsure if some firmware also do so) So I think the problem here is because the thread scheduler is not functioning properly on that core, and it appears INIT# randomly asserted. One interesting finding: you can try to disable gdt/ldt intercept and see if it works. |
你好,KelvinMsft |
我现在得到的信息是: |
您好前辈,我试图成功编译了您的这个工程,
HyperPlatform.sys 加载成功以后,有几率会遇到蓝屏。
查看了DUMP文件后,是 Exit陷入时,遇到了INIT信号。
按道理来说 计算机正常运行以后不会再遇到INIT这个信号了。
所以请教前辈是否遇到同样的情况,希望前辈可以指点一二、
The text was updated successfully, but these errors were encountered: