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  linux-hardening  linux-cve-announce  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:	Fri, 13 Mar 2009 02:04:58 +0100
From:	Uwe Kleine-König 
	<u.kleine-koenig@...gutronix.de>
To:	Thomas Gleixner <tglx@...utronix.de>
Cc:	LKML <linux-kernel@...r.kernel.org>,
	rt-users <linux-rt-users@...r.kernel.org>,
	Ingo Molnar <mingo@...e.hu>,
	Steven Rostedt <rostedt@...dmis.org>,
	Peter Zijlstra <peterz@...radead.org>,
	Carsten Emde <ce@...g.ch>, Clark Williams <williams@...hat.com>
Subject: some ARM fixes for 2.6.29-rc7-rt1

Hello,

On Thu, Mar 12, 2009 at 08:17:50PM +0100, Thomas Gleixner wrote:
> We are pleased to announce the next update to our new preempt-rt
> series. It contains only one new patch:
>    
>    - port forward to 2.6.29-rc7
>    - disable CONFIG_MAXCPUS for now (undebugged runtime bug)
>    - fix CONFIG_HIGHMEM problems
>    - fix netfilter problems
>    - make debugobjects -rt safe
>    - various build fixes
on top of 2.6.29-rc7-rc1 I did some ARM related fixes that you can find
at

	git://git.pengutronix.de/git/ukl/linux-2.6.git v2.6.29-rc7-rt1-pu

The top commit currently isn't pretty as it contains several independant
fixes.  Some of them are netX specific so you probably don't need them,
but they shouldn't hurt you either.

I will update this branch as I continue working in a non-fast-forward
manner.  I use TopGit to manage this branch, you might want to use it,
too, if you intend to follow my work.

My status quo is:

	Testing tracer sched_switch: PASSED
	Testing tracer function: PASSED
	Testing tracer irqsoff: .. no entries found ..FAILED!
	Testing tracer preemptoff: .. no entries found ..FAILED!
	Testing tracer preemptirqsoff: .. no entries found ..<4>------------[ cut here ]------------
	WARNING: at /ptx/work/octopus/WORK_2_A/ukl/gsrc/linux-2.6/kernel/trace/trace.c:683 warn_slowpath+0x18/0xa0()
	Modules linked in:
	[<c0244d40>] (dump_stack+0x0/0x18) from [<c003787c>] (warn_slowpath+0x6c/0xa0)
	[<c0037810>] (warn_slowpath+0x0/0xa0) from [<c00750d0>] (tracing_start+0x60/0xdc)
	 r3:ffffffff r2:00000000
	 r7:c074aaf0 r6:c0748a0c r5:60000013 r4:c074aac8
	[<c0075070>] (tracing_start+0x0/0xdc) from [<c0076430>] (trace_selftest_startup_preemptirqsoff+0x1ac/0x1d8)
	 r5:c1c1a000 r4:ffffffff
	[<c0076284>] (trace_selftest_startup_preemptirqsoff+0x0/0x1d8) from [<c00760c4>] (register_tracer+0x118/0x240)
	[<c0075fac>] (register_tracer+0x0/0x240) from [<c000ebbc>] (init_irqsoff_tracer+0x24/0x38)
	 r7:c000eb98 r6:00000000 r5:c001c44c r4:c001c2b8
	[<c000eb98>] (init_irqsoff_tracer+0x0/0x38) from [<c00232c4>] (__exception_text_end+0x5c/0x1a4)
	[<c0023268>] (__exception_text_end+0x0/0x1a4) from [<c00085a4>] (kernel_init+0x90/0x1c0)
	 r8:00000000 r7:00000000 r6:00000000 r5:c001c44c r4:c001c2b8
	[<c0008514>] (kernel_init+0x0/0x1c0) from [<c003aebc>] (do_exit+0x0/0x798)
	 r5:00000000 r4:00000000
	---[ end trace da227214a82491b7 ]---
	FAILED!

The warning is triggered here because tracing_start is called twice in
trace_selftest_startup_preemptirqsoff's error path[1].

I researched for some time now why the tracers doesn't pass the
self-tests, but without success.  It's bed time and any hints are
welcome.

Other than that my machine boots and reports from time to time

	scheduling while atomic

and

	sleeping function called from invalid context at kernel/rtmutex.c:683

Both errors probably happen because some spin_locks need to be converted
to raw_spin_locks.  Will look later.

I provide this uncooked state to prevent duplicate work, so please
excuse the bad code and commit history.  If it upsets you, please send
patches :-)

Best regards
Uwe

[1] if trace_test_buffer sets count = 0 or returns != 0 in
kernel/trace/trace_selftest.c:440, the code flow is:

	tracing_start()
	goto out;

	...
out:
	trace->reset(tr);
	tracing_start();

I think the last tracing_start is wrong, but I didn't check deeply.

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