Re: v2.6.22.1-rt5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2007-07-23 at 22:29 +0100, Rui Nuno Capela wrote:
> Ingo Molnar wrote:
> > we are pleased to announce the v2.6.22.1-rt5 kernel (collected and 
> > assembled by Thomas), which can be downloaded from the usual place:
> >   
> >   http://redhat.com/~mingo/realtime-preempt/
> >   
> > more info about the -rt patchset can be found in the RT wiki:
> >    
> >   http://rt.wiki.kernel.org
> > 
> > Changes since -rt4:
> > 
> >  - MM fix: PCP pages locking (Peter Zijlstra)
> > 
> >  - yield() fix: remove stale RCU-unlock (Daniel Walker)
> > 
> >  - dont do check_pgt_cache() in idle (found by Daniel Walker)
> > 
> >  - moved 8 patches, created 6 new patches out of larger patches to 
> >    make the -rt queue more bisectable (Daniel Walker)
> > 
> >  - cleanup (Daniel Walker)
> > 
> >  - fix the latency tracer under paravirt
> > 
> > to build a 2.6.22.1-rt5 tree, the following patches should be applied:
> >   
> >   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.bz2
> >   http://redhat.com/~mingo/realtime-preempt/patch-2.6.22.1-rt5
> >   
> > 	Ingo
> > -
> 
> Maybe I was too quick, but `make all` on is failing here:
> 
> ...
> In file included from arch/i386/mm/pgtable.c:16:
> include/linux/quicklist.h: In function ‘quicklist_alloc’:
> include/linux/quicklist.h:50: warning: unused variable ‘q’
> include/linux/quicklist.h: In function ‘__quicklist_free’:
> include/linux/quicklist.h:79: error: ‘per_cpu__quicklist’ undeclared
> (first use in this function)
> include/linux/quicklist.h:79: error: (Each undeclared identifier is
> reported only once
> include/linux/quicklist.h:79: error: for each function it appears in.)
> include/linux/quicklist.h:79: warning: type defaults to ‘int’ in
> declaration of ‘type name’
> include/linux/quicklist.h:79: error: invalid type argument of ‘unary *’
> make[1]: *** [arch/i386/mm/pgtable.o] Error 1
> make: *** [arch/i386/mm] Error 2

Yeah, the quicklist patch wasn't fully tested .. The delta patch below
is what I had to change to get it working ..

Signed-Off-By: Daniel Walker <[email protected]>

diff -u linux-2.6/include/linux/quicklist.h linux-2.6.22.1/include/linux/quicklist.h
--- linux-2.6/include/linux/quicklist.h
+++ linux-2.6.22.1/include/linux/quicklist.h
@@ -47,7 +47,6 @@
 
 static inline void *quicklist_alloc(int nr, gfp_t flags, void (*ctor)(void *))
 {
-	struct quicklist *q;
 	void **p = NULL;
 	int cpu;
 
@@ -66,6 +65,7 @@
 static inline void __quicklist_free(int nr, void (*dtor)(void *), void *p,
 	struct page *page)
 {
+	int cpu;
 	struct quicklist *q;
 	int nid = page_to_nid(page);
 
@@ -76,11 +76,11 @@
 		return;
 	}
 
-	q = &get_cpu_var(quicklist)[nr];
+	q = &get_cpu_var_locked(quicklist, &cpu)[nr];
 	*(void **)p = q->page;
 	q->page = p;
 	q->nr_pages++;
-	put_cpu_var(quicklist);
+	put_cpu_var_locked(quicklist, cpu);
 }
 
 static inline void quicklist_free(int nr, void (*dtor)(void *), void *pp)
diff -u linux-2.6/mm/quicklist.c linux-2.6.22.1/mm/quicklist.c
--- linux-2.6/mm/quicklist.c
+++ linux-2.6.22.1/mm/quicklist.c
@@ -80,7 +80,7 @@
 	struct quicklist *ql, *q;
 
 	for_each_online_cpu(cpu) {
-		ql = per_cpu(quicklist, cpu);
+		ql = per_cpu_var_locked(quicklist, cpu);
 		for (q = ql; q < ql + CONFIG_NR_QUICK; q++)
 			count += q->nr_pages;
 	}


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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux