-
Notifications
You must be signed in to change notification settings - Fork 134
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
fast-reboot failing on P8 platforms #185
Comments
I found out that the problem is related to using the Linux kernel 4.17 and higher, The problem affected all host's systems with the Linux Kernel 4.17 and newer. I have checked the latest op-build (27 Sep) with old Linux Kernel 4.16.9 - everything works fine. |
@pridhiviraj Which system did you see this on? Fast reboot is working for me on palmetto with 4.19-rc7 with skiboot 6.1:
|
@shenki @pridhiviraj left IBM recently. So if its working for you, then probably we can close this one. -Vasant |
Thanks for the reminder. Do we have any idea which machine he would have been using? I spoke with @artemsen at the OpenPower summit, and they were seeing this on their machines. I was hoping we could reproduce on a machine I have access to, so we could debug. I did a build of 4.16.13-openpower1 and fast reboot worked fine for me on Palmetto. I am booting to the petitboot prompt and doing a reboot from there. |
Sorry. I have no idea which system he was using. May be we should try on habenaro once? -Vasant |
If you have a patch or any idea, I can check the solution on our VESNIN P8 server. |
I was looking at the powerpc/powernv kernel changes between 4.16 and 4.17, and this one stood out: https://git.kernel.org/torvalds/c/f2748bdfe157343eb8cf910a1d89ccf2fd20100b If you are able to build a 4.17 kernel with this patch reverted, and try to see if fast reboot works again. |
Yes, you are right. |
Thanks for testing. What version of skiboot are you using? Can you also test master of skiboot to see if it has the same behaviour? |
I checked the latest op-build with master skiboot and kernel patch with revert, fast reboot is ok. Version info: |
I haven't done much direct controls hacking on P8, but the XSCOM SRESET should interrupt other CPUs regardless of what they are doing if interrupts are hard disabled etc. I'm not sure what is going wrong. It would be interesting to see the PR_DEBUG messages. You could increase the timeout to infinite so the system can be debugged more easily, then it would be interesting to know where secondaries are stuck, can you use pdbg to find out? |
@npiggin could you describe in more detail what I have to do? |
I haven't used pdbg on a POWER8 for a long time, Rashmica has been working on it, I can ask her on Monday. You want an upstream pdbg cross compiled for the BMC (I found build instructions in pdbg source tree are quite easy). Then when you reboot and it hangs (replace the timeout with infinite loop so it hangs rather than IPLs), you can use pdbg to stop all threads, then get their instruction address. Something like pdbg -a stop ; pdbg -a getnia pdbg -pX -cY -tZ regs will dump a more detailed set of regs and stack of a particular CPU to dig deeper into it if needed. |
You may just need some extra targeting parameters on pdbg to make it work with the P8, I will have to check. |
If you a running a recent OpenBMC that uses the ColdFire FSI driver, and your pdbg is built from master, it will detect he backend on it's own, so you won't need any extra commands. |
All threads execute the function |
The odd thread isn't in opal_pci_set_pbcq_tunnel_bar(). The NIA has a leading 0xc in the address, which suggests that it's still inside the kernel. The register dump confirms that, since the dumped MSR says that Instruction and Data relocation are enabled:
|
Yes, you are right.
But I still don't know what to do with this information. For me it's looking like an eternal cycle at c00000000002acf0. |
So spinning there is intentional. The question here is why this thread doesn't get pulled back into OPAL by the thread that is doing the reset. It looks like @npiggin sent some patches for some bugs around the NMI IPI in the 4.18 cycle so maybe that's what fixed it. Nick, what do you think? |
The NMI IPI stuff in the kernel has had some issues, yes. I actually don't know if I have fixed the last of them in upstream kernel even. This presumably is what caused the bug to show up, I don't know off the top of my head what the problem is or if we have a fix upstream, I'll have to get back to this code soon. However I'm struggling to see why nmi_stop_this_cpu is not being fast rebooted. It does spin with MSR[EE]=0 which is the only thing that should be "unusual" about it from a kernel point of view. Direct controls sreset should not care about that. The whole point is being able to recover a CPU no matter how stuck the OS has become. oohal do you have access to a system in locked up state? We might have to debug direct controls code a bit more. |
There's been some reports of some issues with SRESET on POWER8 while the host is under load. This is an attempt to test for any such problem by using the 'stress' utility to produce some workload on the host and then do fast reboot. This currently (as of skiboot v6.2-176-g261ca8e779e5) fails on POWER8 pretty spectacularly, which seems to be the same thing that was reported by YADRO in open-power/skiboot#185 Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
I should resurrect my instruction ramming patch that's the adaptation of Alistair's old one and then morphed to follow what pdbg does |
@stewart-ibm, it appears like this issue got automatically closed by your test commit that haven't actually resolve this issue. |
Argh, github being too careful. It should have referenced this commit as it does actually implement a work-around:
I'll pull out my instruction ramming patches and post them to the list too, and maybe someone can find where things are going wrong, but I've managed to still have them fail. |
skiboot is in latest master.
The text was updated successfully, but these errors were encountered: