Skip to content

[BUG] IPC timeout check mismatch between kernel and fw #8115

@RanderWang

Description

@RanderWang

Linux driver set ipc timeout duration to 500ms, but FW wait 5000ms in cpu_disable_core for SET_DX ipc message. This makes driver stop but fw is still waiting. And why we need 5000ms to disable core 1 ~ n ? Can we adopt 400 or 300 ms ?

void cpu_disable_core(int id) {
       .....
	uint64_t timeout = k_cycle_get_64() +
		k_ms_to_cyc_ceil64(CONFIG_SECONDARY_CORE_DISABLING_TIMEOUT); // 5000ms

	/* Waiting for secondary core to enter idle state */
	while (arch_cpu_active(id) && (k_cycle_get_64() < timeout))
		idelay(PLATFORM_DEFAULT_DELAY);

	if (arch_cpu_active(id)) {
		tr_err(&zephyr_tr, "core %d did not enter idle state", id);
		return;
	}
     .....
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    IPC timeoutIPC timeout observedMTLApplies to Meteor Lake platformP2Critical bugs or normal featuresbugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions