Avi Kivity wrote:
Anthony Liguori wrote:
writel(dst_x_reg, x);
writel(dst_y_reg, y)
writel(width_reg, w);
writel(height_reg, h);
writel(blt_cmd_reg, fill);
then kvm would cache the first four in a mmap()able memory area and
only exit to userspace on the fifth. Userspace would then read the
cached registers from memory and emulate the command.
Letting QEMU do a certain amount of emulation after every transition
would the problem in a more elegant and generic way.
But what amount? A basic block, or several?
Emulation has its costs. You need to marshal the registers to and
fro. You need to reset qemu's cached translations. You need to throw
away shadow page tables and qemu's softmmu. You increase the time
spent in single threaded code.
Admittedly still a research topic. If you're interested in what we're
doing in Xen, check out:
http://xenbits.xensource.com/ext/xen-unstable-hvm.hg (sorry, xenbits is
down right now but hopefully it will be fixed quickly).
Regards,
Anthony Liguori
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]