linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2.5] ACPI_HT_ONLY acpismp=force
@ 2003-06-25 20:18 Hugh Dickins
  2003-06-25 20:20 ` [PATCH 2.4] " Hugh Dickins
  0 siblings, 1 reply; 4+ messages in thread
From: Hugh Dickins @ 2003-06-25 20:18 UTC (permalink / raw)
  To: Grover, Andrew; +Cc: Arjan van de Ven, Andrew Morton, linux-kernel

What's the point of bootparam "acpismp=force"?  A way to change
your mind if you just said "acpi=off"?  A hurdle to jump to get
CONFIG_ACPI_HT_ONLY to do what you ask?  2.4.18 used to need it to
enable HT, but not recent releases.  It can't configure in what's
not there, and now serves only to confuse: kill it.

And you can't enable HyperThreading if you don't call acpi_boot_init
in the CONFIG_ACPI_HT_ONLY case.  But allow "acpi=off" to disable
that; and let acpi_disabled be 1 if CONFIG_ACPI is not defined.

Sorry, bootparam "noht" remains broken: it's currently a way of
erasing the "ht" flag from cpuinfo, and setting smp_num_siblings to
1 even when it should say 2.  Please, someone who knows their way
around the ACPI table handling fix it (it should be selecting one
from each pair in either acpi_boot_init), or else we just remove it.

--- 2.5.73/arch/i386/kernel/setup.c	Mon Jun 23 14:59:00 2003
+++ linux/arch/i386/kernel/setup.c	Wed Jun 25 20:00:02 2003
@@ -61,10 +61,10 @@
 unsigned long mmu_cr4_features;
 EXPORT_SYMBOL_GPL(mmu_cr4_features);
 
-#ifdef CONFIG_ACPI_HT_ONLY
-int acpi_disabled = 1;
-#else
+#ifdef CONFIG_ACPI
 int acpi_disabled = 0;
+#else
+int acpi_disabled = 1;
 #endif
 EXPORT_SYMBOL(acpi_disabled);
 
@@ -519,10 +519,6 @@
 		if (c == ' ' && !memcmp(from, "acpi=off", 8))
 			acpi_disabled = 1;
 
-		/* "acpismp=force" turns on ACPI again */
-		else if (!memcmp(from, "acpismp=force", 14))
-			acpi_disabled = 0;
-
 		/*
 		 * highmem=size forces highmem to be exactly 'size' bytes.
 		 * This works even on boxes that have no highmem otherwise.
@@ -977,13 +973,16 @@
 	generic_apic_probe(*cmdline_p);
 #endif	
 
-#ifdef CONFIG_ACPI_BOOT
+#if defined(CONFIG_ACPI_BOOT) || defined(CONFIG_ACPI_HT_ONLY)
 	/*
 	 * Parse the ACPI tables for possible boot-time SMP configuration.
 	 */
 	if (!acpi_disabled)
 		acpi_boot_init();
 #endif
+#ifdef CONFIG_ACPI_HT_ONLY
+	acpi_disabled = 1;
+#endif
 #ifdef CONFIG_X86_LOCAL_APIC
 	if (smp_found_config)
 		get_smp_config();
--- 2.5.73/drivers/acpi/Kconfig	Mon Jun 23 14:59:01 2003
+++ linux/drivers/acpi/Kconfig	Wed Jun 25 20:00:02 2003
@@ -49,9 +49,6 @@
 	  Full ACPI support (CONFIG_ACPI) is preferred.  Use this option 
 	  only if you wish to limit ACPI's role to processor enumeration.
 
-	  In this configuration, ACPI defaults to off. It must be enabled
-	  on the command-line with the "acpismp=force" option.
-
 config ACPI_BOOT
 	bool
 	depends on IA64 && (!IA64_HP_SIM || IA64_SGI_SN) || X86 && ACPI && !ACPI_HT_ONLY


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

* [PATCH 2.4] ACPI_HT_ONLY acpismp=force
  2003-06-25 20:18 [PATCH 2.5] ACPI_HT_ONLY acpismp=force Hugh Dickins
@ 2003-06-25 20:20 ` Hugh Dickins
  0 siblings, 0 replies; 4+ messages in thread
