On 10/22/2009 12:43 PM, Carsten Otte wrote:
Avi Kivity wrote:
On x86 we avoid emulating instructions in userspace. Instead the
kernel requests userspace to do something (triggered by the
instruction), and the kernel does anything which might be implied by
the instruction (like copying the result into a register, or updating
pc).
An example is port I/O. instead of userspace reading %edx to query
the port number and setting %eax to indicate the result, userspace
reads a port number struct field and writes an I/O result struct
field. Only the kernel accesses registers.
I don't know whether that model makes sense or not for s390, but
please consider it.
We do the same for many instructions (arch/s390/kvm/instruction.c).
User exits
are only performed for isntructions that cannot be handled in kernel.
Also, we do exit with requests to userspace, see the s390_reset exit
reason. I think in this regard, our implementation is very similar to
x86. Btw: this is something I did copycat from your implementation on
integration into kvm. The original zlive code did handle all
instructions in userland.
So why not do it for this instruction as well? Instead of updating the
psw, return a success/error code and let the kernel update psw.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html