public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [ANNOUNCE] 3.0-rt2
@ 2011-07-23 15:13 Thomas Gleixner
  2011-07-23 15:41 ` Kim Leyendecker
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Thomas Gleixner @ 2011-07-23 15:13 UTC (permalink / raw)
  To: LKML; +Cc: linux-rt-users

Dear RT Folks,

I'm pleased to announce the 3.0-rt2 release.

Changes versus 3.0-rt1:

  * mqueue fix (Yoshitake Kobayashi)

  * dca locking fix (Mike Galbraith)

  * trace updates (Carsten Emde)

  * Fixed vprintk wreckage and rcutorture (tglx)

Known issues:

  * Some weird "console=..." commandline + config dependent
    interactions which have been not yet investigated down to their
    root cause. Result in a boot hang. YMMV

Patch against 3.0 can be found here:

  http://www.kernel.org/pub/linux/kernel/projects/rt/patch-3.0-rt2.patch.bz2

The split quilt queue is available at:

  http://www.kernel.org/pub/linux/kernel/projects/rt/patches-3.0-rt2.tar.bz2

Delta patch below.

Thanks,

	tglx
----
 arch/arm/kernel/early_printk.c        |   17 ++----------
 arch/blackfin/kernel/early_printk.c   |    2 -
 arch/microblaze/kernel/early_printk.c |   25 ++----------------
 arch/mips/kernel/early_printk.c       |   10 +++----
 arch/powerpc/kernel/udbg.c            |    6 +---
 arch/sh/kernel/sh_bios.c              |    2 -
 arch/sparc/kernel/setup_32.c          |    1 
 arch/sparc/kernel/setup_64.c          |    8 +++++-
 arch/tile/kernel/early_printk.c       |   26 +++----------------
 arch/um/kernel/early_printk.c         |    8 +++---
 arch/unicore32/kernel/early_printk.c  |   12 +++------
 arch/x86/kernel/early_printk.c        |   28 ---------------------
 drivers/dca/dca-core.c                |    6 ++--
 include/linux/console.h               |    1 
 include/linux/printk.h                |   13 +++++----
 include/linux/rcupdate.h              |    2 -
 include/linux/rcutree.h               |    4 +--
 ipc/mqueue.c                          |    8 ++++--
 kernel/printk.c                       |   45 +++++++++++++++++++++++++---------
 kernel/trace/latency_hist.c           |   21 ++++++++++-----
 kernel/watchdog.c                     |    3 --
 localversion-rt                       |    2 -
 22 files changed, 104 insertions(+), 146 deletions(-)

Index: linux-2.6/arch/x86/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/early_printk.c
+++ linux-2.6/arch/x86/kernel/early_printk.c
@@ -169,31 +169,6 @@ static struct console early_serial_conso
 	.index =	-1,
 };
 
-/* Direct interface for emergencies */
-static struct console *early_console = &early_vga_console;
-int early_console_initialized;
-
-asmlinkage void early_printk(const char *fmt, ...)
-{
-	char buf[512];
-	int n;
-	va_list ap;
-
-	va_start(ap, fmt);
-	n = vscnprintf(buf, sizeof(buf), fmt, ap);
-	early_console->write(early_console, buf, n);
-	va_end(ap);
-}
-
-asmlinkage void early_vprintk(const char *fmt, va_list ap)
-{
-	char buf[512];
-	int n;
-
-	n = vscnprintf(buf, sizeof(buf), fmt, ap);
-	early_console->write(early_console, buf, n);
-}
-
 static inline void early_console_register(struct console *con, int keep_early)
 {
 	if (early_console->index != -1) {
@@ -216,9 +191,8 @@ static int __init setup_early_printk(cha
 	if (!buf)
 		return 0;
 
-	if (early_console_initialized)
+	if (early_console)
 		return 0;
-	early_console_initialized = 1;
 
 	keep = (strstr(buf, "keep") != NULL);
 
Index: linux-2.6/drivers/dca/dca-core.c
===================================================================
--- linux-2.6.orig/drivers/dca/dca-core.c
+++ linux-2.6/drivers/dca/dca-core.c
@@ -101,10 +101,10 @@ static void unregister_dca_providers(voi
 
 	INIT_LIST_HEAD(&unregistered_providers);
 
-	spin_lock_irqsave(&dca_lock, flags);
+	raw_spin_lock_irqsave(&dca_lock, flags);
 
 	if (list_empty(&dca_domains)) {
-		spin_unlock_irqrestore(&dca_lock, flags);
+		raw_spin_unlock_irqrestore(&dca_lock, flags);
 		return;
 	}
 
@@ -116,7 +116,7 @@ static void unregister_dca_providers(voi
 
 	dca_free_domain(domain);
 
-	spin_unlock_irqrestore(&dca_lock, flags);
+	raw_spin_unlock_irqrestore(&dca_lock, flags);
 
 	list_for_each_entry_safe(dca, _dca, &unregistered_providers, node) {
 		dca_sysfs_remove_provider(dca);
Index: linux-2.6/include/linux/printk.h
===================================================================
--- linux-2.6.orig/include/linux/printk.h
+++ linux-2.6/include/linux/printk.h
@@ -88,11 +88,15 @@ int no_printk(const char *fmt, ...)
 	return 0;
 }
 
-extern int early_console_initialized;
-
+#ifdef CONFIG_EARLY_PRINTK
 extern asmlinkage __attribute__ ((format (printf, 1, 2)))
 void early_printk(const char *fmt, ...);
-void early_vprintk(const char *fmt, va_list args);
+extern void printk_kill(void);
+#else
+static inline __attribute__ ((format (printf, 1, 2))) __cold
+void early_printk(const char *s, ...) { }
+static inline void printk_kill(void) { }
+#endif
 
 extern int printk_needs_cpu(int cpu);
 extern void printk_tick(void);
@@ -112,9 +116,6 @@ extern int __printk_ratelimit(const char
 #define printk_ratelimit() __printk_ratelimit(__func__)
 extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
 				   unsigned int interval_msec);
-
-extern void printk_kill(void);
-
 extern int printk_delay_msec;
 extern int dmesg_restrict;
 extern int kptr_restrict;
Index: linux-2.6/include/linux/rcupdate.h
===================================================================
--- linux-2.6.orig/include/linux/rcupdate.h
+++ linux-2.6/include/linux/rcupdate.h
@@ -80,7 +80,7 @@ extern void call_rcu_sched(struct rcu_he
 extern void synchronize_sched(void);
 
 #ifdef CONFIG_PREEMPT_RT_FULL
-# define rcu_barrier_bh()	rcu_barrier()
+# define rcu_barrier_bh		rcu_barrier
 #else
 extern void rcu_barrier_bh(void);
 #endif
Index: linux-2.6/include/linux/rcutree.h
===================================================================
--- linux-2.6.orig/include/linux/rcutree.h
+++ linux-2.6/include/linux/rcutree.h
@@ -84,8 +84,8 @@ extern void rcu_sched_force_quiescent_st
 extern void rcu_bh_force_quiescent_state(void);
 extern long rcu_batches_completed_bh(void);
 #else
-# define rcu_bh_force_quiescent_state()	rcu_force_quiescent_state()
-# define rcu_batches_completed_bh()	rcu_batches_completed()
+# define rcu_bh_force_quiescent_state	rcu_force_quiescent_state
+# define rcu_batches_completed_bh	rcu_batches_completed
 #endif
 
 /* A context switch is a grace period for RCU-sched and RCU-bh. */
Index: linux-2.6/ipc/mqueue.c
===================================================================
--- linux-2.6.orig/ipc/mqueue.c
+++ linux-2.6/ipc/mqueue.c
@@ -841,15 +841,19 @@ static inline void pipelined_receive(str
 		wake_up_interruptible(&info->wait_q);
 		return;
 	}
+	/*
+	 * Keep them in one critical section for PREEMPT_RT:
+	 */
+	preempt_disable_rt();
 	msg_insert(sender->msg, info);
 	list_del(&sender->list);
 	sender->state = STATE_PENDING;
 	wake_up_process(sender->task);
 	smp_wmb();
 	sender->state = STATE_READY;
+	preempt_enable_rt();
 }
-
-SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr,
+ SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr,
 		size_t, msg_len, unsigned int, msg_prio,
 		const struct timespec __user *, u_abs_timeout)
 {
Index: linux-2.6/kernel/printk.c
===================================================================
--- linux-2.6.orig/kernel/printk.c
+++ linux-2.6/kernel/printk.c
@@ -44,13 +44,6 @@
 
 #include <asm/uaccess.h>
 
-/*
- * Architectures can override it:
- */
-void asmlinkage __attribute__((weak)) early_printk(const char *fmt, ...)
-{
-}
-
 #define __LOG_BUF_LEN	(1 << CONFIG_LOG_BUF_SHIFT)
 
 /* printk's without a loglevel use this.. */
@@ -521,6 +514,25 @@ static void __call_console_drivers(unsig
 	migrate_enable();
 }
 
+#ifdef CONFIG_EARLY_PRINTK
+struct console *early_console;
+
+static void early_vprintk(const char *fmt, va_list ap)
+{
+	char buf[512];
+	int n = vscnprintf(buf, sizeof(buf), fmt, ap);
+	if (early_console)
+		early_console->write(early_console, buf, n);
+}
+
+asmlinkage void early_printk(const char *fmt, ...)
+{
+	va_list ap;
+	va_start(ap, fmt);
+	early_vprintk(fmt, ap);
+	va_end(ap);
+}
+
 /*
  * This is independent of any log levels - a global
  * kill switch that turns off all of printk.
@@ -534,6 +546,20 @@ void printk_kill(void)
 	printk_killswitch = 1;
 }
 
+static int forced_early_printk(const char *fmt, va_list ap)
+{
+	if (!printk_killswitch)
+		return 0;
+	early_vprintk(fmt, ap);
+	return 1;
+}
+#else
+static inline int forced_early_printk(const char *fmt, va_list ap)
+{
+	return 0;
+}
+#endif
+
 static int __read_mostly ignore_loglevel;
 
 static int __init ignore_loglevel_setup(char *str)
@@ -858,10 +884,8 @@ asmlinkage int vprintk(const char *fmt, 
 	 * Fall back to early_printk if a debugging subsystem has
 	 * killed printk output
 	 */
-	if (unlikely(printk_killswitch)) {
-		early_vprintk(fmt, args);
+	if (unlikely(forced_early_printk(fmt, args)))
 		return 1;
-	}
 
 	boot_delay_msec();
 	printk_delay();
@@ -1575,7 +1599,6 @@ void register_console(struct console *ne
 		for_each_console(bcon)
 			if (bcon->flags & CON_BOOT)
 				unregister_console(bcon);
-		early_console_initialized = 0;
 	} else {
 		printk(KERN_INFO "%sconsole [%s%d] enabled\n",
 			(newcon->flags & CON_BOOT) ? "boot" : "" ,
Index: linux-2.6/kernel/trace/latency_hist.c
===================================================================
--- linux-2.6.orig/kernel/trace/latency_hist.c
+++ linux-2.6/kernel/trace/latency_hist.c
@@ -223,9 +223,8 @@ void notrace latency_hist(int latency_ty
 	} else
 		my_hist->hist_array[latency]++;
 
-	if (latency < my_hist->min_lat)
-		my_hist->min_lat = latency;
-	if (latency > my_hist->max_lat) {
+	if (unlikely(latency > my_hist->max_lat ||
+	    my_hist->min_lat == ULONG_MAX)) {
 #if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
     defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
 		if (latency_type == WAKEUP_LATENCY ||
@@ -246,6 +245,8 @@ void notrace latency_hist(int latency_ty
 #endif
 		my_hist->max_lat = latency;
 	}
+	if (unlikely(latency < my_hist->min_lat))
+		my_hist->min_lat = latency;
 	my_hist->total_samples++;
 	my_hist->accumulate_lat += latency;
 }
@@ -360,7 +361,7 @@ static struct file_operations latency_hi
 static void clear_maxlatprocdata(struct maxlatproc_data *mp)
 {
 	mp->comm[0] = mp->current_comm[0] = '\0';
-	mp->prio = mp->current_prio = mp->current_pid =
+	mp->prio = mp->current_prio = mp->pid = mp->current_pid =
 	    mp->latency = mp->timeroffset = -1;
 	mp->timestamp = 0;
 }
@@ -372,7 +373,7 @@ static void hist_reset(struct hist_data 
 	memset(hist->hist_array, 0, sizeof(hist->hist_array));
 	hist->below_hist_bound_samples = 0ULL;
 	hist->above_hist_bound_samples = 0ULL;
-	hist->min_lat = 0xFFFFFFFFUL;
+	hist->min_lat = ULONG_MAX;
 	hist->max_lat = 0UL;
 	hist->total_samples = 0ULL;
 	hist->accumulate_lat = 0ULL;
@@ -496,15 +497,21 @@ show_maxlatproc(struct file *file, char 
 	int strmaxlen = (TASK_COMM_LEN * 2) + (8 * 8);
 	unsigned long long t;
 	unsigned long usecs, secs;
-	char *buf = kmalloc(strmaxlen, GFP_KERNEL);
+	char *buf;
 
+	if (mp->pid == -1 || mp->current_pid == -1) {
+		buf = "(none)\n";
+		return simple_read_from_buffer(ubuf, cnt, ppos, buf,
+		    strlen(buf));
+	}
+
+	buf = kmalloc(strmaxlen, GFP_KERNEL);
 	if (buf == NULL)
 		return -ENOMEM;
 
 	t = ns2usecs(mp->timestamp);
 	usecs = do_div(t, USEC_PER_SEC);
 	secs = (unsigned long) t;
-
 	r = snprintf(buf, strmaxlen,
 	    "%d %d %ld (%ld) %s <- %d %d %s %lu.%06lu\n", mp->pid,
 	    MAX_RT_PRIO-1 - mp->prio, mp->latency, mp->timeroffset, mp->comm,
Index: linux-2.6/kernel/watchdog.c
===================================================================
--- linux-2.6.orig/kernel/watchdog.c
+++ linux-2.6/kernel/watchdog.c
@@ -240,8 +240,7 @@ static void watchdog_overflow_callback(s
 		 * If early-printk is enabled then make sure we do not
 		 * lock up in printk() and kill console logging:
 		 */
-		if (early_console_initialized)
-			printk_kill();
+		printk_kill();
 
 		if (hardlockup_panic) {
 			panic("Watchdog detected hard LOCKUP on cpu %d", this_cpu);
Index: linux-2.6/localversion-rt
===================================================================
--- linux-2.6.orig/localversion-rt
+++ linux-2.6/localversion-rt
@@ -1 +1 @@
--rt1
+-rt2
Index: linux-2.6/arch/arm/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/arm/kernel/early_printk.c
+++ linux-2.6/arch/arm/kernel/early_printk.c
@@ -29,28 +29,17 @@ static void early_console_write(struct c
 	early_write(s, n);
 }
 
-static struct console early_console = {
+static struct console early_console_dev = {
 	.name =		"earlycon",
 	.write =	early_console_write,
 	.flags =	CON_PRINTBUFFER | CON_BOOT,
 	.index =	-1,
 };
 
-asmlinkage void early_printk(const char *fmt, ...)
-{
-	char buf[512];
-	int n;
-	va_list ap;
-
-	va_start(ap, fmt);
-	n = vscnprintf(buf, sizeof(buf), fmt, ap);
-	early_write(buf, n);
-	va_end(ap);
-}
-
 static int __init setup_early_printk(char *buf)
 {
-	register_console(&early_console);
+	early_console = &early_console_dev;
+	register_console(&early_console_dev);
 	return 0;
 }
 
Index: linux-2.6/arch/blackfin/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/blackfin/kernel/early_printk.c
+++ linux-2.6/arch/blackfin/kernel/early_printk.c
@@ -25,8 +25,6 @@ extern struct console *bfin_earlyserial_
 extern struct console *bfin_jc_early_init(void);
 #endif
 
-static struct console *early_console;
-
 /* Default console */
 #define DEFAULT_PORT 0
 #define DEFAULT_CFLAG CS8|B57600
Index: linux-2.6/arch/microblaze/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/microblaze/kernel/early_printk.c
+++ linux-2.6/arch/microblaze/kernel/early_printk.c
@@ -21,7 +21,6 @@
 #include <asm/setup.h>
 #include <asm/prom.h>
 
-static u32 early_console_initialized;
 static u32 base_addr;
 
 #ifdef CONFIG_SERIAL_UARTLITE_CONSOLE
@@ -109,31 +108,14 @@ static struct console early_serial_uart1
 };
 #endif /* CONFIG_SERIAL_8250_CONSOLE */
 
-static struct console *early_console;
-
-void early_printk(const char *fmt, ...)
-{
-	char buf[512];
-	int n;
-	va_list ap;
-
-	if (early_console_initialized) {
-		va_start(ap, fmt);
-		n = vscnprintf(buf, 512, fmt, ap);
-		early_console->write(early_console, buf, n);
-		va_end(ap);
-	}
-}
-
 int __init setup_early_printk(char *opt)
 {
-	if (early_console_initialized)
+	if (early_console)
 		return 1;
 
 #ifdef CONFIG_SERIAL_UARTLITE_CONSOLE
 	base_addr = early_uartlite_console();
 	if (base_addr) {
-		early_console_initialized = 1;
 #ifdef CONFIG_MMU
 		early_console_reg_tlb_alloc(base_addr);
 #endif
@@ -151,7 +133,6 @@ int __init setup_early_printk(char *opt)
 	base_addr = early_uart16550_console();
 	base_addr &= ~3; /* clear register offset */
 	if (base_addr) {
-		early_console_initialized = 1;
 #ifdef CONFIG_MMU
 		early_console_reg_tlb_alloc(base_addr);
 #endif
@@ -171,9 +152,9 @@ int __init setup_early_printk(char *opt)
 
 void __init disable_early_printk(void)
 {
-	if (!early_console_initialized || !early_console)
+	if (!early_console)
 		return;
 	printk(KERN_WARNING "disabling early console\n");
 	unregister_console(early_console);
-	early_console_initialized = 0;
+	early_console = NULL;
 }
Index: linux-2.6/arch/mips/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/mips/kernel/early_printk.c
+++ linux-2.6/arch/mips/kernel/early_printk.c
@@ -25,20 +25,18 @@ early_console_write(struct console *con,
 	}
 }
 
-static struct console early_console __initdata = {
+static struct console early_console_prom = {
 	.name	= "early",
 	.write	= early_console_write,
 	.flags	= CON_PRINTBUFFER | CON_BOOT,
 	.index	= -1
 };
 
-static int early_console_initialized __initdata;
-
 void __init setup_early_printk(void)
 {
-	if (early_console_initialized)
+	if (early_console)
 		return;
-	early_console_initialized = 1;
+	early_console = &early_console_prom;
 
-	register_console(&early_console);
+	register_console(&early_console_prom);
 }
Index: linux-2.6/arch/powerpc/kernel/udbg.c
===================================================================
--- linux-2.6.orig/arch/powerpc/kernel/udbg.c
+++ linux-2.6/arch/powerpc/kernel/udbg.c
@@ -169,15 +169,13 @@ static struct console udbg_console = {
 	.index	= 0,
 };
 
-static int early_console_initialized;
-
 /*
  * Called by setup_system after ppc_md->probe and ppc_md->early_init.
  * Call it again after setting udbg_putc in ppc_md->setup_arch.
  */
 void __init register_early_udbg_console(void)
 {
-	if (early_console_initialized)
+	if (early_console)
 		return;
 
 	if (!udbg_putc)
@@ -187,7 +185,7 @@ void __init register_early_udbg_console(
 		printk(KERN_INFO "early console immortal !\n");
 		udbg_console.flags &= ~CON_BOOT;
 	}
-	early_console_initialized = 1;
+	early_console = &udbg_console;
 	register_console(&udbg_console);
 }
 
Index: linux-2.6/arch/sh/kernel/sh_bios.c
===================================================================
--- linux-2.6.orig/arch/sh/kernel/sh_bios.c
+++ linux-2.6/arch/sh/kernel/sh_bios.c
@@ -144,8 +144,6 @@ static struct console bios_console = {
 	.index		= -1,
 };
 
-static struct console *early_console;
-
 static int __init setup_early_printk(char *buf)
 {
 	int keep_early = 0;
Index: linux-2.6/arch/sparc/kernel/setup_32.c
===================================================================
--- linux-2.6.orig/arch/sparc/kernel/setup_32.c
+++ linux-2.6/arch/sparc/kernel/setup_32.c
@@ -220,6 +220,7 @@ void __init setup_arch(char **cmdline_p)
 
 	boot_flags_init(*cmdline_p);
 
+	early_console = &prom_early_console;
 	register_console(&prom_early_console);
 
 	/* Set sparc_cpu_model */
Index: linux-2.6/arch/sparc/kernel/setup_64.c
===================================================================
--- linux-2.6.orig/arch/sparc/kernel/setup_64.c
+++ linux-2.6/arch/sparc/kernel/setup_64.c
@@ -278,6 +278,12 @@ void __init boot_cpu_id_too_large(int cp
 }
 #endif
 
+static inline void register_prom_console(void)
+{
+	early_console = &prom_early_console;
+	register_console(&prom_early_console);
+}
+
 void __init setup_arch(char **cmdline_p)
 {
 	/* Initialize PROM console and command line. */
@@ -289,7 +295,7 @@ void __init setup_arch(char **cmdline_p)
 #ifdef CONFIG_EARLYFB
 	if (btext_find_display())
 #endif
-		register_console(&prom_early_console);
+		register_prom_console();
 
 	if (tlb_type == hypervisor)
 		printk("ARCH: SUN4V\n");
Index: linux-2.6/arch/tile/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/tile/kernel/early_printk.c
+++ linux-2.6/arch/tile/kernel/early_printk.c
@@ -32,25 +32,8 @@ static struct console early_hv_console =
 };
 
 /* Direct interface for emergencies */
-static struct console *early_console = &early_hv_console;
-static int early_console_initialized;
 static int early_console_complete;
 
-static void early_vprintk(const char *fmt, va_list ap)
-{
-	char buf[512];
-	int n = vscnprintf(buf, sizeof(buf), fmt, ap);
-	early_console->write(early_console, buf, n);
-}
-
-void early_printk(const char *fmt, ...)
-{
-	va_list ap;
-	va_start(ap, fmt);
-	early_vprintk(fmt, ap);
-	va_end(ap);
-}
-
 void early_panic(const char *fmt, ...)
 {
 	va_list ap;
@@ -68,14 +51,13 @@ static int __initdata keep_early;
 
 static int __init setup_early_printk(char *str)
 {
-	if (early_console_initialized)
+	if (early_console)
 		return 1;
 
 	if (str != NULL && strncmp(str, "keep", 4) == 0)
 		keep_early = 1;
 
 	early_console = &early_hv_console;
-	early_console_initialized = 1;
 	register_console(early_console);
 
 	return 0;
@@ -84,12 +66,12 @@ static int __init setup_early_printk(cha
 void __init disable_early_printk(void)
 {
 	early_console_complete = 1;
-	if (!early_console_initialized || !early_console)
+	if (!early_console)
 		return;
 	if (!keep_early) {
 		early_printk("disabling early console\n");
 		unregister_console(early_console);
-		early_console_initialized = 0;
+		early_console = NULL;
 	} else {
 		early_printk("keeping early console\n");
 	}
@@ -97,7 +79,7 @@ void __init disable_early_printk(void)
 
 void warn_early_printk(void)
 {
-	if (early_console_complete || early_console_initialized)
+	if (early_console_complete || early_console)
 		return;
 	early_printk("\
 Machine shutting down before console output is fully initialized.\n\
Index: linux-2.6/arch/um/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/um/kernel/early_printk.c
+++ linux-2.6/arch/um/kernel/early_printk.c
@@ -16,7 +16,7 @@ static void early_console_write(struct c
 	um_early_printk(s, n);
 }
 
-static struct console early_console = {
+static struct console early_console_dev = {
 	.name = "earlycon",
 	.write = early_console_write,
 	.flags = CON_BOOT,
@@ -25,8 +25,10 @@ static struct console early_console = {
 
 static int __init setup_early_printk(char *buf)
 {
-	register_console(&early_console);
-
+	if (!early_console) {
+		early_console = &early_console_dev;
+		register_console(&early_console_dev);
+	}
 	return 0;
 }
 
Index: linux-2.6/arch/unicore32/kernel/early_printk.c
===================================================================
--- linux-2.6.orig/arch/unicore32/kernel/early_printk.c
+++ linux-2.6/arch/unicore32/kernel/early_printk.c
@@ -33,21 +33,17 @@ static struct console early_ocd_console 
 	.index =	-1,
 };
 
-/* Direct interface for emergencies */
-static struct console *early_console = &early_ocd_console;
-
-static int __initdata keep_early;
-
 static int __init setup_early_printk(char *buf)
 {
-	if (!buf)
+	int keep_early;
+
+	if (!buf || early_console)
 		return 0;
 
 	if (strstr(buf, "keep"))
 		keep_early = 1;
 
-	if (!strncmp(buf, "ocd", 3))
-		early_console = &early_ocd_console;
+	early_console = &early_ocd_console;
 
 	if (keep_early)
 		early_console->flags &= ~CON_BOOT;
Index: linux-2.6/include/linux/console.h
===================================================================
--- linux-2.6.orig/include/linux/console.h
+++ linux-2.6/include/linux/console.h
@@ -133,6 +133,7 @@ struct console {
 	for (con = console_drivers; con != NULL; con = con->next)
 
 extern int console_set_on_cmdline;
+extern struct console *early_console;
 
 extern int add_preferred_console(char *name, int idx, char *options);
 extern int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options);

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 15:13 [ANNOUNCE] 3.0-rt2 Thomas Gleixner
@ 2011-07-23 15:41 ` Kim Leyendecker
  2011-07-23 16:03   ` Thomas Gleixner
  2011-07-23 17:17 ` Ed Tomlinson
  2011-07-24  1:09 ` Yong Zhang
  2 siblings, 1 reply; 10+ messages in thread
From: Kim Leyendecker @ 2011-07-23 15:41 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML

Am 23.07.2011 17:13, schrieb Thomas Gleixner:
> Patch against 3.0 can be found here:
>
>    http://www.kernel.org/pub/linux/kernel/projects/rt/patch-3.0-rt2.patch.bz2

I´m sorry that I have to disturb you again, but if I open your link, I 
get only a 404.

This shouldn´t be right, shouldn´t it?

thanks

-- 
Kim Leyendecker (kdl@k-dl.de.vu)
openSUSE Ambassador, openSUSE Wiki Team DE
HAVE A LOT OF FUN!
http://www.opensuse.org
Have you tried SUSE Studio? Need to create a Live CD, an app you want
to package and distribute or create your own Linux distro. Give SUSE
Studio a try. http://www.susestudio.com


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 15:41 ` Kim Leyendecker
@ 2011-07-23 16:03   ` Thomas Gleixner
  2011-07-23 16:27     ` Kim Leyendecker
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Gleixner @ 2011-07-23 16:03 UTC (permalink / raw)
  To: Kim Leyendecker; +Cc: LKML

