Commit 57aa3917 authored by Mario Limonciello's avatar Mario Limonciello Committed by Lizhi Hou
Browse files

accel/amdxdna: Reduce log noise during process termination



During process termination, several error messages are logged that are
not actual errors but expected conditions when a process is killed or
interrupted. This creates unnecessary noise in the kernel log.

The specific scenarios are:

1. HMM invalidation returns -ERESTARTSYS when the wait is interrupted by
   a signal during process cleanup. This is expected when a process is
   being terminated and should not be logged as an error.

2. Context destruction returns -ENODEV when the firmware or device has
   already stopped, which commonly occurs during cleanup if the device
   was already torn down. This is also an expected condition during
   orderly shutdown.

Downgrade these expected error conditions from error level to debug level
to reduce log noise while still keeping genuine errors visible.

Fixes: 97f27573 ("accel/amdxdna: Fix potential NULL pointer dereference in context cleanup")
Reviewed-by: default avatarLizhi Hou <lizhi.hou@amd.com>
Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarLizhi Hou <lizhi.hou@amd.com>
Link: https://patch.msgid.link/20260210164521.1094274-3-mario.limonciello@amd.com
parent 8363c028
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -497,7 +497,7 @@ static void aie2_release_resource(struct amdxdna_hwctx *hwctx)

	if (AIE2_FEATURE_ON(xdna->dev_handle, AIE2_TEMPORAL_ONLY)) {
		ret = aie2_destroy_context(xdna->dev_handle, hwctx);
		if (ret)
		if (ret && ret != -ENODEV)
			XDNA_ERR(xdna, "Destroy temporal only context failed, ret %d", ret);
	} else {
		ret = xrs_release_resource(xdna->xrs_hdl, (uintptr_t)hwctx);
@@ -1070,6 +1070,8 @@ void aie2_hmm_invalidate(struct amdxdna_gem_obj *abo,

	ret = dma_resv_wait_timeout(gobj->resv, DMA_RESV_USAGE_BOOKKEEP,
				    true, MAX_SCHEDULE_TIMEOUT);
	if (!ret || ret == -ERESTARTSYS)
	if (!ret)
		XDNA_ERR(xdna, "Failed to wait for bo, ret %ld", ret);
	else if (ret == -ERESTARTSYS)
		XDNA_DBG(xdna, "Wait for bo interrupted by signal");
}
+3 −1
Original line number Diff line number Diff line
@@ -216,8 +216,10 @@ static int aie2_destroy_context_req(struct amdxdna_dev_hdl *ndev, u32 id)

	req.context_id = id;
	ret = aie2_send_mgmt_msg_wait(ndev, &msg);
	if (ret)
	if (ret && ret != -ENODEV)
		XDNA_WARN(xdna, "Destroy context failed, ret %d", ret);
	else if (ret == -ENODEV)
		XDNA_DBG(xdna, "Destroy context: device already stopped");

	return ret;
}