qemu-discuss
[Top][All Lists]
Advanced

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

Getting privilege level of an instruction in TCG plugin


From: Milind Luthra
Subject: Getting privilege level of an instruction in TCG plugin
Date: Wed, 26 Jan 2022 21:48:00 +0530

Hi everyone,

We were writing a TCG plugin, and for every instruction executed, we wanted to know the privilege level where it was executed, i.e. was it in user mode or kernel mode.

Approaches we tried:

1. We tried to use vcpu_syscall_cb/vcpu_syscall_ret_cb initially - any instruction execution between invocations of these functions would be marked as being in kernel mode. However, these callbacks don't seem to be called in Qemu's full system emulation, and in Qemu's user mode emulation, we won't get any privileged instructions executing anyway. Also, we would miss interrupts/pagefaults in this way.

2. We thought we could look up the registers which store the privilege level for our guest (AArch64 - current program status register). But, from reading the code and from a previous qemu-devel mailing list thread "Qemu TCG Plugins - how to access guest registers" , we saw that registers are not readable from plugins either.

Is there a way to do this in the plugin API?

Thank you,
Milind
PS: I asked earlier in qemu-devel 4-5 days ago, but it seems like this mailing list would be more suited.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]