linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] x86/apic: Avoid wrong warning when parsing 'apic=' in X86-32 case.
@ 2017-11-20 13:27 Dou Liyang
  2017-11-20 13:27 ` [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver Dou Liyang
  2017-11-20 13:27 ` [PATCH 3/3] x86/apic: Make default_acpi_madt_oem_check void Dou Liyang
  0 siblings, 2 replies; 5+ messages in thread
From: Dou Liyang @ 2017-11-20 13:27 UTC (permalink / raw)
  To: linux-kernel, x86; +Cc: tglx, mingo, hpa, corbet, peterz, bp, Dou Liyang

There are two consumers of apic=:
  apic_set_verbosity() for setting the APIC debug level;
  parse_apic() for registering APIC driver by hand.

In X86-32 arch, when kernel was booted up with 'apic=bigsmp' in command
line, early_param would warn like that:

...
[    0.000000] APIC Verbosity level bigsmp not recognised use apic=verbose or apic=debug
[    0.000000] Malformed early option 'apic'
...

This is a mistake and noise.

Wrap the warning code in CONFIG_X86_64 case to avoid this.

Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
---
 arch/x86/kernel/apic/apic.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 6e272f3..880441f 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -2626,11 +2626,13 @@ static int __init apic_set_verbosity(char *arg)
 		apic_verbosity = APIC_DEBUG;
 	else if (strcmp("verbose", arg) == 0)
 		apic_verbosity = APIC_VERBOSE;
+#ifdef CONFIG_X86_64
 	else {
 		pr_warning("APIC Verbosity level %s not recognised"
 			" use apic=verbose or apic=debug\n", arg);
 		return -EINVAL;
 	}
+#endif
 
 	return 0;
 }
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver
  2017-11-20 13:27 [PATCH 1/3] x86/apic: Avoid wrong warning when parsing 'apic=' in X86-32 case Dou Liyang
@ 2017-11-20 13:27 ` Dou Liyang
  2017-11-20 17:21   ` Randy Dunlap
  2017-11-20 13:27 ` [PATCH 3/3] x86/apic: Make default_acpi_madt_oem_check void Dou Liyang
  1 sibling, 1 reply; 5+ messages in thread
From: Dou Liyang @ 2017-11-20 13:27 UTC (permalink / raw)
  To: linux-kernel, x86; +Cc: tglx, mingo, hpa, corbet, peterz, bp, Dou Liyang

There are two consumers of apic=: the APIC debug level and the low
level generic architecture code, but Linux just documented the first
one.

Append the second description.

Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
---
 Documentation/admin-guide/kernel-parameters.txt | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 62436bd..fdd2382 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -328,11 +328,14 @@
 			not play well with APC CPU idle - disable it if you have
 			APC and your system crashes randomly.
 
-	apic=		[APIC,X86-32] Advanced Programmable Interrupt Controller
+	apic=		[APIC,X86] Advanced Programmable Interrupt Controller
 			Change the output verbosity whilst booting
 			Format: { quiet (default) | verbose | debug }
 			Change the amount of debugging information output
 			when initialising the APIC and IO-APIC components.
+			If in X86-32, one more function is registering APIC
+			driver.
+			Examples: apic=bigsmp, bigsmp is an APIC driver name.
 
 	apic_extnmi=	[APIC,X86] External NMI delivery setting
 			Format: { bsp (default) | all | none }
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] x86/apic: Make default_acpi_madt_oem_check void
  2017-11-20 13:27 [PATCH 1/3] x86/apic: Avoid wrong warning when parsing 'apic=' in X86-32 case Dou Liyang
  2017-11-20 13:27 ` [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver Dou Liyang
@ 2017-11-20 13:27 ` Dou Liyang
  1 sibling, 0 replies; 5+ messages in thread
From: Dou Liyang @ 2017-11-20 13:27 UTC (permalink / raw)
  To: linux-kernel, x86; +Cc: tglx, mingo, hpa, corbet, peterz, bp, Dou Liyang

default_acpi_madt_oem_check() is just called when ACPI parse the MADT
table and doesn't return anything.

So make it void. also add identifier names for definition arguments.

Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
---
 arch/x86/include/asm/apic.h     | 2 +-
 arch/x86/kernel/apic/probe_32.c | 5 ++---
 arch/x86/kernel/apic/probe_64.c | 5 ++---
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index a9e57f0..34a24ac 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -492,7 +492,7 @@ static inline unsigned int read_apic_id(void)
 }
 
 extern int default_apic_id_valid(int apicid);
-extern int default_acpi_madt_oem_check(char *, char *);
+extern void default_acpi_madt_oem_check(char *oem_id, char *oem_table_id);
 extern void default_setup_apic_routing(void);
 
 extern u32 apic_default_calc_apicid(unsigned int cpu);
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
index fa22017..60e42b4 100644
--- a/arch/x86/kernel/apic/probe_32.c
+++ b/arch/x86/kernel/apic/probe_32.c
@@ -228,7 +228,7 @@ void __init generic_apic_probe(void)
 }
 
 /* This function can switch the APIC even after the initial ->probe() */
-int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
+void __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 {
 	struct apic **drv;
 
@@ -243,7 +243,6 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 			printk(KERN_INFO "Switched to APIC driver `%s'.\n",
 			       apic->name);
 		}
