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:	Thu, 12 Mar 2009 21:43:33 +0100
From:	Tim Sander <tim01@...i.informatik.tu-darmstadt.de>
To:	LKML <linux-kernel@...r.kernel.org>,
	rt-users <linux-rt-users@...r.kernel.org>
Subject: Re: [Announce] 2.6.29-rc7-rt1

Hi 

It is great to see that the -rt patchset is moving again.

> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc7-rt1.bz2
This should be 
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc7-rt1.patch.bz2  

As far as i understand this is again for x86. I tried some patches to get the 
ARM platform working as the platform i am working on (phytec i.mx31) is not 
supported by the stable 2.6.26-rt release. The attached patches are for 
reference only as i think some of them are on their way via the pengutronix 
git tree and others are just hacks to get this thing compile. These patches 
enable rt functionality as tested with cyclictest but the kernel is not 
stable, so some pieces are missing.

So my question is, what pieces are missing on the ARM platform to get it working?

Regards
Tim

The following patches are against the 2.6.29-rc4-rt2 in an attempt to get ARM working. 
Subject: [PATCH] add compile fixes to rt patchset for arm

---
 arch/arm/Kconfig                        |   13 +------------
 arch/arm/include/asm/thread_info.h      |    3 ++-
 arch/arm/plat-mxc/include/mach/memory.h |    2 ++
 include/linux/spinlock.h                |    3 ++-
 4 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index dbfdf87..ceb2e01 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -838,18 +838,7 @@ config LOCAL_TIMERS
          accounting to be spread across the timer interval, preventing a
          "thundering herd" at every timer tick.

-config PREEMPT
-       bool "Preemptible Kernel (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
-       help
-         This option reduces the latency of the kernel when reacting to
-         real-time or interactive events by allowing a low priority process to
-         be preempted even if it is in kernel mode executing a system call.
-         This allows applications to run more reliably even when the system is
-         under load.
-
-         Say Y here if you are building a kernel for a desktop, embedded
-         or real-time system.  Say N if you are unsure.
+source kernel/Kconfig.preempt

 config HZ
        int
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
index 68b9ec8..b501541 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
@@ -119,7 +119,8 @@ extern void iwmmxt_task_switch(struct thread_info *);
  * We use bit 30 of the preempt_count to indicate that kernel
  * preemption is occurring.  See <asm/hardirq.h>.
  */
-#define PREEMPT_ACTIVE 0x40000000
+#define PREEMPT_ACTIVE         0x10000000
+/*FIXME TIM #define PREEMPT_ACTIVE     0x40000000*/

 /*
  * thread information flags:
diff --git a/arch/arm/plat-mxc/include/mach/memory.h 
b/arch/arm/plat-mxc/include/mach/memory.h
index 0b80839..b43a536 100644
--- a/arch/arm/plat-mxc/include/mach/memory.h
+++ b/arch/arm/plat-mxc/include/mach/memory.h
@@ -19,4 +19,6 @@
 #define PHYS_OFFSET            UL(0x80000000)
 #endif

+#define arch_is_coherent()     1
+
 #endif /* __ASM_ARCH_MXC_MEMORY_H__ */
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
index c11b3a2..6c9b9b9 100644
--- a/include/linux/spinlock.h
+++ b/include/linux/spinlock.h
@@ -560,7 +560,8 @@ static inline void bit_spin_unlock(int bitnum, unsigned long *addr)
 # ifdef CONFIG_DEBUG_SPINLOCK
        BUG_ON(!test_bit(bitnum, addr));
 # endif
-       clear_bit_unlock(bitnum, addr);
+       //FIXME TIM  clear_bit_unlock(bitnum, addr);
+       clear_bit(bitnum,addr);
 #endif
        __release(bitlock);
 }
--
1.5.6.5

-- ---
 arch/arm/kernel/process.c |    2 +-
 include/linux/spinlock.h  |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index d3ea6fa..8fbf03b 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -167,7 +167,7 @@ void cpu_idle(void)
                        idle();
                leds_event(led_idle_end);
                tick_nohz_restart_sched_tick();
-               preempt_enable_no_resched();
+               __preempt_enable_no_resched();
                schedule();
                preempt_disable();
        }
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
index 6c9b9b9..130fbdd 100644
--- a/include/linux/spinlock.h
+++ b/include/linux/spinlock.h
@@ -93,6 +93,7 @@
 #include <linux/bottom_half.h>
 #include <linux/irqflags.h>
 #include <linux/pickop.h>
+#include <asm/memory.h>

 #include <asm/system.h>

@@ -560,8 +561,7 @@ static inline void bit_spin_unlock(int bitnum, unsigned long *addr)
 # ifdef CONFIG_DEBUG_SPINLOCK
        BUG_ON(!test_bit(bitnum, addr));
 # endif
-       //FIXME TIM  clear_bit_unlock(bitnum, addr);
-       clear_bit(bitnum,addr);
+       clear_bit_unlock(bitnum, addr);
 #endif
        __release(bitlock);
 }
--
1.5.6.5


''=~('(?{'.('._@@[~'^'^-)./^').'"'.('}@@~-]@_^__'^'))-^~<.;;-}').',$/})')
--
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