Re: [PATCH 02/16 v3] powerpc: Split processor entitlement retrieval and gathering to helper routines

2008-07-22 Thread Nathan Fontenot

Updated patch to remove checking the return code from the h_call for
H_PIC.  This reverts the reporting back to its original state.

Split the retrieval and setting of processor entitlement and weight into
helper routines.  This also removes the printing of the raw values
returned from h_get_ppp, the values are already parsed and printed.

Signed-off-by: Nathan Fontenot [EMAIL PROTECTED]
Signed-off-by: Robert Jennings [EMAIL PROTECTED]

---
arch/powerpc/kernel/lparcfg.c |  168 ++---
1 file changed, 90 insertions(+), 78 deletions(-)

Index: linux-2.6.git/arch/powerpc/kernel/lparcfg.c
===
--- linux-2.6.git.orig/arch/powerpc/kernel/lparcfg.c2008-07-22 
10:35:13.0 -0500
+++ linux-2.6.git/arch/powerpc/kernel/lparcfg.c 2008-07-22 12:50:47.0 
-0500
@@ -167,7 +167,8 @@
return rc;
}

-static void h_pic(unsigned long *pool_idle_time, unsigned long *num_procs)
+static unsigned h_pic(unsigned long *pool_idle_time,
+ unsigned long *num_procs)
{
unsigned long rc;
unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
@@ -176,6 +177,51 @@

*pool_idle_time = retbuf[0];
*num_procs = retbuf[1];
+
+   return rc;
+}
+
+/*
+ * parse_ppp_data
+ * Parse out the data returned from h_get_ppp and h_pic
+ */
+static void parse_ppp_data(struct seq_file *m)
+{
+   unsigned long h_entitled, h_unallocated;
+   unsigned long h_aggregation, h_resource;
+   int rc;
+
+   rc = h_get_ppp(h_entitled, h_unallocated, h_aggregation,
+  h_resource);
+   if (rc)
+   return;
+
+   seq_printf(m, partition_entitled_capacity=%ld\n, h_entitled);
+   seq_printf(m, group=%ld\n, (h_aggregation  2 * 8)  0x);
+   seq_printf(m, system_active_processors=%ld\n,
+  (h_resource  0 * 8)  0x);
+
+   /* pool related entries are apropriate for shared configs */
+   if (lppaca[0].shared_proc) {
+   unsigned long pool_idle_time, pool_procs;
+
+   seq_printf(m, pool=%ld\n, (h_aggregation  0 * 8)  0x);
+
+   /* report pool_capacity in percentage */
+   seq_printf(m, pool_capacity=%ld\n,
+  ((h_resource  2 * 8)  0x) * 100);
+
+   h_pic(pool_idle_time, pool_procs);
+   seq_printf(m, pool_idle_time=%ld\n, pool_idle_time);
+   seq_printf(m, pool_num_procs=%ld\n, pool_procs);
+   }
+
+   seq_printf(m, unallocated_capacity_weight=%ld\n,
+  (h_resource  4 * 8)  0xFF);
+
+   seq_printf(m, capacity_weight=%ld\n, (h_resource  5 * 8)  0xFF);
+   seq_printf(m, capped=%ld\n, (h_resource  6 * 8)  0x01);
+   seq_printf(m, unallocated_capacity=%ld\n, h_unallocated);
}

#define SPLPAR_CHARACTERISTICS_TOKEN 20
@@ -302,60 +348,11 @@
partition_active_processors = lparcfg_count_active_processors();

if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
-   unsigned long h_entitled, h_unallocated;
-   unsigned long h_aggregation, h_resource;
-   unsigned long pool_idle_time, pool_procs;
-   unsigned long purr;
-
-   h_get_ppp(h_entitled, h_unallocated, h_aggregation,
- h_resource);
-
-   seq_printf(m, R4=0x%lx\n, h_entitled);
-   seq_printf(m, R5=0x%lx\n, h_unallocated);
-   seq_printf(m, R6=0x%lx\n, h_aggregation);
-   seq_printf(m, R7=0x%lx\n, h_resource);
-
-   purr = get_purr();
-
/* this call handles the ibm,get-system-parameter contents */
parse_system_parameter_string(m);
+   parse_ppp_data(m);

-   seq_printf(m, partition_entitled_capacity=%ld\n, h_entitled);
-
-   seq_printf(m, group=%ld\n, (h_aggregation  2 * 8)  0x);
-
-   seq_printf(m, system_active_processors=%ld\n,
-  (h_resource  0 * 8)  0x);
-
-   /* pool related entries are apropriate for shared configs */
-   if (lppaca[0].shared_proc) {
-
-   h_pic(pool_idle_time, pool_procs);
-
-   seq_printf(m, pool=%ld\n,
-  (h_aggregation  0 * 8)  0x);
-
-   /* report pool_capacity in percentage */
-   seq_printf(m, pool_capacity=%ld\n,
-  ((h_resource  2 * 8)  0x) * 100);
-
-   seq_printf(m, pool_idle_time=%ld\n, pool_idle_time);
-
-   seq_printf(m, pool_num_procs=%ld\n, pool_procs);
-   }
-
-   seq_printf(m, unallocated_capacity_weight=%ld\n,
-  (h_resource  4 * 8)  0xFF);
-
-   seq_printf(m, capacity_weight=%ld\n,
-  (h_resource  5 * 8)  0xFF);
-
-   

