From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v15 17/21] x86/VPMU: Handle PMU interrupts for PV guests Date: Wed, 03 Dec 2014 15:29:02 -0500 Message-ID: <547F728E.7030907@oracle.com> References: <1416179271-1221-1-git-send-email-boris.ostrovsky@oracle.com> <1416179271-1221-18-git-send-email-boris.ostrovsky@oracle.com> <5474A028020000780004AB58@mail.emea.novell.com> <5475E610.2020707@oracle.com> <5476F5FE020000780004B0E5@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5476F5FE020000780004B0E5@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: kevin.tian@intel.com, keir@xen.org, suravee.suthikulpanit@amd.com, andrew.cooper3@citrix.com, tim@xen.org, dietmar.hahn@ts.fujitsu.com, xen-devel@lists.xen.org, Aravind.Gopalakrishnan@amd.com, jun.nakajima@intel.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org On 11/27/2014 03:59 AM, Jan Beulich wrote: >>>> On 26.11.14 at 15:39, wrote: >> On 11/25/2014 09:28 AM, Jan Beulich wrote: >>>> + else >>>> + { >>>> + struct segment_register seg; >>>> + >>>> + hvm_get_segment_register(sampled, x86_seg_cs, &seg); >>>> + r->cs = seg.sel; >>>> + hvm_get_segment_register(sampled, x86_seg_ss, &seg); >>>> + r->ss = seg.sel; >>>> + if ( seg.attr.fields.dpl != 0 ) >>>> + *flags |= PMU_SAMPLE_USER; >>> Is that how hardware treats it (CPL != 0 meaning user, rather >>> than CPL == 3)? >> You mean how *software* (e.g. Linux kernel) treats it? If yes, then for >> 32-bit user_mode() checks for (CS == 3) and for 64-bit it's !!(CS & 3). > No, I meant hardware. There CPL qualified PMU aspects, and it was > those I had in mind to use as reference here. > >>> Maybe you should surface CPL instead of a >>> boolean flag? Yes, I think it may be better. Let the caller sort out how to interpret it. -boris >> Am I not already doing it by passing SS and CS to the guest? > No, neither SS.RPL nor CS.RPL formally represent CPL. > > Jan >