New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 908726 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Jan 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

kgdb: some easy way to have kgdb override panic_timeout

Project Member Reported by dianders@google.com, Nov 27

Issue description

Ever since commit 5516fd7b92a7 ("debug: prevent entering debug mode on panic/exception.") landed my kgdb workflow has been messed up.

On Chrome OS we always have panic_timeout set to non-zero.

On Chrome OS we don't normally build with kgdb enabled.


...when kernel developers are working on their systems they often build a kernel with kgdb enabled and put it on the device.  ...but since panic_timeout is setup in userspace then this new kernel can't easily disable it.


The ideal for Chrome OS developers would be some CONFIG option that would make kgdb override the panic_timeout.


For now I just revert 5516fd7b92a7 in my local kernel.
 
Summary: kgdb: some easy way to have kgdb override panic_timeout (was: kgdb: some easy way to )
Note that the normal way kernel developers turn on kgdb is with the USE=kgdb flag on their emerge.  That will pull in the config fragment:

https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/eclass/cros-kernel2.eclass#419

AKA:

kgdb_desc="Enable kgdb"
kgdb_config="
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_FRAME_POINTER=y
CONFIG_KGDB=y
CONFIG_KGDB_KDB=y
# CONFIG_RANDOMIZE_BASE is not set
# CONFIG_WATCHDOG is not set
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=1
"""
Cc: briannorris@chromium.org
Posted a proposal w/ message ID "20181210023649.229271-1-dianders@chromium.org", but somehow the LKML mirrors seem to be missing it.  Hrm.


Components: OS>Kernel
Technically...you could just remove the 'kernel.panic = -1' line from /etc/sysctl.d/00-sysctl.conf for everyone, since we stick that in the kernel cmdline already:

https://chromium.googlesource.com/chromiumos/platform/crosutils/+/639a155b78ef2c44980d54d130d7defe180a4b6e/build_kernel_image.sh#274

That way, you control this behavior entirely from your kernel build.

That might make things just a tad more fragile overall, but it could be a decent compromise.

It would probably be wise to double check there's a good regression test for the intended defaults though, if you do that.
Here ya go:

https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1382879

...turns out we have a nice regression test for it.  Running 'tast -verbose run ${IP} kernel.Limits' catches me when I override panic=0 on the kernel command line.
Oooh, a hot off the presses Tast conversion! I recalled we had something somewhere. But then, we also let a ton of kernel autotests die, because nobody was paying attention to them...Glad at least some of the good ones survived.
Project Member

Comment 8 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/1e8c1b619e1b3cbf01f8f004dad2993a779354a5

commit 1e8c1b619e1b3cbf01f8f004dad2993a779354a5
Author: Douglas Anderson <dianders@chromium.org>
Date: Thu Dec 20 21:49:49 2018

tast-tests: Add checking for 'panic_on_oops'

We should also check 'panic_on_oops' in addition to 'panic'.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits

Change-Id: Ib19b4b05c386b7a46071fd12e0aa004f5c8cbc20
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1382881
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/1e8c1b619e1b3cbf01f8f004dad2993a779354a5/src/chromiumos/tast/local/bundles/cros/kernel/limits.go

OK, patches to change this via kernel config are posted:

1399246 1399403 1399247 1399404 1399248 1399406 1399405 1399251 1399250

This includes backports to v3.10 and v3.8 which allow specifying the "panic=" value via kernel config.
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/510120d3e82927a5326ad34e5cc6f092b06dc13b

commit 510120d3e82927a5326ad34e5cc6f092b06dc13b
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 09:59:14 2019

cros-kernel2.eclass: Make sure we don't reboot on panic

Let's try our best to make the kernel not reboot on panic when kgdb is
enabled.  This turns off one of the vectors that could cause the
reboot.  See chromium:908726 for some details.

BUG= chromium:908726 
TEST=Build with kgdb; 'modprobe configs; zgrep PANIC /proc/config.gz'

Change-Id: I4eb9dfb989843ed187373fce660a076d26e1d658
Reviewed-on: https://chromium-review.googlesource.com/1399224
Commit-Ready: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/510120d3e82927a5326ad34e5cc6f092b06dc13b/eclass/cros-kernel2.eclass

Project Member

Comment 11 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-3.8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/07a81dc595f502ae66b38dfb1d96ab19b03d2405

commit 07a81dc595f502ae66b38dfb1d96ab19b03d2405
Author: Jason Baron <jbaron@akamai.com>
Date: Tue Jan 08 13:03:17 2019

BACKPORT: panic: Make panic_timeout configurable

The panic_timeout value can be set via the command line option
'panic=x', or via /proc/sys/kernel/panic, however that is not
sufficient when the panic occurs before we are able to set up
these values. Thus, add a CONFIG_PANIC_TIMEOUT so that we can
set the desired value from the .config.

The default panic_timeout value continues to be 0 - wait
forever. Also adds set_arch_panic_timeout(new_timeout,
arch_default_timeout), which is intended to be used by arches in
arch_setup(). The idea being that the new_timeout is only set if
the user hasn't changed from the arch_default_timeout.

Signed-off-by: Jason Baron <jbaron@akamai.com>
Cc: benh@kernel.crashing.org
Cc: paulus@samba.org
Cc: ralf@linux-mips.org
Cc: mpe@ellerman.id.au
Cc: felipe.contreras@gmail.com
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1a1674daec27c534df409697025ac568ebcee91e.1385418410.git.jbaron@akamai.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit 5800dc3cff87c3a1548382298bb16e1fb4ec7e32)

Conflicts:
   lib/Kconfig.debug
...context diffs.

BUG= chromium:908726 
TEST=tast -verbose run  kernel.Limits, which is part of the CQ.

Change-Id: I56ebdc5e8058cc20313ef2125dd453d6bf09e87b
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399250
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/07a81dc595f502ae66b38dfb1d96ab19b03d2405/include/linux/kernel.h
[modify] https://crrev.com/07a81dc595f502ae66b38dfb1d96ab19b03d2405/lib/Kconfig.debug
[modify] https://crrev.com/07a81dc595f502ae66b38dfb1d96ab19b03d2405/kernel/panic.c

Project Member

Comment 12 by bugdroid1@chromium.org, Jan 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d72526501b8f08f41f081a6dd1574d4f5d3650f3

commit d72526501b8f08f41f081a6dd1574d4f5d3650f3
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 13:03:18 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before the CL that added the
config.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399251
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/d72526501b8f08f41f081a6dd1574d4f5d3650f3/chromeos/config/base.config

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9fbe282c76cd94bb1ef96dedee00bacf711c64bb

commit 9fbe282c76cd94bb1ef96dedee00bacf711c64bb
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 13:03:27 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before this CL.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399404
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/9fbe282c76cd94bb1ef96dedee00bacf711c64bb/chromeos/config/base.config

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-3.10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/de7b33e71ab9fd65cc2f95edbaf07f17983de537

commit de7b33e71ab9fd65cc2f95edbaf07f17983de537
Author: Jason Baron <jbaron@akamai.com>
Date: Tue Jan 08 13:03:20 2019

BACKPORT: panic: Make panic_timeout configurable

The panic_timeout value can be set via the command line option
'panic=x', or via /proc/sys/kernel/panic, however that is not
sufficient when the panic occurs before we are able to set up
these values. Thus, add a CONFIG_PANIC_TIMEOUT so that we can
set the desired value from the .config.

The default panic_timeout value continues to be 0 - wait
forever. Also adds set_arch_panic_timeout(new_timeout,
arch_default_timeout), which is intended to be used by arches in
arch_setup(). The idea being that the new_timeout is only set if
the user hasn't changed from the arch_default_timeout.

Signed-off-by: Jason Baron <jbaron@akamai.com>
Cc: benh@kernel.crashing.org
Cc: paulus@samba.org
Cc: ralf@linux-mips.org
Cc: mpe@ellerman.id.au
Cc: felipe.contreras@gmail.com
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1a1674daec27c534df409697025ac568ebcee91e.1385418410.git.jbaron@akamai.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit 5800dc3cff87c3a1548382298bb16e1fb4ec7e32)

Conflicts:
   lib/Kconfig.debug
...context diffs.

BUG= chromium:908726 
TEST=tast -verbose run  kernel.Limits, which is part of the CQ.

Change-Id: I56ebdc5e8058cc20313ef2125dd453d6bf09e87b
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399405
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/de7b33e71ab9fd65cc2f95edbaf07f17983de537/include/linux/kernel.h
[modify] https://crrev.com/de7b33e71ab9fd65cc2f95edbaf07f17983de537/lib/Kconfig.debug
[modify] https://crrev.com/de7b33e71ab9fd65cc2f95edbaf07f17983de537/kernel/panic.c

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/00e35ac5fb6ca2bb7217ec46d76e65f8643c4b8b

commit 00e35ac5fb6ca2bb7217ec46d76e65f8643c4b8b
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 13:03:21 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before the CL that added the
config.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399406
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/00e35ac5fb6ca2bb7217ec46d76e65f8643c4b8b/chromeos/config/base.config

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-4.19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1fef1f410609d5ebfd7d5d4afc95dd7352b641be

commit 1fef1f410609d5ebfd7d5d4afc95dd7352b641be
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 13:03:24 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before this CL.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399246
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/1fef1f410609d5ebfd7d5d4afc95dd7352b641be/chromeos/config/base.config

Project Member

Comment 17 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/14b83ea6ecd8b1b62fa1a0600087c789880cd2fc

commit 14b83ea6ecd8b1b62fa1a0600087c789880cd2fc
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 16:26:31 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before this CL.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399248
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/14b83ea6ecd8b1b62fa1a0600087c789880cd2fc/chromeos/config/base.config

Project Member

Comment 18 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/da95d1052ed810275f871e99c5f99771b4ca8239

commit da95d1052ed810275f871e99c5f99771b4ca8239
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 16:26:27 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before this CL.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399247
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/da95d1052ed810275f871e99c5f99771b4ca8239/chromeos/config/base.config

Project Member

Comment 19 by bugdroid1@chromium.org, Jan 8

Labels: merge-merged-chromeos-4.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4a052bd3f518ee424a5f11cd5a905da8ff631112

commit 4a052bd3f518ee424a5f11cd5a905da8ff631112
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 16:26:25 2019

CHROMIUM: config: Set panic configs properly

Right now we set the kernel panic configs (kernel.panic and
kernel.panic_on_oops) in several different places.  We've got:
* The kernel config (here).
* The kernel command line (build_kernel_image.sh).
* The 00-sysctl.conf file.

Having it triple-specified is:
* confusing.
* hard to change / override for debugging.
* easy to mess up.

We should just set the kernel config correctly and get rid of all of
the other settings unless we actually need to override things.

We expect no changes as part of this CL except for one benefit where
crashes on VMs at boot (before userspace starts) should behave more
consistently now because VMs didn't use build_kernel_image.sh and what
they used instead (in create_legacy_bootloader_templates.sh) didn't
specify the same thing on the kernel command line.

This is the equivalent of:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config
  ./chromeos/scripts/kernelconfig olddefconfig
...atop a config that was normalized before this CL.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: I948bd58db3f1cf95c31f06ffb0bd7094f295438f
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1399403
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/4a052bd3f518ee424a5f11cd5a905da8ff631112/chromeos/config/base.config

Project Member

Comment 20 by bugdroid1@chromium.org, Jan 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/39266eb3c83853742e0b40279be2dcbb2ec59b68

commit 39266eb3c83853742e0b40279be2dcbb2ec59b68
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 08 22:33:36 2019

chromeos-base: Don't specify 'kernel.panic = -1' in 00-sysctl.conf

We already specify 'panic=-1' on the kernel command line in
'build_kernel_image.sh'.  Having it _also_ in 00-sysctl.conf just
makes it harder for developer to override (like if they want to drop
into kgdb on panic) without any actual benefit.  Specifically if we
had to wait all the way for userspace to set this up then we'd already
be failing to reboot on panic for any panics that happened before
userspace started up.

Let's remove this.  Now developers that want to enable kgdb can just
add "panic=0" to the end of their kernel command line and override the
default one from build_image.

CQ-DEPEND=CL:1382881, CL:1383232
BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits passes unless I override

Change-Id: I6ad7ae1626e31a86636d00fdb8c37cd903a010b3
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1382879
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/39266eb3c83853742e0b40279be2dcbb2ec59b68/chromeos-base/chromeos-base/chromeos-base-0-r146.ebuild
[modify] https://crrev.com/39266eb3c83853742e0b40279be2dcbb2ec59b68/chromeos-base/chromeos-base/files/00-sysctl.conf

Project Member

Comment 22 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/crosutils/+/b26b12f3d15abea2ba46df701d594c5d89eae087

commit b26b12f3d15abea2ba46df701d594c5d89eae087
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 15 07:11:40 2019

build_kernel_image: Don't specify oops=panic and panic=-1

To avoid specifying the same thing in lots of different places, we're
moving to setup the panic behavior in only one place: in the kernel
config.  Let's remove it from the kernel command line.

See the linked bug (chromium:908726) for all the CLs that add this to
all of our kernel configs.  In case someone needs to do this on some
private kernel, they could do:
  echo 'CONFIG_PANIC_TIMEOUT=-1' >> chromeos/config/base.config
  echo 'CONFIG_PANIC_ON_OOPS=y' >> chromeos/config/base.config

NOTE: for older kernels (known to be needed in 3.10 and older) you'll
need an extra cherry-pick for the above config options to work.
Presumably this is why we originally did this on the command line.
Again, see the linked bug.

BUG= chromium:908726 
TEST=tast -verbose run ${IP} kernel.Limits, which is part of the CQ.

Change-Id: Ic008cfe6f1493575f57084d562ab545738524912
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1401477
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/b26b12f3d15abea2ba46df701d594c5d89eae087/build_kernel_image.sh

Status: Fixed (was: Untriaged)
Cc: groeck@chromium.org snanda@chromium.org drinkcat@chromium.org djkurtz@chromium.org smbar...@chromium.org
 Issue 638723  has been merged into this issue.
Project Member

Comment 25 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/docs/+/c8374893d85705fb9301bde6d53fa2e9d046870d

commit c8374893d85705fb9301bde6d53fa2e9d046870d
Author: Douglas Anderson <dianders@chromium.org>
Date: Tue Jan 15 19:19:32 2019

kernel_faq: Errata about kgdb and panic is fixed!

Now just doing the USE=kgdb should get kgdb on panic.  Yay!

BUG= chromium:908726 
TEST=Use kgdb

Change-Id: Ib0baffb8ce5f4395ffeaf959839f1e98b147cc75
Reviewed-on: https://chromium-review.googlesource.com/1412215
Commit-Ready: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>

[modify] https://crrev.com/c8374893d85705fb9301bde6d53fa2e9d046870d/kernel_faq.md

Sign in to add a comment