[-- Attachment #1: Type: TEXT/PLAIN, Size: 422 bytes --]

On Sat, 23 Jul 2011, Kim Leyendecker wrote:

> Am 23.07.2011 17:13, schrieb Thomas Gleixner:
> > Patch against 3.0 can be found here:
> > 
> >    http://www.kernel.org/pub/linux/kernel/projects/rt/patch-3.0-rt2.patch.bz2
> 
> I´m sorry that I have to disturb you again, but if I open your link, I get
> only a 404.
> 
> This shouldn´t be right, shouldn´t it?

Works for me. Maybe you hit a mirror which was not yet synced.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 16:03   ` Thomas Gleixner
@ 2011-07-23 16:27     ` Kim Leyendecker
  0 siblings, 0 replies; 10+ messages in thread
From: Kim Leyendecker @ 2011-07-23 16:27 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML

Am 23.07.2011 18:03, schrieb Thomas Gleixner:
> On Sat, 23 Jul 2011, Kim Leyendecker wrote:
>
>> Am 23.07.2011 17:13, schrieb Thomas Gleixner:
>>> Patch against 3.0 can be found here:
>>>
>>>     http://www.kernel.org/pub/linux/kernel/projects/rt/patch-3.0-rt2.patch.bz2
>> I´m sorry that I have to disturb you again, but if I open your link, I get
>> only a 404.
>>
>> This shouldn´t be right, shouldn´t it?
> Works for me. Maybe you hit a mirror which was not yet synced.

true. Now it´s working perfect.

         -kdl

-- 
Kim Leyendecker (kdl@k-dl.de.vu)
openSUSE Ambassador, openSUSE Wiki Team DE
HAVE A LOT OF FUN!
http://www.opensuse.org
Have you tried SUSE Studio? Need to create a Live CD, an app you want
to package and distribute or create your own Linux distro. Give SUSE
Studio a try. http://www.susestudio.com


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 15:13 [ANNOUNCE] 3.0-rt2 Thomas Gleixner
  2011-07-23 15:41 ` Kim Leyendecker
@ 2011-07-23 17:17 ` Ed Tomlinson
  2011-07-23 17:34   ` Ed Tomlinson
  2011-07-24  1:09 ` Yong Zhang
  2 siblings, 1 reply; 10+ messages in thread
From: Ed Tomlinson @ 2011-07-23 17:17 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-rt-users

On Saturday 23 July 2011 11:13:30 Thomas Gleixner wrote:
> I'm pleased to announce the 3.0-rt2 release.
> 
> Changes versus 3.0-rt1:
> 
>   * mqueue fix (Yoshitake Kobayashi)
> 
>   * dca locking fix (Mike Galbraith)
> 
>   * trace updates (Carsten Emde)
> 
>   * Fixed vprintk wreckage and rcutorture (tglx)
> 
> Known issues:
> 
>   * Some weird "console=..." commandline + config dependent
>     interactions which have been not yet investigated down to their
>     root cause. Result in a boot hang. YMMV

Got this during boot with rt2.  The kernel survives and seems to work (eg X starts and kmail can sent this).

[    1.142427] pci 0000:01:05.0: Boot video device
[    1.142483] PCI: CLS 64 bytes, default 64
[    1.145555] PCI-DMA: Disabling AGP.
[    1.145758] PCI-DMA: aperture base @ b4000000 size 65536 KB
[    1.145759] PCI-DMA: using GART IOMMU.
[    1.145764] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
[    1.176417] 
[    1.176419] =================================
[    1.176420] [ INFO: inconsistent lock state ]
[    1.176422] 3.0.0-rt2-crc+ #351
[    1.176424] ---------------------------------
[    1.176425] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
[    1.176428] swapper/0 [HC1[1]:SC0[18446612140904153088]:HE0:SE1] takes:
[    1.176430]  (&(&(&(*({ do { const void *__vpp_verify = (typeof((&(slab_lock))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(slab_lock))) *)(&(slab_lock)))); (typeof((typeof(*(&(slab_lock))) *)(&(slab_lock)))) (__ptr + (((__per_cpu_offset[__cpu])))); }); })).lock)->lock)->wait_lock){?.+...}, at: [<ffffffff815820db>] rt_spin_lock_slowlock+0x4b/0x250
[    1.176440] {HARDIRQ-ON-W} state was registered at:
[    1.176442]   [<ffffffff8108c3ed>] __lock_acquire+0x5ed/0x16a0
[    1.176446]   [<ffffffff8108daa5>] lock_acquire+0x95/0x140
[    1.176449]   [<ffffffff8158351b>] _raw_spin_lock+0x3b/0x50
[    1.176452]   [<ffffffff815820db>] rt_spin_lock_slowlock+0x4b/0x250
[    1.176455]   [<ffffffff815829ac>] rt_spin_lock+0x2c/0x60
[    1.176458]   [<ffffffff81146cde>] kmem_cache_alloc_trace+0x7e/0x3f0
[    1.176461]   [<ffffffff811475e7>] do_tune_cpucache+0x47/0x580
[    1.176463]   [<ffffffff81147d00>] enable_cpucache+0x30/0xc0
[    1.176466]   [<ffffffff81bbc879>] kmem_cache_init_late+0x2f/0x82
[    1.176470]   [<ffffffff81ba1ac7>] start_kernel+0x267/0x325
[    1.176473]   [<ffffffff81ba12eb>] x86_64_start_reservations+0xfb/0xff
[    1.176476]   [<ffffffff81ba13dc>] x86_64_start_kernel+0xed/0xf4
[    1.176478] irq event stamp: 125372
[    1.176479] hardirqs last  enabled at (125371): [<ffffffff8100ac4d>] default_idle+0x19d/0x1b0
[    1.176483] hardirqs last disabled at (125372): [<ffffffff81583b67>] save_args+0x67/0x70
[    1.176486] softirqs last  enabled at (0): [<          (null)>]           (null)
[    1.176487] softirqs last disabled at (0): [<          (null)>]           (null)
[    1.176489] 
[    1.176490] other info that might help us debug this:
[    1.176491]  Possible unsafe locking scenario:
[    1.176491] 
[    1.176492]        CPU0
[    1.176493]        ----
[    1.176493]   lock(&(&(&(*({ do { const void *__vpp_verify = (typeof((&(slab_lock))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(slab_lock))) *)(&(slab_lock)))); (typeof((typeof(*(&(slab_lock))) *)(&(slab_lock)))) (__ptr + (((__per_cpu_offset[__cpu])))); }); })).lock)->lock)->wait_lock);
[    1.176498]   <Interrupt>
[    1.176498]     lock(&(&(&(*({ do { const void *__vpp_verify = (typeof((&(slab_lock))))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((typeof(*(&(slab_lock))) *)(&(slab_lock)))); (typeof((typeof(*(&(slab_lock))) *)(&(slab_lock)))) (__ptr + (((__per_cpu_offset[__cpu])))); }); })).lock)->lock)->wait_lock);
[    1.176502] 
[    1.176503]  *** DEADLOCK ***
[    1.176503] 
[    1.176504] no locks held by swapper/0.
[    1.176505] 
[    1.176506] stack backtrace:
[    1.176508] Pid: 0, comm: swapper Not tainted 3.0.0-rt2-crc+ #351
[    1.176509] Call Trace:
[    1.176510]  <IRQ>  [<ffffffff8108ae1f>] print_usage_bug+0x21f/0x270
[    1.176514]  [<ffffffff8108b742>] mark_lock+0x332/0x400
[    1.176517]  [<ffffffff8108c55e>] __lock_acquire+0x75e/0x16a0
[    1.176519]  [<ffffffff8108b608>] ? mark_lock+0x1f8/0x400
[    1.176521]  [<ffffffff815820db>] ? rt_spin_lock_slowlock+0x4b/0x250
[    1.176523]  [<ffffffff8108daa5>] lock_acquire+0x95/0x140
[    1.176525]  [<ffffffff815820db>] ? rt_spin_lock_slowlock+0x4b/0x250
[    1.176528]  [<ffffffff81010294>] ? kzalloc+0x14/0x20
[    1.176530]  [<ffffffff8158351b>] _raw_spin_lock+0x3b/0x50
[    1.176533]  [<ffffffff815820db>] ? rt_spin_lock_slowlock+0x4b/0x250
[    1.176535]  [<ffffffff815820db>] rt_spin_lock_slowlock+0x4b/0x250
[    1.176537]  [<ffffffff81010294>] ? kzalloc+0x14/0x20
[    1.176539]  [<ffffffff815829ac>] rt_spin_lock+0x2c/0x60
[    1.176541]  [<ffffffff81147149>] __kmalloc+0xf9/0x4b0
[    1.176544]  [<ffffffff81010294>] kzalloc+0x14/0x20
[    1.176546]  [<ffffffff81576999>] cpuid4_cache_lookup_regs+0x1bc/0x33a
[    1.176549]  [<ffffffff81079257>] ? __hrtimer_start_range_ns+0x157/0x4a0
[    1.176551]  [<ffffffff81077b48>] ? hrtimer_get_next_event+0xe8/0x110
[    1.176553]  [<ffffffff81581c38>] ? rt_spin_lock_slowunlock+0x78/0x80
[    1.176555]  [<ffffffff815775da>] get_cpu_leaves+0x88/0x318
[    1.176558]  [<ffffffff81095586>] generic_smp_call_function_single_interrupt+0x136/0x190
[    1.176562]  [<ffffffff8101e087>] smp_call_function_single_interrupt+0x27/0x40
[    1.176565]  [<ffffffff8158bb33>] call_function_single_interrupt+0x13/0x20
[    1.176566]  <EOI>  [<ffffffff8100ac4f>] ? default_idle+0x19f/0x1b0
[    1.176570]  [<ffffffff8100ac4d>] ? default_idle+0x19d/0x1b0
[    1.176572]  [<ffffffff8100acd0>] amd_e400_idle+0x70/0x120
[    1.176575]  [<ffffffff8100123f>] cpu_idle+0xdf/0x120
[    1.176577]  [<ffffffff8156a7dc>] rest_init+0xbc/0xd0
[    1.176579]  [<ffffffff8156a720>] ? csum_partial_copy_generic+0x170/0x170
[    1.176582]  [<ffffffff81ba1b7a>] start_kernel+0x31a/0x325
[    1.176584]  [<ffffffff81ba12eb>] x86_64_start_reservations+0xfb/0xff
[    1.176586]  [<ffffffff81ba13dc>] x86_64_start_kernel+0xed/0xf4
[    1.182619] audit: initializing netlink socket (disabled)
[    1.182648] type=2000 audit(1311440614.181:1): initialized
[    1.211068] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.246054] VFS: Disk quotas dquot_6.5.2
[    1.246104] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.246873] msgmni has been set to 15445