-		return 1;
+		return;
 	}
-	return 0;
 }
diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
index c303054..a7a88f6 100644
--- a/arch/x86/kernel/apic/probe_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -53,7 +53,7 @@ void apic_send_IPI_self(int vector)
 	__default_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
 }
 
-int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
+void __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 {
 	struct apic **drv;
 
@@ -64,8 +64,7 @@ int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 				pr_info("Setting APIC routing to %s.\n",
 					apic->name);
 			}
-			return 1;
+			return;
 		}
 	}
-	return 0;
 }
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver
  2017-11-20 13:27 ` [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver Dou Liyang
@ 2017-11-20 17:21   ` Randy Dunlap
  2017-11-21  1:04     ` Dou Liyang
  0 siblings, 1 reply; 5+ messages in thread
From: Randy Dunlap @ 2017-11-20 17:21 UTC (permalink / raw)
  To: Dou Liyang, linux-kernel, x86; +Cc: tglx, mingo, hpa, corbet, peterz, bp

On 11/20/2017 05:27 AM, Dou Liyang wrote:
> There are two consumers of apic=: the APIC debug level and the low
> level generic architecture code, but Linux just documented the first
> one.
> 
> Append the second description.
> 
> Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
> ---
>  Documentation/admin-guide/kernel-parameters.txt | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 62436bd..fdd2382 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -328,11 +328,14 @@
>  			not play well with APC CPU idle - disable it if you have
>  			APC and your system crashes randomly.
>  
> -	apic=		[APIC,X86-32] Advanced Programmable Interrupt Controller
> +	apic=		[APIC,X86] Advanced Programmable Interrupt Controller
>  			Change the output verbosity whilst booting
>  			Format: { quiet (default) | verbose | debug }
>  			Change the amount of debugging information output
>  			when initialising the APIC and IO-APIC components.
> +			If in X86-32, one more function is registering APIC
> +			driver.
> +			Examples: apic=bigsmp, bigsmp is an APIC driver name.

How about this?

			For X86-32, this can also be used to specify an APIC
			driver name.
			Format: apic=drivername
			Example: apic=bigsmp

>  
>  	apic_extnmi=	[APIC,X86] External NMI delivery setting
>  			Format: { bsp (default) | all | none }
> 


-- 
~Randy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver
  2017-11-20 17:21   ` Randy Dunlap
@ 2017-11-21  1:04     ` Dou Liyang
  0 siblings, 0 replies; 5+ messages in thread
From: Dou Liyang @ 2017-11-21  1:04 UTC (permalink / raw)
  To: Randy Dunlap, linux-kernel, x86; +Cc: tglx, mingo, hpa, corbet, peterz, bp

Hi Randy,

At 11/21/2017 01:21 AM, Randy Dunlap wrote:
> On 11/20/2017 05:27 AM, Dou Liyang wrote:
>> There are two consumers of apic=: the APIC debug level and the low
>> level generic architecture code, but Linux just documented the first
>> one.
>>
>> Append the second description.
>>
>> Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
>> ---
>>  Documentation/admin-guide/kernel-parameters.txt | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
>> index 62436bd..fdd2382 100644
>> --- a/Documentation/admin-guide/kernel-parameters.txt
>> +++ b/Documentation/admin-guide/kernel-parameters.txt
>> @@ -328,11 +328,14 @@
>>  			not play well with APC CPU idle - disable it if you have
>>  			APC and your system crashes randomly.
>>
>> -	apic=		[APIC,X86-32] Advanced Programmable Interrupt Controller
>> +	apic=		[APIC,X86] Advanced Programmable Interrupt Controller
>>  			Change the output verbosity whilst booting
>>  			Format: { quiet (default) | verbose | debug }
>>  			Change the amount of debugging information output
>>  			when initialising the APIC and IO-APIC components.
>> +			If in X86-32, one more function is registering APIC
>> +			driver.
>> +			Examples: apic=bigsmp, bigsmp is an APIC driver name.
>
> How about this?
>
> 			For X86-32, this can also be used to specify an APIC
> 			driver name.
> 			Format: apic=drivername
> 			Example: apic=bigsmp
>

Pretty good! Will use it in the next version.

Thanks.
	dou.
>>
>>  	apic_extnmi=	[APIC,X86] External NMI delivery setting
>>  			Format: { bsp (default) | all | none }
>>
>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-11-21  1:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-20 13:27 [PATCH 1/3] x86/apic: Avoid wrong warning when parsing 'apic=' in X86-32 case Dou Liyang
2017-11-20 13:27 ` [PATCH 2/3] x86/apic: Update the 'apic=' description of setting APIC driver Dou Liyang
2017-11-20 17:21   ` Randy Dunlap
2017-11-21  1:04     ` Dou Liyang
2017-11-20 13:27 ` [PATCH 3/3] x86/apic: Make default_acpi_madt_oem_check void Dou Liyang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).