lkml.org 
[lkml]   [2003]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] irq_balance does not make sense with HT but single physical CPU
Zwane Mwaikambo wrote:

> On Wed, 26 Nov 2003, Kai Bankett wrote:
>
>> this patch should disable irq_balance threat in case of only one
>> installed physical cpu thats running in HyperThreading-mode (so reported
>> as 2 cpus).
>> I think it should make no sense to run irq_blanance in that special case
>> - please correct me if i´m wrong.
>
>
> +#ifdef CONFIG_X86_HT
> + /* On Hyper-Threading CPUs - if only one physical installed
> + balance does not make sense */
> + if (cpu_has_ht && smp_num_siblings == 2 && num_online_cpus() == 2) {
> + irqbalance_disabled = 1;
> + return 0;
> + }
> +#endif
>
> Further down, i believe the following would have the same effect;
>
> /*
> * Enable physical balance only if more than 1 physical processor
> * is present
> */
> if (smp_num_siblings > 1 && !cpus_empty(tmp))
> physical_balance = 1;
>
>
> tmp = cpu_online_map >> 2;
>
> so we drop the first two processors (logical or physical) and only enable
> physical balance if there are still processors present in the map. Or are
> you observing something else?
>

Ok - inserted an printk(smp_num_siblings) to have a look into
smp_num_siblings at that point.

It says : smp_num_siblings = 2

But anyways if physical_balance is set to 1 that won´t prevent anything
from running through/sleeping in the kernel_thread-loop.
The kernel_thread(balance_irq ...) later on will be started/will run not
matter what physical_balance says.

Do there exist any cases where smp_siblings are created without
HyperThreading ? (As far as I remember it´s only incremented/used on
i386 hyperthreaded architectures - but not 100% sure)

-> At least the if has to look like :

...
if (smp_num_siblings > 2 && !cpus_empty(tm))
physical_balance = 1;
...
(if - like in my case - smp_num_siblings == 2 on a single P4 system)

That one still does not solve the case in which the kernel_thread is not
needed and only eats resources.
Of course - maybe the whole thing can be merged together. Not sure about
that. But source will become more complex in that case - k.i.s.s. may be
the better approach.

Thanks,

Kai

--
--------------------------------------------
Kai Bankett
Network Engineering
AOL Deutschland GmbH & Co. KG

Millerntorplatz 1
20359 Hamburg
Tel.: +49 40 36159 - 7559
Fax.: +49 40 36159 - 7510
Mobil: +49 172 2353870
eMail to kbankett@aol.com
AIM: kbankett
--------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:58    [from the cache]
©2003-2011 Jasper Spaans