From: Hugh Dickins @ 2003-06-25 20:20 UTC (permalink / raw)
  To: Grover, Andrew
  Cc: Arjan van de Ven, Andrew Morton, Marcelo Tosatti, linux-kernel

What's the point of bootparam "acpismp=force"?  A way to change
your mind if you just said "acpi=off"?  A hurdle to jump to get
CONFIG_ACPI_HT_ONLY to do what you ask?  2.4.18 used to need it to
enable HT, but not recent releases.  It can't configure in what's
not there, and now serves only to confuse: kill it.

2.4.22-bk already has a cset to call acpi_boot_init
in the CONFIG_ACPI_HT_ONLY case.  But allow "acpi=off" to disable
that; and let acpi_disabled be 1 if CONFIG_ACPI is not defined.

Sorry, bootparam "noht" remains broken: it's currently a way of
erasing the "ht" flag from cpuinfo, and setting smp_num_siblings to
1 even when it should say 2.  Please, someone who knows their way
around the ACPI table handling fix it (it should be selecting one
from each pair in either acpi_boot_init), or else we just remove it.

--- 2.4.22-bk/Documentation/Configure.help	Wed Jun 25 14:00:53 2003
+++ linux/Documentation/Configure.help	Wed Jun 25 20:27:12 2003
@@ -18638,9 +18638,6 @@
   Full ACPI support (CONFIG_ACPI) is preferred.  Use this option
   only if you wish to limit ACPI's role to processor enumeration.
 
-  In this configuration, ACPI defaults to off. It must be enabled
-  on the command-line with the "acpismp=force" option.
-
 Enable ACPI 2.0 with errata 1.3
 CONFIG_ACPI20
   Enable support for the 2.0 version of the ACPI interpreter.  See the
--- 2.4.22-bk/Documentation/kernel-parameters.txt	Fri Jun 20 23:53:32 2003
+++ linux/Documentation/kernel-parameters.txt	Wed Jun 25 20:27:12 2003
@@ -70,8 +70,6 @@
 
 	acpi=		[HW,ACPI] Advanced Configuration and Power Interface 
 
-	acpismp=force	[IA-32] Early setup parse and use ACPI SMP table.
- 
 	ad1816=		[HW,SOUND]
 
 	ad1848=		[HW,SOUND]
--- 2.4.22-bk/arch/i386/kernel/setup.c	Wed Jun 25 14:00:53 2003
+++ linux/arch/i386/kernel/setup.c	Wed Jun 25 20:27:12 2003
@@ -174,10 +174,10 @@
 static int disable_x86_ht __initdata = 0;
 static u32 disabled_x86_caps[NCAPINTS] __initdata = { 0 };
 
-#ifdef CONFIG_ACPI_HT_ONLY
-int acpi_disabled __initdata = 1;
-#else
+#ifdef CONFIG_ACPI
 int acpi_disabled __initdata = 0;
+#else
+int acpi_disabled __initdata = 1;
 #endif
 
 extern int blk_nohighio;
@@ -811,10 +811,6 @@
 		else if (!memcmp(from, "acpi=off", 8))
 			acpi_disabled = 1;
 
-		/* "acpismp=force" turns on ACPI again */
-		else if (!memcmp(from, "acpismp=force", 13))
-			acpi_disabled = 0;
-
 		/*
 		 * highmem=size forces highmem to be exactly 'size' bytes.
 		 * This works even on boxes that have no highmem otherwise.
@@ -1163,13 +1159,16 @@
 	smp_alloc_memory(); /* AP processor realmode stacks in low memory*/
 #endif
 	paging_init();
-#ifdef CONFIG_ACPI
+#if defined(CONFIG_ACPI_BOOT) || defined(CONFIG_ACPI_HT_ONLY)
 	/*
 	 * Parse the ACPI tables for possible boot-time SMP configuration.
 	 */
 	if (!acpi_disabled)
 		acpi_boot_init();
 #endif
