Re: revisiting tunables under Safe Mode menu option

From: Andriy Gapon <avg_at_FreeBSD.org>
Date: Tue, 28 Feb 2012 00:38:56 +0200
on 27/02/2012 21:03 Scott Long said the following:
> 
> On Feb 27, 2012, at 3:45 AM, Andriy Gapon wrote:
> 
>> on 30/01/2012 18:59 Andriy Gapon said the following:
>>> 
>>> First, I think that this proposal/discussion could have been more useful
>>> before the 9.0.  Maybe the RE would be interested in adding another item
>>> to their pre-release checklist: ask developers about what could be
>>> dropped and what should be added to the Safe Mode settings in a new (.0)
>>> release.  Probably the developers should keep the Safe Mode in mind too
>>> when adding new features or making other drastic changes, but the
>>> reminder should be welcome.
>> [snip]
>>> o Since we have a separate ACPI option and because ACPI now is almost a
>>> mandatory thing (and not a significant source of boot troubles), maybe we
>>> could remove the code that automatically disables ACPI in Safe Mode?
>>> 
>>> o hint.apic.0.disabled - APIC code doesn't seem to be a significant
>>> source of boot troubles, like ACPI it has become almost a mandatory
>>> thing.  So maybe we should remove this setting?
> 
> Turning off the APIC turns off SMP in a very efficient, clean manner.  I
> added this not to isolate the APIC code, but to turn off SMP.  That's why
> it's there, and I'd like the ability to turn off SMP to stay there in some
> form.

I think that this is a good idea.

> If there's a better way to disable SMP that doesn't get into problems
> with interrupt delivery, then please propose it.

I think that kern.smp.disabled should be it.

> As for it being mandatory,
> it's really only mandatory for MSI these days, though it used to be required
> for more complex PCIX topologies.
> 
>> [dropped proposals snipped]
>>> o hw.eisa_slot - Looks like something from ancient times.  Probably just 
>>> irrelevant for most systems.
>>> 
> 
> This turns off probes in the ISA ioport space that used to cause problems.
> Why get rid of it?

Just cleaning up what looked like cruft...  I don't believe I heard of any
problem reports like that lately.  But probably you are right and this shouldn't
be removed until eisa is dropped from i386 GENERIC.  Is it time already?
OTOH, it seems that the eisa probe code should not get executed on a non-legacy
system (ACPI present and enabled) unless it has an actual PCI-EISA bridge.
So I am deferring this decision to you.  Please let me know your preference.

> Is its presence causing you problems?

No, no problems (maybe because I never had device eisa in my kernels).

>>> o hint.kbdmux.0.disabled - I do not recall any recent problems with
>>> kbdmux.  In fact disabling it may produce a surprising behavior for a
>>> user if there are multiple keyboards actually attached.
>>> 
> 
> Fair enough, if we're all happy that the kbdmux code has progressed beyond
> this being useful, then get rid of it.  But what's the surprising behavior?

Having two keyboards and one of them not working because it is not an active one.

>>> Just so that the Safe Mode doesn't turn into a NOP I propose to add the
>>> following tunables:
>>> 
>>> o kern.eventtimer.periodic=1 - Use periodic timer to drive clocks just in
>>> case a system has any problems with the default mode.  Example: PR
>>> 164457.
>>> 
>>> o kern.geom.part.check_integrity=0 - Let GPART code be more permissive,
>>> could be useful during upgrades from earlier versions of FreeBSD or when
>>> multi-booting with other OSes.
>>> 
>>> o More?
>>> 
> 
> I suggested before that maybe it's time to expand this "Safe Mode" topic into
> a sub-menu that allows selection of some/all/none of the options.

I completely agree with this suggestion (always did), but unfortunately my forth
and menu.rc skills are weak and my FreeBSD time is short.

Here is an updated patch (with the eisa_slots decision pending):
diff --git a/sys/boot/forth/menu-commands.4th b/sys/boot/forth/menu-commands.4th
index 828a148..416cb85 100644
--- a/sys/boot/forth/menu-commands.4th
+++ b/sys/boot/forth/menu-commands.4th
_at__at_ -62,30 +62,21 _at__at_ marker task-menu-commands.4th
 	-rot 2dup 12 + c! rot    \ replace 'N' with ASCII numeral

 	evaluate 0= if
-		s" hint.apic.0.disabled" unsetenv
+		s" kern.smp.disabled" unsetenv
 		s" hw.ata.ata_dma" unsetenv
 		s" hw.ata.atapi_dma" unsetenv
 		s" hw.ata.wc" unsetenv
 		s" hw.eisa_slots" unsetenv
-		s" hint.kbdmux.0.disabled" unsetenv
+		s" kern.eventtimer.periodic" unsetenv
+		s" kern.geom.part.check_integrity" unsetenv
 	else
-		\
-		\ Toggle ACPI elements if necessary
-		\
-		acpipresent? if acpienabled? if
-			menuacpi _at_ dup 0<> if
-				toggle_menuitem ( N -- N )
-			then
-			drop
-			acpi_disable
-		then then
-
-		s" set hint.apic.0.disabled=1" evaluate
+		s" set kern.smp.disabled=1" evaluate
 		s" set hw.ata.ata_dma=0" evaluate
 		s" set hw.ata.atapi_dma=0" evaluate
 		s" set hw.ata.wc=0" evaluate
 		s" set hw.eisa_slots=0" evaluate
-		s" set hint.kbdmux.0.disabled=1" evaluate
+		s" set kern.eventtimer.periodic=1" unsetenv
+		s" set kern.geom.part.check_integrity=0" unsetenv
 	then

 	menu-redraw

-- 
Andriy Gapon
Received on Mon Feb 27 2012 - 21:39:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:24 UTC