[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 12/17] xen/riscv: extend exception tables with type and data fields





On 8/18/26 9:58 AM, Jan Beulich wrote:
On 17.08.2026 13:39, Oleksii Kurochko wrote:
On 8/17/26 1:33 PM, Oleksii Kurochko wrote:

+    BUG_ON(!trap_info);
+
+    trap_info->sepc = csr_read(CSR_SEPC);
+    trap_info->scause = csr_read(CSR_SCAUSE);
+    trap_info->stval = csr_read(CSR_STVAL);

Do you really need to re-read all three registers here? Didn't you
read at least
scause already, in order to make it here in the first place?

Agree, ->scause and ->sepc are already read.

scause should be re-reaad as we don't save it inside cpu_user_regs
structure.

It could be propagated as a function argument. Question really is how
expensive these CSR reads are.

Considering that each RISC-V hart normally observes its own CSR accesses, including its implicit CSR accesses, as performed in program order what affects out of order execution maybe it will be really better to propagate scause as a function argument.

~ Oleksii



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.