Hi Dann The openvz 686 version is now regression tested. I have also asked the person that had the problem with this bug to verify the amd64 kernel as well.
Best regards, // Ola On Tue, Mar 03, 2009 at 11:36:17AM -0700, dann frazier wrote: > On Tue, Mar 03, 2009 at 05:54:09PM +0100, Ola Lundqvist wrote: > > Hi Dann > > > > Looks very similar to the patch I proposed. Here it is. > > I was not aware you could add more files so I appended to the > > end of the file. > > Ah - yeah, in fact we _must_ have separate files. That gives us the > ability to generate older versions of the source tree from the > latest. Of course, that doesn't work so well for the "features" > patches, since they sometimes have to be regen'd to apply. > > > When you have different files like this, which order will it take > > them? > > That is determined by the series file. At application, the build > system parses the series file (using the changelog to determine > order), and applys all of the normal patches (series files that don't > end in "-extra"), followed by all of the -extra patches. > > I guess the only thing remaining is to verify that this patch works > well and risk of regression is low - do you have a system (or systems) > you can use to test the builds here? > > http://people.debian.org/~dannf/bugs/500876/ > > > Best regards, > > > > // Ola > > > > On Tue, Mar 03, 2009 at 09:31:36AM -0700, dann frazier wrote: > > > On Tue, Mar 03, 2009 at 07:49:05AM +0100, Ola Lundqvist wrote: > > > > Hi Dann > > > > > > > > Quoting dann frazier <da...@dannf.org>: > > > > > > > >> hey Ola, > > > >> Attached is a patch I have queued for lenny. > > > >> I've posted builds w/ this fix here: > > > >> > > > >> http://people.debian.org/~dannf/bugs/500876/ > > > > > > > > Oh, thanks a lot. > > > > > > > >> Would you be able to review the patch/test the build to confirm that > > > >> its ok for a stable update? Note that it doesn't change the ABI. > > > > > > > > Good to know that it does not change the ABI. I was just about to send > > > > you > > > > a mail with my own work regarding this issue. My machine is currently > > > > building a package with this patch. > > > > > > > > Do you have a diff file on what you did? If not I'll send mine later > > > > today. > > > > The patch applied fine and seems to build on 686 arch at least. > > > > > > > > Best regards, > > > > > > > > // Ola > > > > > > oops - forgot to attach it > > > > > Index: debian/patches/series/14-extra > > > =================================================================== > > > --- debian/patches/series/14-extra (revision 0) > > > +++ debian/patches/series/14-extra (revision 0) > > > @@ -0,0 +1 @@ > > > ++ features/all/openvz/fix-wrong-size-of-ub0_percpu.patch > > > featureset=openvz > > > Index: > > > debian/patches/features/all/openvz/fix-wrong-size-of-ub0_percpu.patch > > > =================================================================== > > > --- debian/patches/features/all/openvz/fix-wrong-size-of-ub0_percpu.patch > > > (revision 0) > > > +++ debian/patches/features/all/openvz/fix-wrong-size-of-ub0_percpu.patch > > > (revision 0) > > > @@ -0,0 +1,112 @@ > > > +From: Konstantin Khlebnikov <khlebni...@openvz.org> > > > +Date: Tue, 7 Oct 2008 08:57:48 +0000 (+0400) > > > +Subject: fix wrong size of ub0_percpu. > > > +X-Git-Tag: sync-2.6.27-15.10.08~5 > > > +X-Git-Url: > > > http://git.openvz.org/?p=linux-2.6.26-openvz;a=commitdiff_plain;h=777e8164ebf8a03e43511983cdec472f8691a8af > > > + > > > +fix wrong size of ub0_percpu. > > > + > > > +after commit b3242151 struct percpu_data dynamically allocated > > > +and have array only for 1 cpu, so static usage of it does not work. > > > + > > > +Plus rework macros for static percpu variables declaration and > > > initialization. > > > + > > > +http://bugzilla.openvz.org/show_bug.cgi?id=1039 > > > + > > > +Signed-off-by: Konstantin Khlebnikov <khlebni...@openvz.org> > > > +Signed-off-by: Pavel Emelyanov <xe...@openvz.org> > > > +--- > > > + > > > +diff --git a/include/linux/percpu.h b/include/linux/percpu.h > > > +index 5ac97e1..e159f4d 100644 > > > +--- a/include/linux/percpu.h > > > ++++ b/include/linux/percpu.h > > > +@@ -74,11 +74,20 @@ struct percpu_data { > > > + (__typeof__(ptr))__p->ptrs[(cpu)]; \ > > > + }) > > > + > > > +-#define static_percpu_ptr(sptr, sptrs) ({ \ > > > ++struct percpu_data_static { > > > ++ void *ptrs[NR_CPUS]; > > > ++}; > > > ++ > > > ++#define DEFINE_PER_CPU_STATIC(type, name) \ > > > ++ static struct percpu_data_static per_cpu_data__##name; \ > > > ++ static __typeof__(type) per_cpu__##name[NR_CPUS] > > > ++ > > > ++#define percpu_static_init(name) ({ \ > > > + int i; \ > > > + for (i = 0; i < NR_CPUS; i++) \ > > > +- (sptr)->ptrs[i] = &(sptrs)[i]; \ > > > +- (__typeof__(&sptrs[0]))__percpu_disguise(sptr);\ > > > ++ (per_cpu_data__##name).ptrs[i] = > > > &(per_cpu__##name)[i];\ > > > ++ (__typeof__(&(per_cpu__##name)[0])) \ > > > ++ __percpu_disguise(&(per_cpu_data__##name));\ > > > + }) > > > + > > > + extern void *percpu_populate(void *__pdata, size_t size, gfp_t gfp, int > > > cpu); > > > +@@ -92,7 +101,11 @@ extern void percpu_free(void *__pdata); > > > + #else /* CONFIG_SMP */ > > > + > > > + #define percpu_ptr(ptr, cpu) ({ (void)(cpu); (ptr); }) > > > +-#define static_percpu_ptr(sptr, sptrs) (&sptrs[0]) > > > ++ > > > ++#define DEFINE_PER_CPU_STATIC(type, name) \ > > > ++ static __typeof__(type) per_cpu__##name[NR_CPUS] > > > ++ > > > ++#define percpu_static_init(name) (&(per_cpu__##name)[0]) > > > + > > > + static inline void percpu_depopulate(void *__pdata, int cpu) > > > + { > > > +diff --git a/kernel/bc/beancounter.c b/kernel/bc/beancounter.c > > > +index 48fa1cc..8cd0ef0 100644 > > > +--- a/kernel/bc/beancounter.c > > > ++++ b/kernel/bc/beancounter.c > > > +@@ -629,10 +629,7 @@ static void init_beancounter_syslimits(struct > > > user_beancounter *ub) > > > + ub->ub_limit_rl.interval = 300*HZ; > > > + } > > > + > > > +-#ifdef CONFIG_SMP > > > +-static struct percpu_data ub0_percpu; > > > +-#endif > > > +-static struct ub_percpu_struct ub0_percpu_data[NR_CPUS]; > > > ++DEFINE_PER_CPU_STATIC(struct ub_percpu_struct, ub0_percpu); > > > + > > > + void __init ub_init_early(void) > > > + { > > > +@@ -645,7 +642,7 @@ void __init ub_init_early(void) > > > + init_beancounter_nolimits(ub); > > > + init_beancounter_store(ub); > > > + init_beancounter_struct(ub); > > > +- ub->ub_percpu = static_percpu_ptr(&ub0_percpu, ub0_percpu_data); > > > ++ ub->ub_percpu = percpu_static_init(ub0_percpu); > > > + > > > + memset(¤t->task_bc, 0, sizeof(struct task_beancounter)); > > > + (void)set_exec_ub(ub); > > > +diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c > > > +index 7322e50..0248f38 100644 > > > +--- a/kernel/ve/ve.c > > > ++++ b/kernel/ve/ve.c > > > +@@ -111,12 +111,7 @@ struct ve_struct ve0 = { > > > + > > > + EXPORT_SYMBOL(ve0); > > > + > > > +-#ifdef CONFIG_SMP > > > +-static struct { > > > +- void *ptrs[NR_CPUS]; > > > +-} ve0_cpu_stats; > > > +-#endif > > > +-static struct ve_cpu_stats ve0_cpu_stats_data[NR_CPUS]; > > > ++DEFINE_PER_CPU_STATIC(struct ve_cpu_stats, ve0_cpu_stats); > > > + > > > + LIST_HEAD(ve_list_head); > > > + rwlock_t ve_list_lock = RW_LOCK_UNLOCKED; > > > +@@ -136,7 +131,7 @@ void init_ve0(void) > > > + struct ve_struct *ve; > > > + > > > + ve = get_ve0(); > > > +- ve->cpu_stats = static_percpu_ptr(&ve0_cpu_stats, > > > ve0_cpu_stats_data); > > > ++ ve->cpu_stats = percpu_static_init(ve0_cpu_stats); > > > + list_add(&ve->ve_list, &ve_list_head); > > > + } > > > + > > > Index: debian/changelog > > > =================================================================== > > > --- debian/changelog (revision 12956) > > > +++ debian/changelog (working copy) > > > @@ -18,6 +18,7 @@ > > > [ dann frazier ] > > > * Fix softlockups in sungem driver (Closes: #514624) > > > * intel-agp: Add support for G41 chipset (Closes: #513228) > > > + * [openvz] Fix wrong size of ub0_percpu > > > > > > [ Martin Michlmayr ] > > > * rt2x00: Fix VGC lower bound initialization. (Closes: #510607) > > > @@ -30,7 +31,7 @@ > > > * [sparc] Revert: Reintroduce dummy PCI host controller to workaround > > > broken > > > X.org. Not supportable and breaks to many things. > > > > > > - -- dann frazier <da...@debian.org> Fri, 13 Feb 2009 10:46:22 -0700 > > > + -- dann frazier <da...@debian.org> Thu, 26 Feb 2009 13:27:19 -0700 > > > > > > linux-2.6 (2.6.26-13) unstable; urgency=high > > > > > > > > > > > -- > dann frazier > > -- --- Inguza Technology AB --- MSc in Information Technology ---- / o...@inguza.com Annebergsslingan 37 \ | o...@debian.org 654 65 KARLSTAD | | http://inguza.com/ Mobile: +46 (0)70-332 1551 | \ gpg/f.p.: 7090 A92B 18FE 7994 0C36 4FE4 18A1 B1CF 0FE5 3DD9 / --------------------------------------------------------------- -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org