diff mbox

[v2,03/15] x86: rename 'cbm_type' to 'psr_val_type' to make it general

Message ID 1503537289-56036-4-git-send-email-yi.y.sun@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yi Sun Aug. 24, 2017, 1:14 a.m. UTC
This patch renames 'cbm_type' to 'psr_val_type' to make it be general.
Then, we can reuse this for all psr allocation features.

Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
---
v2:
    - replace 'PSR_VAL_TYPE_{L3, L2}' to 'PSR_VAL_TYPE_{L3, L2}_CBM'.
      (suggested by Chao Peng)
---
 xen/arch/x86/domctl.c     | 16 ++++++------
 xen/arch/x86/psr.c        | 62 +++++++++++++++++++++++++----------------------
 xen/arch/x86/sysctl.c     |  4 +--
 xen/include/asm-x86/psr.h | 18 +++++++-------
 4 files changed, 52 insertions(+), 48 deletions(-)

Comments

Roger Pau Monné Aug. 29, 2017, 12:15 p.m. UTC | #1
On Thu, Aug 24, 2017 at 09:14:37AM +0800, Yi Sun wrote:
> This patch renames 'cbm_type' to 'psr_val_type' to make it be general.

I'm unsure whether the '_val_' is really needed here. AFAICT it
doesn't add any meaningful information to the define itself, and only
makes it longer. Apart from that it looks fine.

Roger.
Yi Sun Aug. 30, 2017, 5:47 a.m. UTC | #2
On 17-08-29 13:15:24, Roger Pau Monn� wrote:
> On Thu, Aug 24, 2017 at 09:14:37AM +0800, Yi Sun wrote:
> > This patch renames 'cbm_type' to 'psr_val_type' to make it be general.
> 
> I'm unsure whether the '_val_' is really needed here. AFAICT it
> doesn't add any meaningful information to the define itself, and only
> makes it longer. Apart from that it looks fine.
> 
The 'cbm_type' means the CAT value (CBM) type. As MBA value type is throttle,
I want to rename 'cbm_type' to a generic value type. Because there are many
'psr' starting names, to make it clear that this structure is for value type,
I name it 'psr_val_type'.

If you still think it is not appropriate, I will remove '_val'.

> Roger.
Roger Pau Monné Aug. 30, 2017, 7:51 a.m. UTC | #3
On Wed, Aug 30, 2017 at 01:47:38PM +0800, Yi Sun wrote:
> On 17-08-29 13:15:24, Roger Pau Monn� wrote:
> > On Thu, Aug 24, 2017 at 09:14:37AM +0800, Yi Sun wrote:
> > > This patch renames 'cbm_type' to 'psr_val_type' to make it be general.
> > 
> > I'm unsure whether the '_val_' is really needed here. AFAICT it
> > doesn't add any meaningful information to the define itself, and only
> > makes it longer. Apart from that it looks fine.
> > 
> The 'cbm_type' means the CAT value (CBM) type. As MBA value type is throttle,
> I want to rename 'cbm_type' to a generic value type. Because there are many
> 'psr' starting names, to make it clear that this structure is for value type,
> I name it 'psr_val_type'.

But the enum also has the '_val' thing, and it's used by psr_get_info.
IMHO it would be better to just drop the '_val'.

Roger.
Yi Sun Aug. 30, 2017, 8:14 a.m. UTC | #4
On 17-08-30 08:51:40, Roger Pau Monn� wrote:
> On Wed, Aug 30, 2017 at 01:47:38PM +0800, Yi Sun wrote:
> > On 17-08-29 13:15:24, Roger Pau Monn� wrote:
> > > On Thu, Aug 24, 2017 at 09:14:37AM +0800, Yi Sun wrote:
> > > > This patch renames 'cbm_type' to 'psr_val_type' to make it be general.
> > > 
> > > I'm unsure whether the '_val_' is really needed here. AFAICT it
> > > doesn't add any meaningful information to the define itself, and only
> > > makes it longer. Apart from that it looks fine.
> > > 
> > The 'cbm_type' means the CAT value (CBM) type. As MBA value type is throttle,
> > I want to rename 'cbm_type' to a generic value type. Because there are many
> > 'psr' starting names, to make it clear that this structure is for value type,
> > I name it 'psr_val_type'.
> 
> But the enum also has the '_val' thing, and it's used by psr_get_info.
> IMHO it would be better to just drop the '_val'.
> 
Ok, will do it.

> Roger.
diff mbox