+#ifdef CONFIG_ACPI_HT_ONLY
+	acpi_disabled = 1;
+#endif
 #ifdef CONFIG_X86_LOCAL_APIC
 	/*
 	 * get boot-time SMP configuration:
--- 2.4.22-bk/include/linux/acpi.h	Mon Jun 23 14:51:54 2003
+++ linux/include/linux/acpi.h	Wed Jun 25 20:27:12 2003
@@ -37,7 +37,7 @@
 #include <asm/acpi.h>
 
 
-#ifdef CONFIG_ACPI_BOOT
+#ifdef CONFIG_ACPI
 
 enum acpi_irq_model_id {
 	ACPI_IRQ_MODEL_PIC = 0,


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

* Re: [PATCH 2.5] ACPI_HT_ONLY acpismp=force
  2003-06-25 20:53 ` [PATCH 2.5] " Andi Kleen
@ 2003-06-25 22:29   ` Hugh Dickins
  0 siblings, 0 replies; 4+ messages in thread
From: Hugh Dickins @ 2003-06-25 22:29 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel

On 25 Jun 2003, Andi Kleen wrote:
> Hugh Dickins <hugh@veritas.com> writes:
> 
> > What's the point of bootparam "acpismp=force"?  A way to change
> > your mind if you just said "acpi=off"?  A hurdle to jump to get
> > CONFIG_ACPI_HT_ONLY to do what you ask?  2.4.18 used to need it to
> > enable HT, but not recent releases.  It can't configure in what's
> > not there, and now serves only to confuse: kill it.
> 
> There are some boxes that don't work with the new ACPI code, but need
> minimal acpi parsing for hyperthreaded CPUs etc.
> 
> To get these still to work the compatibility option is offered.
> 
> Basically it's another safety net. Of course it would be better
> to make new ACPI work everywhere, but it's quite difficult.
> For 2.4 it's better to have the fallback.

Sure, I don't contest that.  The patch isn't removing that fallback,
it's removing the need to say "acpismp=force" to get the fallback to
do anything at all - why demand both a config option and a bootparam?

And if there are yet others which go wrong with that fallback,
it allows "acpi=off" to boot on those too.

Whether that compatibility code should now be subject to this new
config option is questionable; but I don't propose to change that.

Hugh


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

* Re: [PATCH 2.5] ACPI_HT_ONLY acpismp=force
       [not found] <Pine.LNX.4.44.0306252112180.1636-100000@localhost.localdomain.suse.lists.linux.kernel>
@ 2003-06-25 20:53 ` Andi Kleen
  2003-06-25 22:29   ` Hugh Dickins
  0 siblings, 1 reply; 4+ messages in thread
From: Andi Kleen @ 2003-06-25 20:53 UTC (permalink / raw)
  To: Hugh Dickins; +Cc: linux-kernel

Hugh Dickins <hugh@veritas.com> writes:

> What's the point of bootparam "acpismp=force"?  A way to change
> your mind if you just said "acpi=off"?  A hurdle to jump to get
> CONFIG_ACPI_HT_ONLY to do what you ask?  2.4.18 used to need it to
> enable HT, but not recent releases.  It can't configure in what's
> not there, and now serves only to confuse: kill it.

There are some boxes that don't work with the new ACPI code, but need
minimal acpi parsing for hyperthreaded CPUs etc.

To get these still to work the compatibility option is offered.

Basically it's another safety net. Of course it would be better
to make new ACPI work everywhere, but it's quite difficult.
For 2.4 it's better to have the fallback.

-Andi

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

end of thread, other threads:[~2003-06-25 22:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-25 20:18 [PATCH 2.5] ACPI_HT_ONLY acpismp=force Hugh Dickins
2003-06-25 20:20 ` [PATCH 2.4] " Hugh Dickins
     [not found] <Pine.LNX.4.44.0306252112180.1636-100000@localhost.localdomain.suse.lists.linux.kernel>
2003-06-25 20:53 ` [PATCH 2.5] " Andi Kleen
2003-06-25 22:29   ` Hugh Dickins

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).