[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 10/11] public: add XENFEAT_ARM_SMCCC_supported feature
Hi Julien, On 09/04/2017 08:07 AM, Julien Grall wrote: > Hello, > > Sorry for the formatting, writing from my phone. Ki > > On Thu, 31 Aug 2017, 22:18 Sergej Proskurin <proskurin@xxxxxxxxxxxxx> wrote: > [...] > > On your first mail, you started with "smc injection doesn't work", then "I > replace instruction" and now you mention about single-stepping. > > This doesn't help at all to understand what you are doing and really not > related to this thread. > > So can you please details exactly what you are doing rather than giving > bits by bits? > I will provide more information in a separate thread soon so that the actual issue, hopefully, will become clearer. Thank you. >> I use SMC instructions as the guest can register for BRK events. The >> guest cannot register for SMC events. So, in order stay stealthy towards >> the guest and also not to cope with BRK re-injections, SMC's seemed to >> be the right choice : > > I have already said that using SMC is a pretty bad idea when Tamas added > the trapping and you guys still seem to think it is a good idea... I did not know about this conversation with Tamas. Why do you believe that using SMC instructions is not a good idea? Could you please refer me to the particular thread? Thank you. >>>>> Current code in hypervisor will always inject undefined instruction >>>>> exception when you call SMC (unless you installed VM monitor for the >>>>> guest). Also, it will not increase PC. So, if you'll try to remove >>>>> inject_undef_exception() call, you'll get into an infinite loop. >>>>> >>>> I have a registered SMC monitor running in dom0 that does not reinject >>>> the undefined instruction exception in do_trap_smc(). So there is no >>>> indefinite loop at this point. What I see is that as soon as my code in >>>> xen-access (dom0) increments the trapped guest PC by 4 (and also if it >>>> doesn't) the next instruction inside the guest will be inside the undef >>>> instruction handler (I can see that because I have implemented a single >>>> stepping mechanism for AArch64 in Xen that gets activated right after >>>> the guest executes the injected SMC instruction). >>> That's strange. Can you print whole vCPU state to determine that PC >>> points to the right place? Also you can check DFAR. Probably you can >>> even dump memory pointed by DFAR to make sure that you written back >>> correct instruction. >> Yea, I do that. And both the SMC injection, as well as further vCPU >> state seems to be correct at this point. >> >> Today, I saw an interesting behavior in my single-stepping >> implementation, which is the reason for my late reply. I can't explain >> what is going wrong, yet. So I will need to further investigate this >> behavior and post and RFC for the single-stepping mechanism as to put >> more eyes on the issue. Maybe, this will help solve it. >> >> But anyway, thank you very much for your help! I really appreciate it :) >> > You probably want to look at > https://lists.xen.org/archives/html/xen-devel/2017-08/msg00661.html and > maybe sync-up with this person if you are not working with him. Thanks, for mentioning that. Florian is a student of mine who has also looked at single-stepping on ARMv8. We have collaborated on this topic together. I will take over on that, as his work goes slightly into a different direction. Thanks, ~Sergej _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |