On Thu, Jun 20, 2013 at 01:48:39AM +0800, Gmail wrote: > > 在 2013-6-20,0:03,Gleb Natapov <gleb@xxxxxxxxxx> 写道: > > > On Wed, Jun 19, 2013 at 11:07:18PM +0800, 李春奇 <Arthur Chunqi Li> wrote: > >> Hi Gleb, > >> This version can set %rsp before trapping into emulator, because > >> insn_page and alt_insn_page is statically defined and their relative > >> position to (save) is fixed during execution. > > The position of the code is not fixed during execution since you execute > > it from a virtual address obtained dynamically by vmap() and the address > > is definitely different from the one the code was compiled for, but if > > you look at the code that compile actually produce you will see that it > > uses absolute address to access "save" and this is why it works. I > > wounder why compiler decided to use absolute address this time, Paolo? > > > >> In this way, test case of test_mmx_movq_mf needs to pre-define its own > >> stack, this change is in the next patch. > >> > >> In this version, insn_ram is initially mapped to insn_page and them > >> each call to insn_page/alt_insn_page are all via insn_ram. This trick > >> runs well but I don't know why my previous version causes error. > > Because previous version tried to use install_page() on a large page > > mapped region and the function does not know how to handle that. > I don't quite understand what you mean here. What is the differences between large page and 4k page in this test case? Test assumes 4k page size. > Maybe I don't understand the differences of install_pte() with 4k page and 2m pages. May be. You cannot install 4k page in place of 2m page before breaking the later to 512 4k pages. -- Gleb. -- 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