On 10/25/2010 12:54 PM, Lluís wrote:
* Backdoor channels need to provide arguments. * It's better to provide the same mechanism for both *-user and softmmu (otherwise the application to simulate or the interposed librariy should be compiled differently on every case).
You can add the syscall and, if it returns with ENOSYS, fall back to MMIO/PIO (you don't really need a special driver, only some chmod since BARs are accessible from /sys) or watchpoint/breakpoint.
* Some applications are not fully simulated, but just some pre-defined loops are, such that I would run the application (on KVM mode if possible) until the interesting loop starts executing, switch to simulation mode, simulate an arbitrary number of loops, switch back to non-simulated mode, run until another specific loop or iteration is reached, repeat the process again. This obviously requires some application modification to insert the communication points, unless these can be identified using symbol interposition (e.g., calls to the OpenMP runtime to simulate certain parallel loops).
Switching between KVM and TCG is not possible at the moment, even though in principle it should be feasible for non-SMP guests.
Paolo