Patchwork [1/2] Add static fields to ibm,client-architecture call

login
register
mail settings
Submitter jschopp@austin.ibm.com
Date Jan. 14, 2010, 11:01 p.m.
Message ID <1263510116.7445.5.camel@jschopp-laptop>
Download mbox | patch
Permalink /patch/42935/
State Accepted, archived
Commit 28bb9ee13aa0ee4c57dc3568f539cc84920b43aa
Headers show

Comments

jschopp@austin.ibm.com - Jan. 14, 2010, 11:01 p.m.
This patch adds 2 fields to the ibm_architecture_vec array.  

The first of these fields indicates the number of cores which Linux can
boot.  It does not account for SMT, so it may result in cpus assigned to
Linux which cannot be booted.  A second patch follows that dynamically
updates this for SMT.

The second field just indicates that our OS is Linux, and not another
OS.  The system may or may not use this hint to performance tune
settings for Linux.

Sorry if the last version sent out got whitespace munged.  Hopefully
evolution works on this one.

Signed-off-by:Joel Schopp<jschopp@austin.ibm.com>
Benjamin Herrenschmidt - Jan. 15, 2010, 2:51 a.m.
On Thu, 2010-01-14 at 17:01 -0600, Joel Schopp wrote:
> This patch adds 2 fields to the ibm_architecture_vec array.  
> 
> The first of these fields indicates the number of cores which Linux can
> boot.  It does not account for SMT, so it may result in cpus assigned to
> Linux which cannot be booted.  A second patch follows that dynamically
> updates this for SMT.
> 
> The second field just indicates that our OS is Linux, and not another
> OS.  The system may or may not use this hint to performance tune
> settings for Linux.

Patch submission 101...

> Sorry if the last version sent out got whitespace munged.  Hopefully
> evolution works on this one.

The above should be past the signature marker (--) so it doesn't end up
in the changeset comments

> Signed-off-by:Joel Schopp<jschopp@austin.ibm.com>

The marker should be here or the line below:

> Index: linux-2.6.git/arch/powerpc/kernel/prom_init.c
> ===================================================================

Would also end up in the comments.

The rest looks fine.

Cheers,
Ben.

> --- linux-2.6.git.orig/arch/powerpc/kernel/prom_init.c
> +++ linux-2.6.git/arch/powerpc/kernel/prom_init.c
> @@ -654,6 +656,9 @@ static void __init early_cmdline_parse(v
>  #define OV5_CMO			0x00
>  #endif
>  
> +/* Option Vector 6: IBM PAPR hints */
> +#define OV6_LINUX		0x02	/* Linux is our OS */
> +
>  /*
>   * The architecture vector has an array of PVR mask/value pairs,
>   * followed by # option vectors - 1, followed by the option vectors.
> @@ -665,7 +670,7 @@ static unsigned char ibm_architecture_ve
>  	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */
>  	W(0xffffffff), W(0x0f000002),	/* all 2.05-compliant */
>  	W(0xfffffffe), W(0x0f000001),	/* all 2.04-compliant and earlier */
> -	5 - 1,				/* 5 option vectors */
> +	6 - 1,				/* 6 option vectors */
>  
>  	/* option vector 1: processor architectures supported */
>  	3 - 2,				/* length */
> @@ -697,12 +702,24 @@ static unsigned char ibm_architecture_ve
>  	0,				/* don't halt */
>  
>  	/* option vector 5: PAPR/OF options */
> -	5 - 2,				/* length */
> +	13 - 2,				/* length */
>  	0,				/* don't ignore, don't halt */
>  	OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES | OV5_DRCONF_MEMORY |
>  	OV5_DONATE_DEDICATE_CPU | OV5_MSI,
>  	0,
>  	OV5_CMO,
> +	0,
> +	0,
> +	0,
> +	0,
> +	W(NR_CPUS),			/* number of cores supported*/
> +
> +	/* option vector 6: IBM PAPR hints */
> +	4 - 2,				/* length */
> +	0,
> +	0,
> +	OV6_LINUX,
> +
>  };
>  
>  /* Old method - ELF header with PT_NOTE sections */
> 
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
Benjamin Herrenschmidt - Jan. 15, 2010, 2:52 a.m.
Oh and :

> > Signed-off-by:Joel Schopp<jschopp@austin.ibm.com>
                 ^ space     ^ space

