Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 305272 Details for
Bug 445422
Feature: allow panic on softlockup warnings
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
RHEL5 fix for this issue
445422.patch (text/plain), 3.23 KB, created by
Prarit Bhargava
on 2008-05-13 17:42:21 UTC
(
hide
)
Description:
RHEL5 fix for this issue
Filename:
MIME Type:
Creator:
Prarit Bhargava
Created:
2008-05-13 17:42:21 UTC
Size:
3.23 KB
patch
obsolete
>Backport of Ingo's panic on softlockups patch, available here: > >http://people.redhat.com/mingo/softlockup-patches/softlockup-allow-panic-on-lockup.patch > >I didn't backport the CONFIG option in Ingo's patch -- I don't feel it is >necessary to include it in RHEL (in fact, I'm not so sure it's needed >upstream). > >Default behaviour is disabled. > >Successfully tested by me. > >Resolves BZ 445422. > >diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt >index bd4e2a9..234faba 100644 >--- a/Documentation/kernel-parameters.txt >+++ b/Documentation/kernel-parameters.txt >@@ -1628,6 +1628,9 @@ running once the system is up. > sonycd535= [HW,CD] > Format: <io>[,<irq>] > >+ softlockup_panic= >+ [KNL] Should the soft-lockup detector generate panics. >+ > sonypi.*= [HW] Sony Programmable I/O Control Device driver > See Documentation/sonypi.txt > >diff --git a/include/linux/sched.h b/include/linux/sched.h >index 4bf2f47..7a81564 100644 >--- a/include/linux/sched.h >+++ b/include/linux/sched.h >@@ -221,7 +221,8 @@ extern void softlockup_tick(struct pt_regs *regs); > extern void spawn_softlockup_task(void); > extern void touch_softlockup_watchdog(void); > extern void touch_all_softlockup_watchdogs(void); >-extern int softlockup_thresh; >+extern unsigned int softlockup_panic; >+extern unsigned long softlockup_thresh; > #else > static inline unsigned long softlockup_get_next_event(void) > { >diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h >index 463aca2..0b6258f 100644 >--- a/include/linux/sysctl.h >+++ b/include/linux/sysctl.h >@@ -159,6 +159,7 @@ enum > KERN_LOCK_STAT=78, /* int: enable lock statistics */ > KERN_PROVE_LOCKING=79, /* int: enable lock dependancy validation */ > KERN_SOFTLOCKUP_THRESH=80, /* int: min time to report softlockups */ >+ KERN_SOFTLOCKUP_PANIC=81, /* int: panic on softlockup */ > }; > > >diff --git a/kernel/softlockup.c b/kernel/softlockup.c >index c9aad28..b942e11 100644 >--- a/kernel/softlockup.c >+++ b/kernel/softlockup.c >@@ -22,7 +22,21 @@ static DEFINE_PER_CPU(unsigned long, print_timestamp); > static DEFINE_PER_CPU(struct task_struct *, watchdog_task); > > static int did_panic = 0; >-int softlockup_thresh = 10; >+unsigned long softlockup_thresh = 10; >+ >+/* >+ * Should we panic (and reboot, if panic_timeout= is set) when a >+ * soft-lockup occurs: >+ */ >+unsigned int __read_mostly softlockup_panic = 0; >+ >+static int __init softlockup_panic_setup(char *str) >+{ >+ softlockup_panic = simple_strtoul(str, NULL, 0); >+ >+ return 1; >+} >+__setup("softlockup_panic=", softlockup_panic_setup); > > static int > softlock_panic(struct notifier_block *this, unsigned long event, void *ptr) >@@ -111,6 +125,8 @@ void softlockup_tick(struct pt_regs *regs) > dump_stack(); > spin_unlock(&print_lock); > >+ if (softlockup_panic) >+ panic("softlockup: hung tasks"); > } > > /* >diff --git a/kernel/sysctl.c b/kernel/sysctl.c >index 7a5ac51..0913b72 100644 >--- a/kernel/sysctl.c >+++ b/kernel/sysctl.c >@@ -809,6 +809,16 @@ static ctl_table kern_table[] = { > .extra1 = &one, > .extra2 = &sixty, > }, >+ { >+ .ctl_name = KERN_SOFTLOCKUP_PANIC, >+ .procname = "softlockup_panic", >+ .data = &softlockup_panic, >+ .maxlen = sizeof(int), >+ .mode = 0644, >+ .proc_handler = &proc_dointvec, >+ .extra1 = &zero, >+ .extra2 = &one, >+ }, > #endif > #ifdef CONFIG_COMPAT > {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 445422
: 305272