Red Hat Bugzilla – Bug 154100
assertion failrue in semaphore.h caused by perfmon
Last modified: 2007-11-30 17:07:17 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux ia64; en-US; rv:1.7.5) Gecko/20050105 Debian/1.7.5-1
Description of problem:
A perfmon bug was recently uncovered in the mainline kernel. The
function pfm_handle_work() may call down_interruptible() with interrupts
disabled. The kernel is compiled to detect this condition and that triggers
an assertion failure under certain circumstances. The bug can be triggered
by using the HP Caliper tool.
The fix for this problem has been sent to the IA-64 kernel maintainer.
A fix should be posted for RHEL4 once I get access to your latest sources.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. run HP Caliper
Actual Results: kernel: Debug: sleeping function called from invalid context at include/asm/semaphore.h:79
kernel: in_atomic():0[expected: 0], irqs_disabled():1
kernel: Call Trace:
kernel: [<a000000100016a40>] show_stack+0x80/0xa0
kernel: [<a000000100016a90>] dump_stack+0x30/0x60
kernel: [<a000000100063650>] __might_sleep+0x190/0x260
kernel: [<a00000010002a7c0>] pfm_handle_work+0x1e0/0xf00
kernel: [<a000000100017400>] do_notify_resume_user+0x80/0x120
kernel: [<a00000010000f920>] notify_resume_user+0x40/0x60
kernel: [<a00000010000f850>] skip_rbs_switch+0xb0/0xc0
Created attachment 113559 [details]
fixes all outstanding problem with perfmon for RHEL4
This patches fixes ALL know issues with perfmon on RHEL4.
this includes the assertion failures of this report.
Moreover, the patch also fixes the issues reported in bug#136474
The patch adds one new feature:
There are times when new hardware is brought to the market with PMU features
that are very different from the previous generation. When this happens,
certain early-access customers still want the value proposition of a well
linux kernel from a trusted company, but they also want the ability, when
needed, to monitor and improve the performance of their applications using that
trusted kernel on the new processor. For those customers it may not be possible
to wait for the next round of official distro releases to get updated PMU
support in perfmon. In the future perfmon will allow plug-in modules to
update PMU descriptions that will facilitate this kind of operations. In the
meantime, this patch provides a way to plug in an alternate, basic, and GPL'ed
PMU subsystem to help those customers with their monitoring needs or for
specialty work. It can also be used in case of serious unexpected bugs in
Practically, this patch provides a way to register an alternate subsystem with
its own interrupt handler. Mutual exclusion between the two subsystems is
guaranteed,hence no conflict can arise from both subsystem being present.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.