All of lore.kernel.org
 help / color / mirror / Atom feed
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 11:37:12 -0400	[thread overview]
Message-ID: <52430328.2040008@oracle.com> (raw)
In-Reply-To: <524315E002000078000F656A@nat28.tlf.novell.com>

On 09/25/2013 10:57 AM, Jan Beulich wrote:
>>>> On 25.09.13 at 16:39, Boris Ostrovsky <boris.ostrovsky@oracle.com> wrote:
>>>>
>>>> @@ -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.
> Until the current range runs out...

Well, there are 58 free addresses currently available in this range...

>>>> @@ -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.
> Sure, but the effect of breaking up a loop into individual operations
> is seen quite nicely here.

Yes, but unlike fixed counters above, the registers in what used to be 
in core2_ctrls.msr
are responsible for different things. And in certain cases we want to 
access one register
but not the other.

An example is in current version of vpmu_dump():
  val = core2_vpmu_cxt->ctrls[MSR_CORE_PERF_FIXED_CTR_CTRL_IDX];

We had to add another macro (MSR_CORE_PERF_FIXED_CTR_CTRL_IDX).


So I think that separating these registers explicitly makes sense.

-boris

  reply	other threads:[~2013-09-25 15:35 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
2013-09-25 14:57       ` Jan Beulich
2013-09-25 15:37         ` Boris Ostrovsky [this message]
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=52430328.2040008@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.