Patch

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 24b998b..e1c7c70 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1447,51 +1447,51 @@  long arch_do_domctl(
         case XEN_DOMCTL_PSR_CAT_OP_SET_L3_CBM:
             ret = psr_set_val(d, domctl->u.psr_alloc_op.target,
                               domctl->u.psr_alloc_op.data,
-                              PSR_CBM_TYPE_L3);
+                              PSR_VAL_TYPE_L3_CBM);
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_SET_L3_CODE:
             ret = psr_set_val(d, domctl->u.psr_alloc_op.target,
                               domctl->u.psr_alloc_op.data,
-                              PSR_CBM_TYPE_L3_CODE);
+                              PSR_VAL_TYPE_L3_CODE);
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_SET_L3_DATA:
             ret = psr_set_val(d, domctl->u.psr_alloc_op.target,
                               domctl->u.psr_alloc_op.data,
-                              PSR_CBM_TYPE_L3_DATA);
+                              PSR_VAL_TYPE_L3_DATA);
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_SET_L2_CBM:
             ret = psr_set_val(d, domctl->u.psr_alloc_op.target,
                               domctl->u.psr_alloc_op.data,
-                              PSR_CBM_TYPE_L2);
+                              PSR_VAL_TYPE_L2_CBM);
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_GET_L3_CBM:
             ret = psr_get_val(d, domctl->u.psr_alloc_op.target,
-                              &val32, PSR_CBM_TYPE_L3);
+                              &val32, PSR_VAL_TYPE_L3_CBM);
             domctl->u.psr_alloc_op.data = val32;
             copyback = true;
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_GET_L3_CODE:
             ret = psr_get_val(d, domctl->u.psr_alloc_op.target,
-                              &val32, PSR_CBM_TYPE_L3_CODE);
+                              &val32, PSR_VAL_TYPE_L3_CODE);
             domctl->u.psr_alloc_op.data = val32;
             copyback = true;
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_GET_L3_DATA:
             ret = psr_get_val(d, domctl->u.psr_alloc_op.target,
-                              &val32, PSR_CBM_TYPE_L3_DATA);
+                              &val32, PSR_VAL_TYPE_L3_DATA);
             domctl->u.psr_alloc_op.data = val32;
             copyback = true;
             break;
 
         case XEN_DOMCTL_PSR_CAT_OP_GET_L2_CBM:
             ret = psr_get_val(d, domctl->u.psr_alloc_op.target,
-                              &val32, PSR_CBM_TYPE_L2);
+                              &val32, PSR_VAL_TYPE_L2_CBM);
             domctl->u.psr_alloc_op.data = val32;
             copyback = true;
             break;
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 3622de0..da62f81 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -100,24 +100,24 @@  static const struct feat_props {
     unsigned int cos_num;
 
     /*
-     * An array to save all 'enum cbm_type' values of the feature. It is
+     * An array to save all 'enum psr_val_type' values of the feature. It is
      * used with cos_num together to get/write a feature's COS registers
      * values one by one.
      */
-    enum cbm_type type[MAX_COS_NUM];
+    enum psr_val_type type[MAX_COS_NUM];
 
     /*
      * alt_type is 'alternative type'. When this 'alt_type' is input, the
      * feature does some special operations.
      */
-    enum cbm_type alt_type;
+    enum psr_val_type alt_type;
 
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
 
     /* write_msr is used to write out feature MSR register. */
-    void (*write_msr)(unsigned int cos, uint32_t val, enum cbm_type type);
+    void (*write_msr)(unsigned int cos, uint32_t val, enum psr_val_type type);
 } *feat_props[FEAT_TYPE_NUM];
 
 /*
@@ -216,13 +216,13 @@  static void free_socket_resources(unsigned int socket)
     bitmap_zero(info->dom_set, DOMID_IDLE + 1);
 }
 
-static enum psr_feat_type psr_cbm_type_to_feat_type(enum cbm_type type)
+static enum psr_feat_type psr_val_type_to_feat_type(enum psr_val_type type)
 {
     enum psr_feat_type feat_type = FEAT_TYPE_UNKNOWN;
 
     switch ( type )
     {
-    case PSR_CBM_TYPE_L3:
+    case PSR_VAL_TYPE_L3_CBM:
         feat_type = FEAT_TYPE_L3_CAT;
 
         /*
@@ -234,12 +234,12 @@  static enum psr_feat_type psr_cbm_type_to_feat_type(enum cbm_type type)
 
         break;
 
-    case PSR_CBM_TYPE_L3_DATA:
-    case PSR_CBM_TYPE_L3_CODE:
+    case PSR_VAL_TYPE_L3_DATA:
+    case PSR_VAL_TYPE_L3_CODE:
         feat_type = FEAT_TYPE_L3_CDP;
         break;
 
-    case PSR_CBM_TYPE_L2:
+    case PSR_VAL_TYPE_L2_CBM:
         feat_type = FEAT_TYPE_L2_CAT;
         break;
 
@@ -363,15 +363,16 @@  static bool cat_get_feat_info(const struct feat_node *feat,
 }
 
 /* L3 CAT props */
