Re: [PATCH v19 030/130] KVM: TDX: Add helper functions to print TDX SEAMCALL error

From: Huang, Kai
Date: Wed Mar 20 2024 - 19:10:24 EST



Does it make sense?

void pr_tdx_error(u64 op, u64 error_code)
{
pr_err_ratelimited("SEAMCALL (0x%016llx) failed: 0x%016llx\n",
op, error_code);
}

Should we also have a _ret version?

void pr_seamcall_err(u64 op, u64 err)
{
/* A comment to explain why using the _ratelimited() version? */
pr_err_ratelimited(...);
}

void pr_seamcall_err_ret(u64 op, u64 err, struct tdx_module_args *arg)
{
pr_err_seamcall(op, err);

pr_err_ratelimited(...);
}

(Hmm... if you look at the tdx.c in TDX host, there's similar code there, and again, it was a little bit annoying when I did that..)

Again, if we just use seamcall_ret() for ALL SEAMCALLs except VP.ENTER, we can simply have one..


void pr_tdx_sept_error(u64 op, u64 error_code, const union tdx_sept_entry *entry,
const union tdx_sept_level_state *level_state)
{
#define MSG \
"SEAMCALL (0x%016llx) failed: 0x%016llx entry 0x%016llx level_state 0x%016llx\n"
pr_err_ratelimited(MSG, op, error_code, entry->raw, level_state->raw);
}

A higher-level wrapper to print SEPT error is fine to me, but do it in a separate patch.