* [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if SMP
@ 2010-09-27 11:59 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 11:59 UTC (permalink / raw)
To: linux-kernel, lm-sensors, Ingo Molnar, torvalds
Cc: Fenghua Yu, Jean Delvare, Guenter Roeck
Commit e40cc4bdfd4b89813f072f72bd9c7055814d3f0f introduced
a build breakage if CONFIG_SMP is undefined. This commit
fixes the problem.
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
---
v2: Fix compile warning due to unused variable i if SMP is undefined.
drivers/hwmon/coretemp.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index baa842a..138fe29 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -492,7 +492,9 @@ exit:
static void coretemp_device_remove(unsigned int cpu)
{
struct pdev_entry *p;
+#ifdef CONFIG_SMP
unsigned int i;
+#endif
mutex_lock(&pdev_list_mutex);
list_for_each_entry(p, &pdev_list, list) {
@@ -503,9 +505,11 @@ static void coretemp_device_remove(unsigned int cpu)
list_del(&p->list);
mutex_unlock(&pdev_list_mutex);
kfree(p);
+#ifdef CONFIG_SMP
for_each_cpu(i, cpu_sibling_mask(cpu))
if (i != cpu && !coretemp_device_add(i))
break;
+#endif
return;
}
mutex_unlock(&pdev_list_mutex);
--
1.7.0.87.g0901d
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 11:59 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 11:59 UTC (permalink / raw)
To: linux-kernel, lm-sensors, Ingo Molnar, torvalds
Cc: Fenghua Yu, Jean Delvare, Guenter Roeck
Commit e40cc4bdfd4b89813f072f72bd9c7055814d3f0f introduced
a build breakage if CONFIG_SMP is undefined. This commit
fixes the problem.
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
---
v2: Fix compile warning due to unused variable i if SMP is undefined.
drivers/hwmon/coretemp.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index baa842a..138fe29 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -492,7 +492,9 @@ exit:
static void coretemp_device_remove(unsigned int cpu)
{
struct pdev_entry *p;
+#ifdef CONFIG_SMP
unsigned int i;
+#endif
mutex_lock(&pdev_list_mutex);
list_for_each_entry(p, &pdev_list, list) {
@@ -503,9 +505,11 @@ static void coretemp_device_remove(unsigned int cpu)
list_del(&p->list);
mutex_unlock(&pdev_list_mutex);
kfree(p);
+#ifdef CONFIG_SMP
for_each_cpu(i, cpu_sibling_mask(cpu))
if (i != cpu && !coretemp_device_add(i))
break;
+#endif
return;
}
mutex_unlock(&pdev_list_mutex);
--
1.7.0.87.g0901d
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 11:59 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
@ 2010-09-27 12:59 ` Ingo Molnar
-1 siblings, 0 replies; 22+ messages in thread
From: Ingo Molnar @ 2010-09-27 12:59 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-kernel, lm-sensors, torvalds, Fenghua Yu, Jean Delvare
* Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> +#ifdef CONFIG_SMP
> +#endif
> +#ifdef CONFIG_SMP
> +#endif
Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
that doesnt involve preprocessor directives?
Thanks,
Ingo
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 12:59 ` Ingo Molnar
0 siblings, 0 replies; 22+ messages in thread
From: Ingo Molnar @ 2010-09-27 12:59 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-kernel, lm-sensors, torvalds, Fenghua Yu, Jean Delvare
* Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> +#ifdef CONFIG_SMP
> +#endif
> +#ifdef CONFIG_SMP
> +#endif
Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
that doesnt involve preprocessor directives?
Thanks,
Ingo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 12:59 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Ingo Molnar
@ 2010-09-27 13:02 ` Pekka Enberg
-1 siblings, 0 replies; 22+ messages in thread
From: Pekka Enberg @ 2010-09-27 13:02 UTC (permalink / raw)
To: Ingo Molnar
Cc: Guenter Roeck, linux-kernel, lm-sensors, torvalds, Fenghua Yu,
Jean Delvare
On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>
>> +#ifdef CONFIG_SMP
>> +#endif
>> +#ifdef CONFIG_SMP
>> +#endif
>
> Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> that doesnt involve preprocessor directives?
Implement cpu_sibling_mask() on UP so that the loop goes away?
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 13:02 ` Pekka Enberg
0 siblings, 0 replies; 22+ messages in thread
From: Pekka Enberg @ 2010-09-27 13:02 UTC (permalink / raw)
To: Ingo Molnar
Cc: Guenter Roeck, linux-kernel, lm-sensors, torvalds, Fenghua Yu,
Jean Delvare
On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>
>> +#ifdef CONFIG_SMP
>> +#endif
>> +#ifdef CONFIG_SMP
>> +#endif
>
> Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> that doesnt involve preprocessor directives?
Implement cpu_sibling_mask() on UP so that the loop goes away?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 12:59 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Ingo Molnar
@ 2010-09-27 13:15 ` Guenter Roeck
-1 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 13:15 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org,
torvalds@linux-foundation.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 08:59:46AM -0400, Ingo Molnar wrote:
>
> * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>
> > +#ifdef CONFIG_SMP
> > +#endif
> > +#ifdef CONFIG_SMP
> > +#endif
>
> Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> that doesnt involve preprocessor directives?
>
Mine too, but not at 6am in the morning (actually 5am when I wrote it),
and right now I thought it more important to fix the kernel breakage.
I'll think about it and see if I can find something better. But I would
still prefer to have this one applied and submit a cleaner solution later on
(if I find one). Preferrably, as you suggested, without any CONFIG_SMP
declarations.
Fwiw, there are several similar "#ifdef CONFIG_SMP" in this driver already,
so it would definitely be good to find a cleaner solution.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 13:15 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 13:15 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org,
torvalds@linux-foundation.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 08:59:46AM -0400, Ingo Molnar wrote:
>
> * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>
> > +#ifdef CONFIG_SMP
> > +#endif
> > +#ifdef CONFIG_SMP
> > +#endif
>
> Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> that doesnt involve preprocessor directives?
>
Mine too, but not at 6am in the morning (actually 5am when I wrote it),
and right now I thought it more important to fix the kernel breakage.
I'll think about it and see if I can find something better. But I would
still prefer to have this one applied and submit a cleaner solution later on
(if I find one). Preferrably, as you suggested, without any CONFIG_SMP
declarations.
Fwiw, there are several similar "#ifdef CONFIG_SMP" in this driver already,
so it would definitely be good to find a cleaner solution.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 12:59 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Ingo Molnar
@ 2010-09-27 14:40 ` Guenter Roeck
-1 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 14:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org,
torvalds@linux-foundation.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 08:59:46AM -0400, Ingo Molnar wrote:
>
> * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>
> > +#ifdef CONFIG_SMP
> > +#endif
> > +#ifdef CONFIG_SMP
> > +#endif
>
> Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> that doesnt involve preprocessor directives?
>
After looking through the code I thought about a much cleaner fix for
handling the SMP defines in coretemp.c and pkgtemp.c. Essentially
it will move all SMP dependencies into a single #ifdef, and also
optimize the loop in question with cpumask_first() / cpumask_next().
Maybe I can get rid of some of the SMP dependencies entirely. However,
the driver also uses phys_proc_id and cpu_core_id from cpuinfo_x86,
and those are only available if SMP is defined.
That would be way too invasive for .36, though. I'll stick with the
current patch and submit a cleanup for .37. That also fits well with
the other pending cleanups for the two drivers.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 14:40 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 14:40 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org,
torvalds@linux-foundation.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 08:59:46AM -0400, Ingo Molnar wrote:
>
> * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>
> > +#ifdef CONFIG_SMP
> > +#endif
> > +#ifdef CONFIG_SMP
> > +#endif
>
> Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> that doesnt involve preprocessor directives?
>
After looking through the code I thought about a much cleaner fix for
handling the SMP defines in coretemp.c and pkgtemp.c. Essentially
it will move all SMP dependencies into a single #ifdef, and also
optimize the loop in question with cpumask_first() / cpumask_next().
Maybe I can get rid of some of the SMP dependencies entirely. However,
the driver also uses phys_proc_id and cpu_core_id from cpuinfo_x86,
and those are only available if SMP is defined.
That would be way too invasive for .36, though. I'll stick with the
current patch and submit a cleanup for .37. That also fits well with
the other pending cleanups for the two drivers.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 13:02 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Pekka Enberg
@ 2010-09-27 23:27 ` Guenter Roeck
-1 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 23:27 UTC (permalink / raw)
To: Pekka Enberg
Cc: Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, torvalds@linux-foundation.org,
Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote:
> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> >
> >> +#ifdef CONFIG_SMP
> >> +#endif
> >> +#ifdef CONFIG_SMP
> >> +#endif
> >
> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> > that doesnt involve preprocessor directives?
>
> Implement cpu_sibling_mask() on UP so that the loop goes away?
So what is the take ? Looks like Linus won't accept my patch without someone
else signing off on it. If the uglo-meter prevents it from being accepted,
I'll be happy to submit the SMP cleanup patch instead. As I mentioned
before, I would prefer that to go into -next.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 23:27 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-27 23:27 UTC (permalink / raw)
To: Pekka Enberg
Cc: Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, torvalds@linux-foundation.org,
Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote:
> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> >
> >> +#ifdef CONFIG_SMP
> >> +#endif
> >> +#ifdef CONFIG_SMP
> >> +#endif
> >
> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> > that doesnt involve preprocessor directives?
>
> Implement cpu_sibling_mask() on UP so that the loop goes away?
So what is the take ? Looks like Linus won't accept my patch without someone
else signing off on it. If the uglo-meter prevents it from being accepted,
I'll be happy to submit the SMP cleanup patch instead. As I mentioned
before, I would prefer that to go into -next.
Guenter
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 23:27 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
@ 2010-09-27 23:44 ` Linus Torvalds
-1 siblings, 0 replies; 22+ messages in thread
From: Linus Torvalds @ 2010-09-27 23:44 UTC (permalink / raw)
To: Guenter Roeck
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
[-- Attachment #1: Type: text/plain, Size: 1357 bytes --]
On Mon, Sep 27, 2010 at 4:27 PM, Guenter Roeck
<guenter.roeck@ericsson.com> wrote:
> On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote:
>> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
>> >
>> > * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>> >
>> >> +#ifdef CONFIG_SMP
>> >> +#endif
>> >> +#ifdef CONFIG_SMP
>> >> +#endif
>> >
>> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
>> > that doesnt involve preprocessor directives?
>>
>> Implement cpu_sibling_mask() on UP so that the loop goes away?
>
> So what is the take ? Looks like Linus won't accept my patch without someone
> else signing off on it. If the uglo-meter prevents it from being accepted,
> I'll be happy to submit the SMP cleanup patch instead. As I mentioned
> before, I would prefer that to go into -next.
I'd _much_ rather see cpu_sibling_mask() on UP, and just have the loop go away.
But that would be a generic change. Something like the (UNTESTED!)
attached. It returns a NULL, since it would always be a bug to
actually _use_ the (nonexistent) mask. And that's fine for things like
for_each_cpu() that will then happily ignore the mask.
Ingo, does this make those randconfig things work? I think it's
prettier than the horrible "sprinkle #ifdef CONFIG_SMP around in
random places".
Linus
[-- Attachment #2: patch.diff --]
[-- Type: text/x-patch, Size: 483 bytes --]
include/linux/smp.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/include/linux/smp.h b/include/linux/smp.h
index cfa2d20..ad48077 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
return smp_call_function_single(0, func, info, wait);
}
+static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; }
+
#endif /* !SMP */
/*
[-- Attachment #3: Type: text/plain, Size: 153 bytes --]
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-27 23:44 ` Linus Torvalds
0 siblings, 0 replies; 22+ messages in thread
From: Linus Torvalds @ 2010-09-27 23:44 UTC (permalink / raw)
To: Guenter Roeck
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
[-- Attachment #1: Type: text/plain, Size: 1357 bytes --]
On Mon, Sep 27, 2010 at 4:27 PM, Guenter Roeck
<guenter.roeck@ericsson.com> wrote:
> On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote:
>> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
>> >
>> > * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
>> >
>> >> +#ifdef CONFIG_SMP
>> >> +#endif
>> >> +#ifdef CONFIG_SMP
>> >> +#endif
>> >
>> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
>> > that doesnt involve preprocessor directives?
>>
>> Implement cpu_sibling_mask() on UP so that the loop goes away?
>
> So what is the take ? Looks like Linus won't accept my patch without someone
> else signing off on it. If the uglo-meter prevents it from being accepted,
> I'll be happy to submit the SMP cleanup patch instead. As I mentioned
> before, I would prefer that to go into -next.
I'd _much_ rather see cpu_sibling_mask() on UP, and just have the loop go away.
But that would be a generic change. Something like the (UNTESTED!)
attached. It returns a NULL, since it would always be a bug to
actually _use_ the (nonexistent) mask. And that's fine for things like
for_each_cpu() that will then happily ignore the mask.
Ingo, does this make those randconfig things work? I think it's
prettier than the horrible "sprinkle #ifdef CONFIG_SMP around in
random places".
Linus
[-- Attachment #2: patch.diff --]
[-- Type: text/x-patch, Size: 483 bytes --]
include/linux/smp.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/include/linux/smp.h b/include/linux/smp.h
index cfa2d20..ad48077 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
return smp_call_function_single(0, func, info, wait);
}
+static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; }
+
#endif /* !SMP */
/*
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 23:44 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Linus Torvalds
@ 2010-09-28 0:07 ` Guenter Roeck
-1 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-28 0:07 UTC (permalink / raw)
To: Linus Torvalds
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 07:44:01PM -0400, Linus Torvalds wrote:
> On Mon, Sep 27, 2010 at 4:27 PM, Guenter Roeck
> <guenter.roeck@ericsson.com> wrote:
> > On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote:
> >> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
> >> >
> >> > * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> >> >
> >> >> +#ifdef CONFIG_SMP
> >> >> +#endif
> >> >> +#ifdef CONFIG_SMP
> >> >> +#endif
> >> >
> >> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> >> > that doesnt involve preprocessor directives?
> >>
> >> Implement cpu_sibling_mask() on UP so that the loop goes away?
> >
> > So what is the take ? Looks like Linus won't accept my patch without someone
> > else signing off on it. If the uglo-meter prevents it from being accepted,
> > I'll be happy to submit the SMP cleanup patch instead. As I mentioned
> > before, I would prefer that to go into -next.
>
> I'd _much_ rather see cpu_sibling_mask() on UP, and just have the loop go away.
>
> But that would be a generic change. Something like the (UNTESTED!)
Which is why I didn't do it...
> attached. It returns a NULL, since it would always be a bug to
> actually _use_ the (nonexistent) mask. And that's fine for things like
> for_each_cpu() that will then happily ignore the mask.
>
> Ingo, does this make those randconfig things work? I think it's
> prettier than the horrible "sprinkle #ifdef CONFIG_SMP around in
> random places".
>
> Linus
> include/linux/smp.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/smp.h b/include/linux/smp.h
> index cfa2d20..ad48077 100644
> --- a/include/linux/smp.h
> +++ b/include/linux/smp.h
> @@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
> return smp_call_function_single(0, func, info, wait);
> }
>
> +static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; }
> +
> #endif /* !SMP */
>
That works. Every other use of cpu_sibling_mask() is either in smp code
or surrounded with #ifdef CONFIG_SMP.
Ok, I'll submit another version of the patch with the generic change after
some more testing.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-28 0:07 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-28 0:07 UTC (permalink / raw)
To: Linus Torvalds
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 07:44:01PM -0400, Linus Torvalds wrote:
> On Mon, Sep 27, 2010 at 4:27 PM, Guenter Roeck
> <guenter.roeck@ericsson.com> wrote:
> > On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote:
> >> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@elte.hu> wrote:
> >> >
> >> > * Guenter Roeck <guenter.roeck@ericsson.com> wrote:
> >> >
> >> >> +#ifdef CONFIG_SMP
> >> >> +#endif
> >> >> +#ifdef CONFIG_SMP
> >> >> +#endif
> >> >
> >> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one
> >> > that doesnt involve preprocessor directives?
> >>
> >> Implement cpu_sibling_mask() on UP so that the loop goes away?
> >
> > So what is the take ? Looks like Linus won't accept my patch without someone
> > else signing off on it. If the uglo-meter prevents it from being accepted,
> > I'll be happy to submit the SMP cleanup patch instead. As I mentioned
> > before, I would prefer that to go into -next.
>
> I'd _much_ rather see cpu_sibling_mask() on UP, and just have the loop go away.
>
> But that would be a generic change. Something like the (UNTESTED!)
Which is why I didn't do it...
> attached. It returns a NULL, since it would always be a bug to
> actually _use_ the (nonexistent) mask. And that's fine for things like
> for_each_cpu() that will then happily ignore the mask.
>
> Ingo, does this make those randconfig things work? I think it's
> prettier than the horrible "sprinkle #ifdef CONFIG_SMP around in
> random places".
>
> Linus
> include/linux/smp.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/smp.h b/include/linux/smp.h
> index cfa2d20..ad48077 100644
> --- a/include/linux/smp.h
> +++ b/include/linux/smp.h
> @@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
> return smp_call_function_single(0, func, info, wait);
> }
>
> +static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; }
> +
> #endif /* !SMP */
>
That works. Every other use of cpu_sibling_mask() is either in smp code
or surrounded with #ifdef CONFIG_SMP.
Ok, I'll submit another version of the patch with the generic change after
some more testing.
Guenter
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-27 23:44 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Linus Torvalds
@ 2010-09-28 0:26 ` Guenter Roeck
-1 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-28 0:26 UTC (permalink / raw)
To: Linus Torvalds
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 07:44:01PM -0400, Linus Torvalds wrote:
[...]
> include/linux/smp.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/smp.h b/include/linux/smp.h
> index cfa2d20..ad48077 100644
> --- a/include/linux/smp.h
> +++ b/include/linux/smp.h
> @@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
> return smp_call_function_single(0, func, info, wait);
> }
>
> +static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; }
> +
> #endif /* !SMP */
>
Not that simple. cpu_sibling_mask() is defined in asm/smp.h, which is only
included from linux/smp.h if SMP is defined. But many other files do include
asm/smp.h directly. This causes the following error all over the place
if CONFIG_SMP is not defined.
In file included from /opt/scratch/groeck/linux-staging/arch/x86/include/asm/apic.h:473,
from arch/x86/xen/enlighten.c:46:
/opt/scratch/groeck/linux-staging/arch/x86/include/asm/smp.h:29: error: conflicting types for cpu_sibling_mask
include/linux/smp.h:152: note: previous definition of cpu_sibling_mask was here
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-28 0:26 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-28 0:26 UTC (permalink / raw)
To: Linus Torvalds
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 07:44:01PM -0400, Linus Torvalds wrote:
[...]
> include/linux/smp.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/smp.h b/include/linux/smp.h
> index cfa2d20..ad48077 100644
> --- a/include/linux/smp.h
> +++ b/include/linux/smp.h
> @@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info),
> return smp_call_function_single(0, func, info, wait);
> }
>
> +static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; }
> +
> #endif /* !SMP */
>
Not that simple. cpu_sibling_mask() is defined in asm/smp.h, which is only
included from linux/smp.h if SMP is defined. But many other files do include
asm/smp.h directly. This causes the following error all over the place
if CONFIG_SMP is not defined.
In file included from /opt/scratch/groeck/linux-staging/arch/x86/include/asm/apic.h:473,
from arch/x86/xen/enlighten.c:46:
/opt/scratch/groeck/linux-staging/arch/x86/include/asm/smp.h:29: error: conflicting types for cpu_sibling_mask
include/linux/smp.h:152: note: previous definition of cpu_sibling_mask was here
Guenter
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-28 0:26 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
@ 2010-09-28 1:00 ` Linus Torvalds
-1 siblings, 0 replies; 22+ messages in thread
From: Linus Torvalds @ 2010-09-28 1:00 UTC (permalink / raw)
To: Guenter Roeck
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 5:26 PM, Guenter Roeck
<guenter.roeck@ericsson.com> wrote:
>
> Not that simple. cpu_sibling_mask() is defined in asm/smp.h, which is only
> included from linux/smp.h if SMP is defined. But many other files do include
> asm/smp.h directly. This causes the following error all over the place
> if CONFIG_SMP is not defined.
Yeah, that's broken. Seriously broken.
And I guess that if you had happened to include <asm/smp.h> in
coretemp.c you would magically have gotten that cpu_sibling_map()
thing, and it would just work - by mistake.
And maybe that's the correct (and really hacky) fix right now. Rather
than introduce an UP-only cpu_sibling_mask(), get the SMP version, and
get it ignored.
Seriously broken, but there it is.
In the long run, I guess we should either
- disallow naked '<asm/smp.h>' includes
OR
- just make '<linux/smp.h>' unconditionally include <asm/smp.h>
to at least not have that insane "some things exist in CONFIG_SMP or
not depending on how you include files".
Linus
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-28 1:00 ` Linus Torvalds
0 siblings, 0 replies; 22+ messages in thread
From: Linus Torvalds @ 2010-09-28 1:00 UTC (permalink / raw)
To: Guenter Roeck
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 5:26 PM, Guenter Roeck
<guenter.roeck@ericsson.com> wrote:
>
> Not that simple. cpu_sibling_mask() is defined in asm/smp.h, which is only
> included from linux/smp.h if SMP is defined. But many other files do include
> asm/smp.h directly. This causes the following error all over the place
> if CONFIG_SMP is not defined.
Yeah, that's broken. Seriously broken.
And I guess that if you had happened to include <asm/smp.h> in
coretemp.c you would magically have gotten that cpu_sibling_map()
thing, and it would just work - by mistake.
And maybe that's the correct (and really hacky) fix right now. Rather
than introduce an UP-only cpu_sibling_mask(), get the SMP version, and
get it ignored.
Seriously broken, but there it is.
In the long run, I guess we should either
- disallow naked '<asm/smp.h>' includes
OR
- just make '<linux/smp.h>' unconditionally include <asm/smp.h>
to at least not have that insane "some things exist in CONFIG_SMP or
not depending on how you include files".
Linus
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if
2010-09-28 1:00 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Linus Torvalds
@ 2010-09-28 1:12 ` Guenter Roeck
-1 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-28 1:12 UTC (permalink / raw)
To: Linus Torvalds
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 09:00:59PM -0400, Linus Torvalds wrote:
> On Mon, Sep 27, 2010 at 5:26 PM, Guenter Roeck
> <guenter.roeck@ericsson.com> wrote:
> >
> > Not that simple. cpu_sibling_mask() is defined in asm/smp.h, which is only
> > included from linux/smp.h if SMP is defined. But many other files do include
> > asm/smp.h directly. This causes the following error all over the place
> > if CONFIG_SMP is not defined.
>
> Yeah, that's broken. Seriously broken.
>
> And I guess that if you had happened to include <asm/smp.h> in
> coretemp.c you would magically have gotten that cpu_sibling_map()
> thing, and it would just work - by mistake.
>
Figured.
> And maybe that's the correct (and really hacky) fix right now. Rather
Yes, that is actually what I am testing right now.
> than introduce an UP-only cpu_sibling_mask(), get the SMP version, and
> get it ignored.
>
> Seriously broken, but there it is.
>
> In the long run, I guess we should either
> - disallow naked '<asm/smp.h>' includes
> OR
> - just make '<linux/smp.h>' unconditionally include <asm/smp.h>
>
> to at least not have that insane "some things exist in CONFIG_SMP or
> not depending on how you include files".
>
Guess so.
You should get another patch in a few minutes, after my next set of compiles is done.
I'll wait for some feedback before pushing it into my integration branch.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined
@ 2010-09-28 1:12 ` Guenter Roeck
0 siblings, 0 replies; 22+ messages in thread
From: Guenter Roeck @ 2010-09-28 1:12 UTC (permalink / raw)
To: Linus Torvalds
Cc: Pekka Enberg, Ingo Molnar, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, Fenghua Yu, Jean Delvare
On Mon, Sep 27, 2010 at 09:00:59PM -0400, Linus Torvalds wrote:
> On Mon, Sep 27, 2010 at 5:26 PM, Guenter Roeck
> <guenter.roeck@ericsson.com> wrote:
> >
> > Not that simple. cpu_sibling_mask() is defined in asm/smp.h, which is only
> > included from linux/smp.h if SMP is defined. But many other files do include
> > asm/smp.h directly. This causes the following error all over the place
> > if CONFIG_SMP is not defined.
>
> Yeah, that's broken. Seriously broken.
>
> And I guess that if you had happened to include <asm/smp.h> in
> coretemp.c you would magically have gotten that cpu_sibling_map()
> thing, and it would just work - by mistake.
>
Figured.
> And maybe that's the correct (and really hacky) fix right now. Rather
Yes, that is actually what I am testing right now.
> than introduce an UP-only cpu_sibling_mask(), get the SMP version, and
> get it ignored.
>
> Seriously broken, but there it is.
>
> In the long run, I guess we should either
> - disallow naked '<asm/smp.h>' includes
> OR
> - just make '<linux/smp.h>' unconditionally include <asm/smp.h>
>
> to at least not have that insane "some things exist in CONFIG_SMP or
> not depending on how you include files".
>
Guess so.
You should get another patch in a few minutes, after my next set of compiles is done.
I'll wait for some feedback before pushing it into my integration branch.
Guenter
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2010-09-28 1:13 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-27 11:59 [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if SMP Guenter Roeck
2010-09-27 11:59 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
2010-09-27 12:59 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Ingo Molnar
2010-09-27 12:59 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Ingo Molnar
2010-09-27 13:02 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Pekka Enberg
2010-09-27 13:02 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Pekka Enberg
2010-09-27 23:27 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Guenter Roeck
2010-09-27 23:27 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
2010-09-27 23:44 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Linus Torvalds
2010-09-27 23:44 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Linus Torvalds
2010-09-28 0:07 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Guenter Roeck
2010-09-28 0:07 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
2010-09-28 0:26 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Guenter Roeck
2010-09-28 0:26 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
2010-09-28 1:00 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Linus Torvalds
2010-09-28 1:00 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Linus Torvalds
2010-09-28 1:12 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Guenter Roeck
2010-09-28 1:12 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
2010-09-27 13:15 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Guenter Roeck
2010-09-27 13:15 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
2010-09-27 14:40 ` [lm-sensors] [PATCH v2] hwmon (coretemp): Fix build breakage if Guenter Roeck
2010-09-27 14:40 ` [PATCH v2] hwmon (coretemp): Fix build breakage if SMP is undefined Guenter Roeck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.