-static void l3_cat_write_msr(unsigned int cos, uint32_t val, enum cbm_type type)
+static void l3_cat_write_msr(unsigned int cos, uint32_t val,
+                             enum psr_val_type type)
 {
     wrmsrl(MSR_IA32_PSR_L3_MASK(cos), val);
 }
 
 static const struct feat_props l3_cat_props = {
     .cos_num = 1,
-    .type[0] = PSR_CBM_TYPE_L3,
-    .alt_type = PSR_CBM_TYPE_UNKNOWN,
+    .type[0] = PSR_VAL_TYPE_L3_CBM,
+    .alt_type = PSR_VAL_TYPE_UNKNOWN,
     .get_feat_info = cat_get_feat_info,
     .write_msr = l3_cat_write_msr,
 };
@@ -388,9 +389,10 @@  static bool l3_cdp_get_feat_info(const struct feat_node *feat,
     return true;
 }
 
-static void l3_cdp_write_msr(unsigned int cos, uint32_t val, enum cbm_type type)
+static void l3_cdp_write_msr(unsigned int cos, uint32_t val,
+                             enum psr_val_type type)
 {
-    wrmsrl(((type == PSR_CBM_TYPE_L3_DATA) ?
+    wrmsrl(((type == PSR_VAL_TYPE_L3_DATA) ?
             MSR_IA32_PSR_L3_MASK_DATA(cos) :
             MSR_IA32_PSR_L3_MASK_CODE(cos)),
            val);
@@ -398,23 +400,24 @@  static void l3_cdp_write_msr(unsigned int cos, uint32_t val, enum cbm_type type)
 
 static const struct feat_props l3_cdp_props = {
     .cos_num = 2,
-    .type[0] = PSR_CBM_TYPE_L3_DATA,
-    .type[1] = PSR_CBM_TYPE_L3_CODE,
-    .alt_type = PSR_CBM_TYPE_L3,
+    .type[0] = PSR_VAL_TYPE_L3_DATA,
+    .type[1] = PSR_VAL_TYPE_L3_CODE,
+    .alt_type = PSR_VAL_TYPE_L3_CBM,
     .get_feat_info = l3_cdp_get_feat_info,
     .write_msr = l3_cdp_write_msr,
 };
 
 /* L2 CAT props */
-static void l2_cat_write_msr(unsigned int cos, uint32_t val, enum cbm_type type)
+static void l2_cat_write_msr(unsigned int cos, uint32_t val,
+                             enum psr_val_type type)
 {
     wrmsrl(MSR_IA32_PSR_L2_MASK(cos), val);
 }
 
 static const struct feat_props l2_cat_props = {
     .cos_num = 1,
-    .type[0] = PSR_CBM_TYPE_L2,
-    .alt_type = PSR_CBM_TYPE_UNKNOWN,
+    .type[0] = PSR_VAL_TYPE_L2_CBM,
+    .alt_type = PSR_VAL_TYPE_UNKNOWN,
     .get_feat_info = cat_get_feat_info,
     .write_msr = l2_cat_write_msr,
 };
@@ -655,7 +658,7 @@  static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
-int psr_get_info(unsigned int socket, enum cbm_type type,
+int psr_get_info(unsigned int socket, enum psr_val_type type,
                  uint32_t data[], unsigned int array_len)
 {
     const struct psr_socket_info *info = get_socket_info(socket);
@@ -667,7 +670,7 @@  int psr_get_info(unsigned int socket, enum cbm_type type,
     if ( IS_ERR(info) )
         return PTR_ERR(info);
 
-    feat_type = psr_cbm_type_to_feat_type(type);
+    feat_type = psr_val_type_to_feat_type(type);
     if ( feat_type >= ARRAY_SIZE(info->features) )
         return -ENOENT;
 
@@ -688,7 +691,7 @@  int psr_get_info(unsigned int socket, enum cbm_type type,
 }
 
 int psr_get_val(struct domain *d, unsigned int socket,
-                uint32_t *val, enum cbm_type type)
+                uint32_t *val, enum psr_val_type type)
 {
     const struct psr_socket_info *info = get_socket_info(socket);
     const struct feat_node *feat;
@@ -700,7 +703,7 @@  int psr_get_val(struct domain *d, unsigned int socket,
     if ( IS_ERR(info) )
         return PTR_ERR(info);
 
-    feat_type = psr_cbm_type_to_feat_type(type);
+    feat_type = psr_val_type_to_feat_type(type);
     if ( feat_type >= ARRAY_SIZE(info->features) )
         return -ENOENT;
 
@@ -830,7 +833,7 @@  static int insert_val_into_array(uint32_t val[],
                                  unsigned int array_len,
                                  const struct psr_socket_info *info,
                                  enum psr_feat_type feat_type,
-                                 enum cbm_type type,
+                                 enum psr_val_type type,
                                  uint32_t new_val)
 {
     const struct feat_node *feat;
@@ -866,8 +869,9 @@  static int insert_val_into_array(uint32_t val[],
     /*
      * Value setting position is same as feature array.
      * For CDP, user may set both DATA and CODE to same value. For such case,
-     * user input 'PSR_CBM_TYPE_L3' as type. The alternative type of CDP is same
-     * as it. So we should set new_val to both of DATA and CODE under such case.
+     * user input 'PSR_VAL_TYPE_L3_CBM' as type. The alternative type of CDP is
+     * same as it. So we should set new_val to both of DATA and CODE under such
+     * case.
      */
     for ( i = 0; i < props->cos_num; i++ )
     {
@@ -1156,7 +1160,7 @@  static int write_psr_msrs(unsigned int socket, unsigned int cos,
 }
 
 int psr_set_val(struct domain *d, unsigned int socket,
-                uint64_t new_val, enum cbm_type type)
+                uint64_t new_val, enum psr_val_type type)
 {
     unsigned int old_cos, array_len;
     int cos, ret;
@@ -1172,7 +1176,7 @@  int psr_set_val(struct domain *d, unsigned int socket,
     if ( new_val != val )
         return -EINVAL;
 
-    feat_type = psr_cbm_type_to_feat_type(type);
+    feat_type = psr_val_type_to_feat_type(type);
     if ( feat_type >= ARRAY_SIZE(info->features) ||
          !info->features[feat_type] )
         return -ENOENT;
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index e7e390e..df54d38 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -179,7 +179,7 @@  long arch_do_sysctl(
         case XEN_SYSCTL_PSR_CAT_get_l3_info:
         {
             ret = psr_get_info(sysctl->u.psr_alloc_op.target,
-                               PSR_CBM_TYPE_L3, data, ARRAY_SIZE(data));
+                               PSR_VAL_TYPE_L3_CBM, data, ARRAY_SIZE(data));
             if ( ret )
                 break;
 
@@ -198,7 +198,7 @@  long arch_do_sysctl(
         case XEN_SYSCTL_PSR_CAT_get_l2_info:
         {
             ret = psr_get_info(sysctl->u.psr_alloc_op.target,
-                               PSR_CBM_TYPE_L2, data, ARRAY_SIZE(data));
+                               PSR_VAL_TYPE_L2_CBM, data, ARRAY_SIZE(data));
             if ( ret )
                 break;
 
diff --git a/xen/include/asm-x86/psr.h b/xen/include/asm-x86/psr.h
index 18a42f3..fb4a20a 100644
--- a/xen/include/asm-x86/psr.h
+++ b/xen/include/asm-x86/psr.h
@@ -53,12 +53,12 @@  struct psr_cmt {
     struct psr_cmt_l3 l3;
 };
 
-enum cbm_type {
-    PSR_CBM_TYPE_L3,
-    PSR_CBM_TYPE_L3_CODE,
-    PSR_CBM_TYPE_L3_DATA,
-    PSR_CBM_TYPE_L2,
-    PSR_CBM_TYPE_UNKNOWN,
+enum psr_val_type {
+    PSR_VAL_TYPE_L3_CBM,
+    PSR_VAL_TYPE_L3_CODE,
+    PSR_VAL_TYPE_L3_DATA,
+    PSR_VAL_TYPE_L2_CBM,
+    PSR_VAL_TYPE_UNKNOWN,
 };
 
 extern struct psr_cmt *psr_cmt;
@@ -72,12 +72,12 @@  int psr_alloc_rmid(struct domain *d);
 void psr_free_rmid(struct domain *d);
 void psr_ctxt_switch_to(struct domain *d);
 
-int psr_get_info(unsigned int socket, enum cbm_type type,
+int psr_get_info(unsigned int socket, enum psr_val_type type,
                  uint32_t data[], unsigned int array_len);
 int psr_get_val(struct domain *d, unsigned int socket,
-                uint32_t *val, enum cbm_type type);
+                uint32_t *val, enum psr_val_type type);
 int psr_set_val(struct domain *d, unsigned int socket,
-                uint64_t val, enum cbm_type type);
+                uint64_t val, enum psr_val_type type);
 
 void psr_domain_init(struct domain *d);
 void psr_domain_free(struct domain *d);