Subject: Re: [PATCH 04/16 v3] powerpc: Split retrieval of processor entitlement data into a helper routine

From: Nathan Fontenot <[email-masked]>
Date: Tue, 22 Jul 2008 13:49:41 -0500

Paul Mackerras wrote:
> Robert Jennings writes:
> 
>> Split the retrieval of processor entitlement data returned in the H_GET_PPP
>> hcall into its own helper routine.
> 
> This seems to change the value reported for pool_capacity radically:
> 
>>  		/* report pool_capacity in percentage */
>> -		seq_printf(m, "pool_capacity=%ld\n",
>> -			   ((h_resource >> 2 * 8) & 0xffff) * 100);
>> +		seq_printf(m, "pool_capacity=%d\n", ppp_data.group_num * 100);
> 
> On a Power6 partition here with your patch series applied, I see
> 
> pool_capacity=3277200
> 
> in /proc/ppc64/lparcfg.  Without your patches, I get
> 
> pool_capacity=400
> pool_idle_time=0
> pool_num_procs=0
>
> This looks like an incompatible user-visible change to me, and we
> haven't even changed the lparcfg version number at the beginning of
> the /proc/ppc64/lparcfg output.  Why is the pool_capacity so
> different, and why do the pool_idle_time and pool_num_procs lines
> disappear?
>

ok, three problems, three new patches.

The reporting of pool_capacity was a bug in using the wrong information
reported by h_get_ppp in the patch.  This is in a new patch 4/16.

The failure to report the pool_idle_time and pool_num_procs was due to
an update to h_pic where we started checking the return code of the
h_call for H_PIC.  The values were not reported if the h_call fails,
which on my partition it fails with -10 (H_Authority).  I have reverted
this back to the previous behavior and report the values of pool_idle_time
and pool_num_procs regardless of the h_call return code.  This is
in a new patch 2/16.

Yes, the lparcfg version number should have been updated.  I missed that.
Fixed in a new patch 3/16.

-Nathan 
 
> Regards,
> Paul.