Hope this helps.
Ed

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 17:17 ` Ed Tomlinson
@ 2011-07-23 17:34   ` Ed Tomlinson
  2011-07-23 17:41     ` Thomas Gleixner
  0 siblings, 1 reply; 10+ messages in thread
From: Ed Tomlinson @ 2011-07-23 17:34 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-rt-users

On Saturday 23 July 2011 13:17:04 Ed Tomlinson wrote:
> On Saturday 23 July 2011 11:13:30 Thomas Gleixner wrote:
> > I'm pleased to announce the 3.0-rt2 release.
> > 
> > Changes versus 3.0-rt1:
> > 
> >   * mqueue fix (Yoshitake Kobayashi)
> > 
> >   * dca locking fix (Mike Galbraith)
> > 
> >   * trace updates (Carsten Emde)
> > 
> >   * Fixed vprintk wreckage and rcutorture (tglx)
> > 
> > Known issues:
> > 
> >   * Some weird "console=..." commandline + config dependent
> >     interactions which have been not yet investigated down to their
> >     root cause. Result in a boot hang. YMMV

Got this warning too.  Was a change was missed?

[  364.392603] NOHZ: local_softirq_pending 08
[  369.320859] NOHZ: local_softirq_pending 08
[  382.126867] NOHZ: local_softirq_pending 08
[  388.525880] NOHZ: local_softirq_pending 08
[  388.526510] NOHZ: local_softirq_pending 08
[  412.148451] NOHZ: local_softirq_pending 08
[  418.550136] NOHZ: local_softirq_pending 08
[  418.550290] NOHZ: local_softirq_pending 08
[  429.870609] NOHZ: local_softirq_pending 08
[  453.992649] NOHZ: local_softirq_pending 08
[  905.155424] ------------[ cut here ]------------
[  905.155441] WARNING: at kernel/trace/trace.c:2729 tracing_ctrl_write+0x203/0x220()
[  905.155447] Hardware name: System Product Name
[  905.155452] tracing_enabled is deprecated. Use tracing_on
[  905.155456] Modules linked in: hidp loop acpi_pad video pci_slot container fan tun sit tunnel4 ipv6 bnep rfcomm snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss microcode af_packet kvm_amd kvm pciehp pci_hotplug powernow_k8 mperf sr_mod cdrom btusb bluetooth ath3k pl2303 usbserial uas usb_storage joydev hid_microsoft usbhid gspca_ov519 gspca_main videodev v4l2_compat_ioctl32 usblp ata_generic amd64_edac_mod pcspkr k10temp edac_mce_amd pata_atiixp ohci_hcd ehci_hcd snd_hda_codec_hdmi evdev snd_hda_codec_realtek asus_atk0110 snd_hda_intel snd_hda_codec snd_pcm snd_timer snd sky2 soundcore snd_page_alloc wmi button processor unix
[  905.155555] Pid: 4263, comm: latencytop Not tainted 3.0.0-rt2-crc+ #351
[  905.155561] Call Trace:
[  905.155573]  [<ffffffff8104b82f>] warn_slowpath_common+0x7f/0xc0
[  905.155582]  [<ffffffff8104b926>] warn_slowpath_fmt+0x46/0x50
[  905.155593]  [<ffffffff81582ecc>] ? _mutex_lock+0x3c/0x50
[  905.155601]  [<ffffffff810d122e>] ? tracing_ctrl_write+0xce/0x220
[  905.155609]  [<ffffffff810d1363>] tracing_ctrl_write+0x203/0x220
[  905.155618]  [<ffffffff811531dc>] ? rw_verify_area+0xec/0x190
[  905.155625]  [<ffffffff8115368c>] vfs_write+0x11c/0x1c0
[  905.155632]  [<ffffffff81153824>] sys_write+0x54/0x90
[  905.155641]  [<ffffffff8158afab>] system_call_fastpath+0x16/0x1b
[  905.155647] ---[ end trace 0000000000000002 ]---

I've also not seen the "NOHZ: local_softirq_pending 08" messages before.

Thanks
Ed

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 17:34   ` Ed Tomlinson
@ 2011-07-23 17:41     ` Thomas Gleixner
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Gleixner @ 2011-07-23 17:41 UTC (permalink / raw)
  To: Ed Tomlinson; +Cc: LKML, linux-rt-users

On Sat, 23 Jul 2011, Ed Tomlinson wrote:

> On Saturday 23 July 2011 13:17:04 Ed Tomlinson wrote:
> > On Saturday 23 July 2011 11:13:30 Thomas Gleixner wrote:
> > > I'm pleased to announce the 3.0-rt2 release.
> > > 
> > > Changes versus 3.0-rt1:
> > > 
> > >   * mqueue fix (Yoshitake Kobayashi)
> > > 
> > >   * dca locking fix (Mike Galbraith)
> > > 
> > >   * trace updates (Carsten Emde)
> > > 
> > >   * Fixed vprintk wreckage and rcutorture (tglx)
> > > 
> > > Known issues:
> > > 
> > >   * Some weird "console=..." commandline + config dependent
> > >     interactions which have been not yet investigated down to their
> > >     root cause. Result in a boot hang. YMMV
> 
> Got this warning too.  Was a change was missed?
> 
> [  364.392603] NOHZ: local_softirq_pending 08

Forgot to disable NOHZ for now, have not yet had time to investigate
that local_softirq_pending warning.

> [  905.155441] WARNING: at kernel/trace/trace.c:2729 tracing_ctrl_write+0x203/0x220()
> [  905.155447] Hardware name: System Product Name
> [  905.155452] tracing_enabled is deprecated. Use tracing_on

     		 ^^^^
Thanks,

	tglx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-23 15:13 [ANNOUNCE] 3.0-rt2 Thomas Gleixner
  2011-07-23 15:41 ` Kim Leyendecker
  2011-07-23 17:17 ` Ed Tomlinson
@ 2011-07-24  1:09 ` Yong Zhang
  2011-07-24 10:05   ` Thomas Gleixner
  2 siblings, 1 reply; 10+ messages in thread
From: Yong Zhang @ 2011-07-24  1:09 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-rt-users

[-- Attachment #1: Type: text/plain, Size: 1990 bytes --]

On Sat, Jul 23, 2011 at 05:13:30PM +0200, Thomas Gleixner wrote:
> Dear RT Folks,
> 
> I'm pleased to announce the 3.0-rt2 release.
> 
> Changes versus 3.0-rt1:
> 
>   * mqueue fix (Yoshitake Kobayashi)
> 
>   * dca locking fix (Mike Galbraith)
> 
>   * trace updates (Carsten Emde)
> 
>   * Fixed vprintk wreckage and rcutorture (tglx)
> 
> Known issues:
> 
>   * Some weird "console=..." commandline + config dependent
>     interactions which have been not yet investigated down to their
>     root cause. Result in a boot hang. YMMV
> 
> Patch against 3.0 can be found here:
> 
>   http://www.kernel.org/pub/linux/kernel/projects/rt/patch-3.0-rt2.patch.bz2
> 
> The split quilt queue is available at:
> 
>   http://www.kernel.org/pub/linux/kernel/projects/rt/patches-3.0-rt2.tar.bz2
> 

I get below bug on my notebook:

[ 1244.912596] BUG: sleeping function called from invalid context at kernel/rtmutex.c:645
[ 1244.912599] in_atomic(): 1, irqs_disabled(): 0, pid: 1713, name: chromium-browse
[ 1244.912603] Pid: 1713, comm: chromium-browse Not tainted 3.0.0-rt2-00236-g4cf2acd #59
[ 1244.912605] Call Trace:
[ 1244.912613]  [<c15cee54>] ? printk+0x1d/0x21
[ 1244.912618]  [<c1036086>] __might_sleep+0xe6/0x110
[ 1244.912621]  [<c15d151c>] rt_spin_lock+0x1c/0x40
[ 1244.912626]  [<c111f763>] mem_cgroup_split_huge_fixup+0x43/0xd0
[ 1244.912629]  [<c11195d8>] split_huge_page+0x208/0x770
[ 1244.912632]  [<c15d1a25>] ? _raw_spin_lock+0x15/0x30
[ 1244.912635]  [<c1040362>] ? migrate_enable+0xc2/0x130
[ 1244.912638]  [<c111a20b>] __split_huge_page_pmd+0x7b/0xc0
[ 1244.912641]  [<c10fadb5>] unmap_vmas+0x5a5/0x620
[ 1244.912645]  [<c10e5e73>] ? lru_add_drain+0xe3/0x1d0
[ 1244.912648]  [<c10faeaa>] zap_page_range+0x7a/0xa0
[ 1244.912651]  [<c15d0d5f>] ? rt_mutex_lock+0x1f/0x50
[ 1244.912653]  [<c10f81a4>] sys_madvise+0x294/0x5f0
[ 1244.912656]  [<c10fe520>] ? remove_vma+0x50/0x70
[ 1244.912660]  [<c15d7ddf>] sysenter_do_call+0x12/0x2d

And kernel config is attached.

Thanks,
Yong

[-- Attachment #2: config.gz --]
[-- Type: application/octet-stream, Size: 24475 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-24  1:09 ` Yong Zhang
@ 2011-07-24 10:05   ` Thomas Gleixner
  2011-07-25  1:57     ` Yong Zhang
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Gleixner @ 2011-07-24 10:05 UTC (permalink / raw)
  To: Yong Zhang; +Cc: LKML, linux-rt-users

