From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: Re: [PATCH RFC 5/9] xen: Support for VMCALL mem_events Date: Wed, 02 Jul 2014 18:54:53 +0300 Message-ID: <53B42B4D.3090503@bitdefender.com> References: <1404308041-15461-1-git-send-email-rcojocaru@bitdefender.com> <1404308041-15461-5-git-send-email-rcojocaru@bitdefender.com> <53B445CF020000780001FB25@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <53B445CF020000780001FB25@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: tim@xen.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org >> xen/arch/x86/hvm/hvm.c | 8 ++++++++ >> xen/arch/x86/hvm/vmx/vmx.c | 15 ++++++++++++++- > > This is obviously again missing the SVM side. We've done our development for VMX, that correct. >> --- a/xen/arch/x86/hvm/vmx/vmx.c >> +++ b/xen/arch/x86/hvm/vmx/vmx.c >> @@ -2880,8 +2880,21 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs) >> case EXIT_REASON_VMCALL: >> { >> int rc; >> + unsigned long eax = regs->eax; >> + >> HVMTRACE_1D(VMMCALL, regs->eax); >> - rc = hvm_do_hypercall(regs); >> + >> + if ( regs->eax != 0x494e5452 ) /* Introcore magic */ > > Urgh?! The magic constant is INTR, and it's used to differentiate between "regular" and induced VMCALLs. Our application sets EAX up like that to tell the situations apart. >> --- a/xen/include/public/hvm/params.h >> +++ b/xen/include/public/hvm/params.h >> @@ -148,6 +148,8 @@ >> #define HVM_PARAM_IOREQ_SERVER_PFN 32 >> #define HVM_PARAM_NR_IOREQ_SERVER_PAGES 33 >> >> -#define HVM_NR_PARAMS 34 >> +#define HVM_PARAM_MEMORY_EVENT_VMCALL 34 > > So why does this (used only as an argument to > hvm_memory_event_traps()) need to be settable? I guess the patch > description is just too brief. Settable? Thanks, Razvan Cojocaru