Thanks !

Cheers,
Ben.


> The marker should be here or the line below:
> 
> > Index: linux-2.6.git/arch/powerpc/kernel/prom_init.c
> > ===================================================================
> 
> Would also end up in the comments.
> 
> The rest looks fine.
> 
> Cheers,
> Ben.
> 
> > --- linux-2.6.git.orig/arch/powerpc/kernel/prom_init.c
> > +++ linux-2.6.git/arch/powerpc/kernel/prom_init.c
> > @@ -654,6 +656,9 @@ static void __init early_cmdline_parse(v
> >  #define OV5_CMO			0x00
> >  #endif
> >  
> > +/* Option Vector 6: IBM PAPR hints */
> > +#define OV6_LINUX		0x02	/* Linux is our OS */
> > +
> >  /*
> >   * The architecture vector has an array of PVR mask/value pairs,
> >   * followed by # option vectors - 1, followed by the option vectors.
> > @@ -665,7 +670,7 @@ static unsigned char ibm_architecture_ve
> >  	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */
> >  	W(0xffffffff), W(0x0f000002),	/* all 2.05-compliant */
> >  	W(0xfffffffe), W(0x0f000001),	/* all 2.04-compliant and earlier */
> > -	5 - 1,				/* 5 option vectors */
> > +	6 - 1,				/* 6 option vectors */
> >  
> >  	/* option vector 1: processor architectures supported */
> >  	3 - 2,				/* length */
> > @@ -697,12 +702,24 @@ static unsigned char ibm_architecture_ve
> >  	0,				/* don't halt */
> >  
> >  	/* option vector 5: PAPR/OF options */
> > -	5 - 2,				/* length */
> > +	13 - 2,				/* length */
> >  	0,				/* don't ignore, don't halt */
> >  	OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES | OV5_DRCONF_MEMORY |
> >  	OV5_DONATE_DEDICATE_CPU | OV5_MSI,
> >  	0,
> >  	OV5_CMO,
> > +	0,
> > +	0,
> > +	0,
> > +	0,
> > +	W(NR_CPUS),			/* number of cores supported*/
> > +
> > +	/* option vector 6: IBM PAPR hints */
> > +	4 - 2,				/* length */
> > +	0,
> > +	0,
> > +	OV6_LINUX,
> > +
> >  };
> >  
> >  /* Old method - ELF header with PT_NOTE sections */
> > 
> > 
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
>

Patch

Index: linux-2.6.git/arch/powerpc/kernel/prom_init.c
===================================================================
--- linux-2.6.git.orig/arch/powerpc/kernel/prom_init.c
+++ linux-2.6.git/arch/powerpc/kernel/prom_init.c
@@ -654,6 +656,9 @@  static void __init early_cmdline_parse(v
 #define OV5_CMO			0x00
 #endif
 
+/* Option Vector 6: IBM PAPR hints */
+#define OV6_LINUX		0x02	/* Linux is our OS */
+
 /*
  * The architecture vector has an array of PVR mask/value pairs,
  * followed by # option vectors - 1, followed by the option vectors.
@@ -665,7 +670,7 @@  static unsigned char ibm_architecture_ve
 	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */
 	W(0xffffffff), W(0x0f000002),	/* all 2.05-compliant */
 	W(0xfffffffe), W(0x0f000001),	/* all 2.04-compliant and earlier */
-	5 - 1,				/* 5 option vectors */
+	6 - 1,				/* 6 option vectors */
 
 	/* option vector 1: processor architectures supported */
 	3 - 2,				/* length */
@@ -697,12 +702,24 @@  static unsigned char ibm_architecture_ve
 	0,				/* don't halt */
 
 	/* option vector 5: PAPR/OF options */
-	5 - 2,				/* length */
+	13 - 2,				/* length */
 	0,				/* don't ignore, don't halt */
 	OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES | OV5_DRCONF_MEMORY |
 	OV5_DONATE_DEDICATE_CPU | OV5_MSI,
 	0,
 	OV5_CMO,
+	0,
+	0,
+	0,
+	0,
+	W(NR_CPUS),			/* number of cores supported*/
+
+	/* option vector 6: IBM PAPR hints */
+	4 - 2,				/* length */
+	0,
+	0,
+	OV6_LINUX,
+
 };
 
 /* Old method - ELF header with PT_NOTE sections */