FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 03-03-2009, 07:34 PM
Ola Lundqvist
 
Default Bug#500876: fix for 500876

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 <dannf@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 <khlebnikov@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=777e8164ebf8a03e435119 83cdec472f8691a8af
> > > +
> > > +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 <khlebnikov@openvz.org>
> > > +Signed-off-by: Pavel Emelyanov <xemul@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(&current->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 <dannf@debian.org> Fri, 13 Feb 2009 10:46:22 -0700
> > > + -- dann frazier <dannf@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 ----
/ ola@inguza.com Annebergsslingan 37
| opal@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-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 
Old 03-03-2009, 07:43 PM
dann frazier
 
Default Bug#500876: fix for 500876

On Tue, Mar 03, 2009 at 09:34:26PM +0100, Ola Lundqvist wrote:
> 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,

Thanks!

> // 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 <dannf@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 <khlebnikov@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=777e8164ebf8a03e435119 83cdec472f8691a8af
> > > > +
> > > > +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 <khlebnikov@openvz.org>
> > > > +Signed-off-by: Pavel Emelyanov <xemul@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(&current->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 <dannf@debian.org> Fri, 13 Feb 2009 10:46:22 -0700
> > > > + -- dann frazier <dannf@debian.org> Thu, 26 Feb 2009 13:27:19 -0700
> > > >
> > > > linux-2.6 (2.6.26-13) unstable; urgency=high
> > > >
> > >
> > >
> >
> >
> >
>

--
dann frazier




--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 
Old 03-04-2009, 06:12 AM
Cedric Jeanneret
 
Default Bug#500876: fix for 500876

Hello!

unfortunately, I can't test it anymore... finally we put an alienized kernel downloaded directly from openvz.org. We couldn't wait, as our servers are really overprovisionned... And I don't known when we'll be able to buy another server :/

Maybe someone else vith a bi-quad can test it?

Thanks for your time patching the kernel anyway. If it works, we'll use it on new servers [when we'll buy them... someday -.-]

Regards,

C.

On Tue, 3 Mar 2009 13:43:56 -0700
dann frazier <dannf@dannf.org> wrote:

> On Tue, Mar 03, 2009 at 09:34:26PM +0100, Ola Lundqvist wrote:
> > 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,
>
> Thanks!
>
> > // 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 <dannf@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 <khlebnikov@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=777e8164ebf8a03e435119 83cdec472f8691a8af
> > > > > +
> > > > > +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 <khlebnikov@openvz.org>
> > > > > +Signed-off-by: Pavel Emelyanov <xemul@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(&current->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 <dannf@debian.org> Fri, 13 Feb 2009 10:46:22 -0700
> > > > > + -- dann frazier <dannf@debian.org> Thu, 26 Feb 2009 13:27:19 -0700
> > > > >
> > > > > linux-2.6 (2.6.26-13) unstable; urgency=high
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> >
>


--
Cédric Jeanneret | System Administrator
021 619 10 32 | Camptocamp SA
cedric.jeanneret@camptocamp.com | PSE-A / EPFL
 

Thread Tools




All times are GMT. The time now is 08:20 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org