[PATCH 02/16 v3] powerpc: Split processor entitlement retrieval and gathering to helper routines

2008-07-04 Thread Robert Jennings
From: Nathan Fotenot [EMAIL PROTECTED]

Split the retrieval and setting of processor entitlement and weight into
helper routines.  This also removes the printing of the raw values
returned from h_get_ppp, the values are already parsed and printed.

Signed-off-by: Nathan Fontenot [EMAIL PROTECTED]
Signed-off-by: Robert Jennings [EMAIL PROTECTED]

---
 arch/powerpc/kernel/lparcfg.c |  168 ++---
 1 file changed, 90 insertions(+), 78 deletions(-)

Index: b/arch/powerpc/kernel/lparcfg.c
===
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
@@ -167,7 +167,8 @@ static unsigned int h_get_ppp(unsigned l
return rc;
 }
 
-static void h_pic(unsigned long *pool_idle_time, unsigned long *num_procs)
+static unsigned h_pic(unsigned long *pool_idle_time,
+ unsigned long *num_procs)
 {
unsigned long rc;
unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
@@ -176,6 +177,53 @@ static void h_pic(unsigned long *pool_id
 
*pool_idle_time = retbuf[0];
*num_procs = retbuf[1];
+
+   return rc;
+}
+
+/*
+ * parse_ppp_data
+ * Parse out the data returned from h_get_ppp and h_pic
+ */
+static void parse_ppp_data(struct seq_file *m)
+{
+   unsigned long h_entitled, h_unallocated;
+   unsigned long h_aggregation, h_resource;
+   int rc;
+
+   rc = h_get_ppp(h_entitled, h_unallocated, h_aggregation,
+  h_resource);
+   if (rc)
+   return;
+
+   seq_printf(m, partition_entitled_capacity=%ld\n, h_entitled);
+   seq_printf(m, group=%ld\n, (h_aggregation  2 * 8)  0x);
+   seq_printf(m, system_active_processors=%ld\n,
+  (h_resource  0 * 8)  0x);
+
+   /* pool related entries are apropriate for shared configs */
+   if (lppaca[0].shared_proc) {
+   unsigned long pool_idle_time, pool_procs;
+
+   seq_printf(m, pool=%ld\n, (h_aggregation  0 * 8)  0x);
+
+   /* report pool_capacity in percentage */
+   seq_printf(m, pool_capacity=%ld\n,
+  ((h_resource  2 * 8)  0x) * 100);
+
+   rc = h_pic(pool_idle_time, pool_procs);
+   if (! rc) {
+   seq_printf(m, pool_idle_time=%ld\n, pool_idle_time);
+   seq_printf(m, pool_num_procs=%ld\n, pool_procs);
+   }
+   }
+
+   seq_printf(m, unallocated_capacity_weight=%ld\n,
+  (h_resource  4 * 8)  0xFF);
+
+   seq_printf(m, capacity_weight=%ld\n, (h_resource  5 * 8)  0xFF);
+   seq_printf(m, capped=%ld\n, (h_resource  6 * 8)  0x01);
+   seq_printf(m, unallocated_capacity=%ld\n, h_unallocated);
 }
 
 #define SPLPAR_CHARACTERISTICS_TOKEN 20
@@ -302,60 +350,11 @@ static int pseries_lparcfg_data(struct s
partition_active_processors = lparcfg_count_active_processors();
 
if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
-   unsigned long h_entitled, h_unallocated;
-   unsigned long h_aggregation, h_resource;
-   unsigned long pool_idle_time, pool_procs;
-   unsigned long purr;
-
-   h_get_ppp(h_entitled, h_unallocated, h_aggregation,
- h_resource);
-
-   seq_printf(m, R4=0x%lx\n, h_entitled);
-   seq_printf(m, R5=0x%lx\n, h_unallocated);
-   seq_printf(m, R6=0x%lx\n, h_aggregation);
-   seq_printf(m, R7=0x%lx\n, h_resource);
-
-   purr = get_purr();
-
/* this call handles the ibm,get-system-parameter contents */
parse_system_parameter_string(m);
+   parse_ppp_data(m);
 
-   seq_printf(m, partition_entitled_capacity=%ld\n, h_entitled);
-
-   seq_printf(m, group=%ld\n, (h_aggregation  2 * 8)  0x);
-
-   seq_printf(m, system_active_processors=%ld\n,
-  (h_resource  0 * 8)  0x);
-
-   /* pool related entries are apropriate for shared configs */
-   if (lppaca[0].shared_proc) {
-
-   h_pic(pool_idle_time, pool_procs);
-
-   seq_printf(m, pool=%ld\n,
-  (h_aggregation  0 * 8)  0x);
-
-   /* report pool_capacity in percentage */
-   seq_printf(m, pool_capacity=%ld\n,
-  ((h_resource  2 * 8)  0x) * 100);
-
-   seq_printf(m, pool_idle_time=%ld\n, pool_idle_time);
-
-   seq_printf(m, pool_num_procs=%ld\n, pool_procs);
-   }
-
-   seq_printf(m, unallocated_capacity_weight=%ld\n,
-  (h_resource  4 * 8)  0xFF);
-
-   seq_printf(m, capacity_weight=%ld\n,
-  (h_resource  5 * 8)  0xFF);
-
-   seq_printf(m,