diff options
author | Raul E Rangel <rrangel@chromium.org> | 2021-08-17 17:31:17 -0600 |
---|---|---|
committer | Raul Rangel <rrangel@chromium.org> | 2021-08-18 15:08:59 +0000 |
commit | 5f80e7c764b9a1cb46beeaa490a4f60be04abcd4 (patch) | |
tree | ee399101f8051491d5c5644dcf424ba664358c74 /payloads/linuxcheck | |
parent | 35a4bfa9ce8b7f3df6aded9af6bb3e8a287f80c1 (diff) |
soc/amd/cezanne: Disable Co-op multitasking
There are gremlins in the system. thread_coop_enable has an assert. This
is currently problematic for two reasons.
assert(current->can_yield <= 0);
When doing smm_do_relocate we are entering a deadlock. The root cause
hasn't been quite found yet, but it's related to co-op multi-threading.
For some reason the assert in thread_coop_enable is firing when
releasing the console_lock spin lock. I'm assuming cpu_info hasn't been
initialized yet. The assert tries to perform a printk, but since the
console_lock is still held we end up in a dead lock. This dead lock will
generally not happen after a warm reset. Again I'm assuming because the
cpu_info struct has some valid values at this point.
For now disable multi-tasking until we fix the cpu_info initialization.
BUG=b:194391185
TEST=Boot guybrush to OS
Co-developed-by: nikolai.vyssotski@amd.corp-partner.google.com
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: Ia3143f538a31b5aaaea104aa1d8bcf44e6dcb528
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57005
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Nikolai Vyssotski <nikolai.vyssotski@amd.corp-partner.google.com>
Reviewed-by: Jason Glenesk <jason.glenesk@gmail.com>
Reviewed-by: Rob Barnes <robbarnes@google.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'payloads/linuxcheck')
0 files changed, 0 insertions, 0 deletions