From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: suravee.suthikulpanit@amd.com, George.Dunlap@eu.citrix.com,
jacob.shin@amd.com, eddie.dong@intel.com,
dietmar.hahn@ts.fujitsu.com, jun.nakajima@intel.com,
xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 05/13] intel/VPMU: Clean up Intel VPMU code
Date: Wed, 25 Sep 2013 10:39:48 -0400 [thread overview]
Message-ID: <5242F5B4.9000505@oracle.com> (raw)
In-Reply-To: <5243078302000078000F6461@nat28.tlf.novell.com>
On 09/25/2013 09:55 AM, Jan Beulich wrote:
>>>> On 20.09.13 at 11:42, Boris Ostrovsky <boris.ostrovsky@oracle.com> wrote:
>> +void vmx_rm_guest_msr(u32 msr)
>> +{
>> + struct vcpu *curr = current;
>> + unsigned int i, idx, msr_count = curr->arch.hvm_vmx.msr_count;
>> + struct vmx_msr_entry *msr_area = curr->arch.hvm_vmx.msr_area;
>> +
>> + if ( msr_area == NULL )
>> + return;
>> +
>> + for ( idx = 0; idx < msr_count; idx++ )
>> + if ( msr_area[idx].index == msr )
>> + break;
>> +
>> + if ( idx == msr_count )
>> + return;
>> +
>> + for ( i = idx; i < msr_count - 1; i++ )
> "idx" not being used further down anymore, why do you need
> another loop variable here?
>
>> + {
>> + msr_area[i].index = msr_area[i + 1].index;
>> + rdmsrl(msr_area[i].index, msr_area[i].data);
> This is clearly a side effect of the function call no-one would
> expect. Why do you do this?
I don't understand what you are trying to say here.
(And this is wrong, instead of rdmsr it should be
msr_area[i].data = msr_area[i + 1].data;
)
>
>> + }
>> + msr_area[msr_count - 1].index = 0;
>> +
>> + curr->arch.hvm_vmx.msr_count = --msr_count;
>> + __vmwrite(VM_EXIT_MSR_STORE_COUNT, msr_count);
>> + __vmwrite(VM_ENTRY_MSR_LOAD_COUNT, msr_count);
>> +
>> + return;
> Pointless "return".
>
> All the same comments apply to vmx_rm_host_load_msr().
>
>> +static int arch_pmc_cnt; /* Number of general-purpose performance counters */
>> +static int fixed_pmc_cnt; /* Number of fixed performance counters */
> unsigned? __read_mostly?
>
>> @@ -248,13 +230,13 @@ static void core2_vpmu_set_msr_bitmap(unsigned long *msr_bitmap)
>> int i;
>>
>> /* Allow Read/Write PMU Counters MSR Directly. */
>> - for ( i = 0; i < core2_fix_counters.num; i++ )
>> + for ( i = 0; i < fixed_pmc_cnt; i++ )
>> {
>> - clear_bit(msraddr_to_bitpos(core2_fix_counters.msr[i]), msr_bitmap);
>> - clear_bit(msraddr_to_bitpos(core2_fix_counters.msr[i]),
>> + clear_bit(msraddr_to_bitpos(MSR_CORE_PERF_FIXED_CTR0 + i), msr_bitmap);
>> + clear_bit(msraddr_to_bitpos(MSR_CORE_PERF_FIXED_CTR0 + i),
> Dropping the static array will make the handling here quite a bit more
> complicated should there ever appear a second dis-contiguous MSR
> range.
Fixed counters range should always be contiguous per Intel SDM.
>> @@ -262,32 +244,37 @@ static void core2_vpmu_set_msr_bitmap(unsigned long *msr_bitmap)
>> }
>>
>> /* Allow Read PMU Non-global Controls Directly. */
>> - for ( i = 0; i < core2_ctrls.num; i++ )
>> - clear_bit(msraddr_to_bitpos(core2_ctrls.msr[i]), msr_bitmap);
>> - for ( i = 0; i < core2_get_pmc_count(); i++ )
>> + for ( i = 0; i < arch_pmc_cnt; i++ )
>> clear_bit(msraddr_to_bitpos(MSR_P6_EVNTSEL0+i), msr_bitmap);
>> +
>> + clear_bit(msraddr_to_bitpos(MSR_CORE_PERF_FIXED_CTR_CTRL), msr_bitmap);
>> + clear_bit(msraddr_to_bitpos(MSR_IA32_PEBS_ENABLE), msr_bitmap);
>> + clear_bit(msraddr_to_bitpos(MSR_IA32_DS_AREA), msr_bitmap);
> As you can see, this is already the case here.
This is a different set of MSRs from from what you've commented on above.
-boris
>
> The patch description doesn't really say _why_ you do this.
> Jan
>
next prev parent reply other threads:[~2013-09-25 14:37 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-20 9:41 [PATCH v2 00/13] x86/PMU: Xen PMU PV support Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 01/13] Export hypervisor symbols Boris Ostrovsky
2013-09-23 19:42 ` Konrad Rzeszutek Wilk
2013-09-23 20:06 ` Boris Ostrovsky
2013-09-24 17:40 ` Konrad Rzeszutek Wilk
2013-09-25 13:15 ` Jan Beulich
2013-09-25 14:03 ` Boris Ostrovsky
2013-09-25 14:53 ` Jan Beulich
2013-09-20 9:42 ` [PATCH v2 02/13] Set VCPU's is_running flag closer to when the VCPU is dispatched Boris Ostrovsky
2013-09-25 13:42 ` Jan Beulich
2013-09-25 14:08 ` Keir Fraser
2013-09-20 9:42 ` [PATCH v2 03/13] x86/PMU: Stop AMD counters when called from vpmu_save_force() Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 04/13] x86/VPMU: Minor VPMU cleanup Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 05/13] intel/VPMU: Clean up Intel VPMU code Boris Ostrovsky
2013-09-23 11:42 ` Dietmar Hahn
2013-09-23 19:46 ` Konrad Rzeszutek Wilk
2013-09-25 13:55 ` Jan Beulich
2013-09-25 14:39 ` Boris Ostrovsky [this message]
2013-09-25 14:57 ` Jan Beulich
2013-09-25 15:37 ` Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 06/13] x86/PMU: Add public xenpmu.h Boris Ostrovsky
2013-09-23 13:04 ` Dietmar Hahn
2013-09-23 13:16 ` Jan Beulich
2013-09-23 14:00 ` Boris Ostrovsky
2013-09-23 13:45 ` Boris Ostrovsky
2013-09-25 14:04 ` Jan Beulich
2013-09-25 15:59 ` Boris Ostrovsky
2013-09-25 16:08 ` Jan Beulich
2013-09-30 13:25 ` Boris Ostrovsky
2013-09-30 13:30 ` Jan Beulich
2013-09-30 13:55 ` Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 07/13] x86/PMU: Make vpmu not HVM-specific Boris Ostrovsky
2013-09-25 14:05 ` Jan Beulich
2013-09-25 14:49 ` Boris Ostrovsky
2013-09-25 14:57 ` Jan Beulich
2013-09-20 9:42 ` [PATCH v2 08/13] x86/PMU: Interface for setting PMU mode and flags Boris Ostrovsky
2013-09-25 14:11 ` Jan Beulich
2013-09-25 14:55 ` Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 09/13] x86/PMU: Initialize PMU for PV guests Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 10/13] x86/PMU: Add support for PMU registes handling on " Boris Ostrovsky
2013-09-23 13:50 ` Dietmar Hahn
2013-09-25 14:23 ` Jan Beulich
2013-09-25 15:03 ` Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 11/13] x86/PMU: Handle PMU interrupts for " Boris Ostrovsky
2013-09-25 14:33 ` Jan Beulich
2013-09-25 14:40 ` Andrew Cooper
2013-09-25 15:52 ` Boris Ostrovsky
2013-09-25 15:19 ` Boris Ostrovsky
2013-09-25 15:25 ` Jan Beulich
2013-09-20 9:42 ` [PATCH v2 12/13] x86/PMU: Save VPMU state for PV guests during context switch Boris Ostrovsky
2013-09-20 9:42 ` [PATCH v2 13/13] x86/PMU: Move vpmu files up from hvm directory Boris Ostrovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5242F5B4.9000505@oracle.com \
--to=boris.ostrovsky@oracle.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=dietmar.hahn@ts.fujitsu.com \
--cc=eddie.dong@intel.com \
--cc=jacob.shin@amd.com \
--cc=jun.nakajima@intel.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.