On Sun, 24 Jul 2011, Yong Zhang wrote:
> [ 1244.912621]  [<c15d151c>] rt_spin_lock+0x1c/0x40
> [ 1244.912626]  [<c111f763>] mem_cgroup_split_huge_fixup+0x43/0xd0

Can you please disable CONFIG_TRANSPARENT_HUGEPAGE for now? That's not
easy to fix, but I put it on the todo list.

Thanks,

	tglx



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ANNOUNCE] 3.0-rt2
  2011-07-24 10:05   ` Thomas Gleixner
@ 2011-07-25  1:57     ` Yong Zhang
  0 siblings, 0 replies; 10+ messages in thread
From: Yong Zhang @ 2011-07-25  1:57 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-rt-users

On Sun, Jul 24, 2011 at 6:05 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Sun, 24 Jul 2011, Yong Zhang wrote:
>> [ 1244.912621]  [<c15d151c>] rt_spin_lock+0x1c/0x40
>> [ 1244.912626]  [<c111f763>] mem_cgroup_split_huge_fixup+0x43/0xd0
>
> Can you please disable CONFIG_TRANSPARENT_HUGEPAGE for now? That's not
> easy to fix, but I put it on the todo list.

That's ok.
Will try 3.0-rt3 :)

Thanks,
Yong



-- 
Only stand for myself

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-07-25  1:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-23 15:13 [ANNOUNCE] 3.0-rt2 Thomas Gleixner
2011-07-23 15:41 ` Kim Leyendecker
2011-07-23 16:03   ` Thomas Gleixner
2011-07-23 16:27     ` Kim Leyendecker
2011-07-23 17:17 ` Ed Tomlinson
2011-07-23 17:34   ` Ed Tomlinson
2011-07-23 17:41     ` Thomas Gleixner
2011-07-24  1:09 ` Yong Zhang
2011-07-24 10:05   ` Thomas Gleixner
2011-07-25  1:57     ` Yong Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox