Am Donnerstag, den 21.07.2011, 20:28 +0200 schrieb andi: > Hi! > > Actually, I think, the last line added in this patch is wrong... > > + spinlock_t b_state_lock; > > leads to duplication of b_state_lock... > > regards, > Andi > Yea, I haven't apply this line here to avoid that. regards hermann > > On 07/21/2011 07:35 PM, Thomas Gleixner wrote: > > On Thu, 21 Jul 2011, hermann wrote: > > > >> I try to build the 3.0-rc7-rt0 but fail with the following message: > >> CC [M] fs/ext3/balloc.o > >> In file included from include/linux/jbd.h:247:0, > >> from fs/ext3/balloc.c:18: > >> > > Find below a patch on top of rt0 which fixes this build failure and > > some other stuff. > > > > Thanks, > > > > tglx > > > > ----------- > > > > Index: linux-2.6/kernel/timer.c > > =================================================================== > > --- linux-2.6.orig/kernel/timer.c > > +++ linux-2.6/kernel/timer.c > > @@ -654,6 +654,36 @@ static struct tvec_base *lock_timer_base > > } > > } > > > > +#ifndef CONFIG_PREEMPT_RT_FULL > > +static inline struct tvec_base *switch_timer_base(struct timer_list *timer, > > + struct tvec_base *old, > > + struct tvec_base *new) > > +{ > > + /* See the comment in lock_timer_base() */ > > + timer_set_base(timer, NULL); > > + spin_unlock(&old->lock); > > + spin_lock(&new->lock); > > + timer_set_base(timer, new); > > + return new; > > +} > > +#else > > +static inline struct tvec_base *switch_timer_base(struct timer_list *timer, > > + struct tvec_base *old, > > + struct tvec_base *new) > > +{ > > + /* > > + * We cannot do the above because we might be preempted and > > + * then the preempter would see NULL and loop forever. > > + */ > > + if (spin_trylock(&new->lock)) { > > + timer_set_base(timer, new); > > + spin_unlock(&old->lock); > > + return new; > > + } > > + return old; > > +} > > +#endif > > + > > static inline int > > __mod_timer(struct timer_list *timer, unsigned long expires, > > bool pending_only, int pinned) > > @@ -699,14 +729,8 @@ __mod_timer(struct timer_list *timer, un > > * handler yet has not finished. This also guarantees that > > * the timer is serialized wrt itself. > > */ > > - if (likely(base->running_timer != timer)) { > > - /* See the comment in lock_timer_base() */ > > - timer_set_base(timer, NULL); > > - spin_unlock(&base->lock); > > - base = new_base; > > - spin_lock(&base->lock); > > - timer_set_base(timer, base); > > - } > > + if (likely(base->running_timer != timer)) > > + base = switch_timer_base(timer, base, new_base); > > } > > > > timer->expires = expires; > > Index: linux-2.6/mm/page_alloc.c > > =================================================================== > > --- linux-2.6.orig/mm/page_alloc.c > > +++ linux-2.6/mm/page_alloc.c > > @@ -1943,8 +1943,8 @@ __alloc_pages_direct_compact(gfp_t gfp_m > > if (*did_some_progress != COMPACT_SKIPPED) { > > > > /* Page migration frees to the PCP lists but we want merging */ > > - drain_pages(get_cpu()); > > - put_cpu(); > > + drain_pages(get_cpu_light()); > > + put_cpu_light(); > > > > page = get_page_from_freelist(gfp_mask, nodemask, > > order, zonelist, high_zoneidx, > > Index: linux-2.6/include/linux/buffer_head.h > > =================================================================== > > --- linux-2.6.orig/include/linux/buffer_head.h > > +++ linux-2.6/include/linux/buffer_head.h > > @@ -74,7 +74,9 @@ struct buffer_head { > > atomic_t b_count; /* users using this buffer_head */ > > #ifdef CONFIG_PREEMPT_RT_BASE > > spinlock_t b_uptodate_lock; > > -#if defined(CONFIG_JBD) || defined(CONFIG_JBD2) > > +#if defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE) || \ > > + defined(CONFIG_JBD2) || defined(CONFIG_JBD2_MODULE) > > + spinlock_t b_state_lock; > > spinlock_t b_state_lock; > > spinlock_t b_journal_head_lock; > > #endif > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html