lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 14 Jul 2008 17:17:05 -0700
From:	mark gross <mgross@...ux.intel.com>
To:	"Jakub W. Jozwicki" <jozwicki@...er.pl>
Cc:	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org, mingo@...e.hu, tglx@...esys.com
Subject: Re: [PATCH 2.6.25.10] pm_qos_params: change spinlock to rwlock

On Sun, Jul 13, 2008 at 03:05:25PM +0200, Jakub W. Jozwicki wrote:
> Sunday, 13 of July 2008 10:28:16 Andrew Morton napisaƂ(a):
> > On Sun, 13 Jul 2008 01:19:19 +0200 "Jakub W. Jozwicki" <jozwicki@...er.pl> 
> wrote:
> > > Concurrent calls to pm_qos_requirement shouldn't block each other. This
> > > patch changes spinlock to rwlock and fixes issues with PREEMPT_RT.
> >
> > "fixes issues" is nowhere near an adequate description.
> >
> > Please provide complete descriptions for kernel patches.  That includes
> > describing the mysterious "issue" in full!
> >
> > Thanks.
> 
> [  114.647010] BUG: sleeping function called from invalid context swapper(0) 
> at kernel/rtmutex.c:742
> [  114.647010] in_atomic():1 [00000001], irqs_disabled():0
> [  114.647010] Pid: 0, comm: swapper Not tainted 2.6.25.10-rtXXX #10
> [  114.647010]  [<c0120fc4>] __might_sleep+0xf1/0xf8
> [  114.647010]  [<c045499c>] __rt_spin_lock+0x24/0x61
> [  114.647010]  [<c04549e1>] rt_spin_lock+0x8/0xa
> [  114.647010]  [<c013ec8d>] pm_qos_requirement+0x10/0x29
> [  114.647010]  [<c038ef36>] menu_select+0x5d/0x7f
> [  114.647010]  [<c038e4d8>] cpuidle_idle_call+0x47/0x9b
> [  114.647010]  [<c038e491>] ? cpuidle_idle_call+0x0/0x9b
> [  114.647010]  [<c01060ff>] cpu_idle+0xaf/0x106
> [  114.647010]  [<c0441c87>] rest_init+0x67/0x69
> [  114.647010]  =======================
> [  115.649517] BUG: sleeping function called from invalid context swapper(0) 
> at kernel/rtmutex.c:742
> [  115.649517] in_atomic():1 [00000001], irqs_disabled():0
> [  115.649517] Pid: 0, comm: swapper Not tainted 2.6.25.10-rtXXX #10
> [  115.649517]  [<c0120fc4>] __might_sleep+0xf1/0xf8
> [  115.649517]  [<c045499c>] __rt_spin_lock+0x24/0x61
> [  115.649517]  [<c04549e1>] rt_spin_lock+0x8/0xa
> [  115.649517]  [<c013ec8d>] pm_qos_requirement+0x10/0x29
> [  115.649517]  [<c038ef36>] menu_select+0x5d/0x7f
> [  115.649517]  [<c038e4d8>] cpuidle_idle_call+0x47/0x9b
> [  115.649517]  [<c038e491>] ? cpuidle_idle_call+0x0/0x9b
> [  115.649517]  [<c01060ff>] cpu_idle+0xaf/0x106
> [  115.649517]  [<c0441c87>] rest_init+0x67/0x69
> [  115.649517]  =======================
> [  116.650040] BUG: sleeping function called from invalid context swapper(0) 
> at kernel/rtmutex.c:742
> [  116.650040] in_atomic():1 [00000001], irqs_disabled():0
> [  116.650040] Pid: 0, comm: swapper Not tainted 2.6.25.10-rtXXX #10
> [  116.650040]  [<c0120fc4>] __might_sleep+0xf1/0xf8
> [  116.650040]  [<c045499c>] __rt_spin_lock+0x24/0x61
> [  116.650040]  [<c04549e1>] rt_spin_lock+0x8/0xa
> [  116.650040]  [<c013ec8d>] pm_qos_requirement+0x10/0x29
> [  116.650040]  [<c038ef36>] menu_select+0x5d/0x7f
> [  116.650040]  [<c038e4d8>] cpuidle_idle_call+0x47/0x9b
> [  116.650040]  [<c038e491>] ? cpuidle_idle_call+0x0/0x9b
> [  116.650040]  [<c01060ff>] cpu_idle+0xaf/0x106
> [  116.650040]  [<c0441c87>] rest_init+0x67/0x69
> [  116.650040]  =======================

Ah, this a PREEMPT_RT only issue.  Let me study up on rwlocks a bit and
get back to you on this.

--mgross

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists