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 231021 Details for
Bug 336541
RHEL5: Add register dump to softlockup warning messages
[?]
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
336541.patch (text/plain), 5.69 KB, created by
Prarit Bhargava
on 2007-10-18 12:52:11 UTC
(
hide
)
Description:
RHEL5 fix for this issue
Filename:
MIME Type:
Creator:
Prarit Bhargava
Created:
2007-10-18 12:52:11 UTC
Size:
5.69 KB
patch
obsolete
>diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/arch/x86_64/kernel/apic.c linux-2.6.18.x86_64/arch/x86_64/kernel/apic.c >--- linux-2.6.18.x86_64.orig/arch/x86_64/kernel/apic.c 2007-10-17 14:47:56.000000000 -0400 >+++ linux-2.6.18.x86_64/arch/x86_64/kernel/apic.c 2007-10-18 08:13:06.000000000 -0400 >@@ -943,7 +943,7 @@ void smp_local_timer_interrupt(struct pt > { > profile_tick(CPU_PROFILING, regs); > #ifdef CONFIG_SMP >- update_process_times(user_mode(regs)); >+ update_process_times(user_mode(regs), regs); > #endif > if (apic_runs_main_timer > 1 && smp_processor_id() == boot_cpu_id) > main_timer_handler(regs); >diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/arch/x86_64/kernel/apic-xen.c linux-2.6.18.x86_64/arch/x86_64/kernel/apic-xen.c >--- linux-2.6.18.x86_64.orig/arch/x86_64/kernel/apic-xen.c 2007-10-17 14:47:56.000000000 -0400 >+++ linux-2.6.18.x86_64/arch/x86_64/kernel/apic-xen.c 2007-10-18 08:13:22.000000000 -0400 >@@ -67,7 +67,7 @@ void smp_local_timer_interrupt(struct pt > profile_tick(CPU_PROFILING, regs); > #ifndef CONFIG_XEN > #ifdef CONFIG_SMP >- update_process_times(user_mode(regs)); >+ update_process_times(user_mode(regs), regs); > #endif > #endif > /* >diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/arch/x86_64/kernel/time.c linux-2.6.18.x86_64/arch/x86_64/kernel/time.c >--- linux-2.6.18.x86_64.orig/arch/x86_64/kernel/time.c 2007-10-17 14:47:56.000000000 -0400 >+++ linux-2.6.18.x86_64/arch/x86_64/kernel/time.c 2007-10-18 08:14:07.000000000 -0400 >@@ -448,7 +448,7 @@ void main_timer_handler(struct pt_regs * > for (i = 0; i < tick_divider; i++) { > do_timer(regs); > #ifndef CONFIG_SMP >- update_process_times(user_mode(regs)); >+ update_process_times(user_mode(regs), regs); > #endif > > /* >diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/include/linux/sched.h linux-2.6.18.x86_64/include/linux/sched.h >--- linux-2.6.18.x86_64.orig/include/linux/sched.h 2007-10-17 14:47:55.000000000 -0400 >+++ linux-2.6.18.x86_64/include/linux/sched.h 2007-10-18 08:16:03.000000000 -0400 >@@ -209,16 +209,16 @@ long io_schedule_timeout(long timeout); > > extern void cpu_init (void); > extern void trap_init(void); >-extern void update_process_times(int user); >+extern void update_process_times(int user, struct pt_regs *regs); > extern void scheduler_tick(void); > > #ifdef CONFIG_DETECT_SOFTLOCKUP >-extern void softlockup_tick(void); >+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); > #else >-static inline void softlockup_tick(void) >+static inline void softlockup_tick(struct pt_regs *regs) > { > } > static inline void spawn_softlockup_task(void) >diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/include/linux/timer.h linux-2.6.18.x86_64/include/linux/timer.h >--- linux-2.6.18.x86_64.orig/include/linux/timer.h 2007-10-17 14:47:55.000000000 -0400 >+++ linux-2.6.18.x86_64/include/linux/timer.h 2007-10-18 08:15:08.000000000 -0400 >@@ -94,7 +94,7 @@ static inline void add_timer(struct time > #define del_singleshot_timer_sync(t) del_timer_sync(t) > > extern void init_timers(void); >-extern void run_local_timers(void); >+extern void run_local_timers(struct pt_regs *regs); > struct hrtimer; > extern int it_real_fn(struct hrtimer *); > >diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/kernel/softlockup.c linux-2.6.18.x86_64/kernel/softlockup.c >--- linux-2.6.18.x86_64.orig/kernel/softlockup.c 2007-10-17 14:47:57.000000000 -0400 >+++ linux-2.6.18.x86_64/kernel/softlockup.c 2007-10-18 08:48:33.000000000 -0400 >@@ -14,6 +14,9 @@ > #include <linux/notifier.h> > #include <linux/module.h> > >+#include <asm/proto.h> >+#include <asm/ptrace.h> >+ > static DEFINE_SPINLOCK(print_lock); > > static DEFINE_PER_CPU(unsigned long, touch_timestamp); >@@ -54,7 +57,7 @@ EXPORT_SYMBOL(touch_all_softlockup_watch > * This callback runs from the timer interrupt, and checks > * whether the watchdog thread has hung or not: > */ >-void softlockup_tick(void) >+void softlockup_tick(struct pt_regs *regs) > { > int this_cpu = smp_processor_id(); > unsigned long touch_timestamp = per_cpu(touch_timestamp, this_cpu); >@@ -82,7 +85,7 @@ void softlockup_tick(void) > spin_lock(&print_lock); > printk(KERN_ERR "BUG: soft lockup detected on CPU#%d!\n", > this_cpu); >- dump_stack(); >+ show_regs(regs); > spin_unlock(&print_lock); > } > } >diff -urNp -X linux-2.6.18.x86_64/Documentation/dontdiff linux-2.6.18.x86_64.orig/kernel/timer.c linux-2.6.18.x86_64/kernel/timer.c >--- linux-2.6.18.x86_64.orig/kernel/timer.c 2007-10-17 14:47:57.000000000 -0400 >+++ linux-2.6.18.x86_64/kernel/timer.c 2007-10-18 08:20:45.000000000 -0400 >@@ -1299,7 +1299,7 @@ static void update_wall_time(void) > * Called from the timer interrupt handler to charge one tick to the current > * process. user_tick is 1 if the tick is user time, 0 for system. > */ >-void update_process_times(int user_tick) >+void update_process_times(int user_tick, struct pt_regs *regs) > { > struct task_struct *p = current; > int cpu = smp_processor_id(); >@@ -1309,7 +1309,7 @@ void update_process_times(int user_tick) > account_user_time(p, jiffies_to_cputime(1)); > else > account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1)); >- run_local_timers(); >+ run_local_timers(regs); > if (rcu_pending(cpu)) > rcu_check_callbacks(cpu, user_tick); > scheduler_tick(); >@@ -1383,10 +1383,10 @@ static void run_timer_softirq(struct sof > /* > * Called by the local, per-CPU timer interrupt on SMP. > */ >-void run_local_timers(void) >+void run_local_timers(struct pt_regs *regs) > { > raise_softirq(TIMER_SOFTIRQ); >- softlockup_tick(); >+ softlockup_tick(regs); > } > > /*
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 336541
:
231021
|
231081
|
231371