2009-06-17 21:26:52

by L A Walsh

[permalink] [raw]
Subject: non-standard config in my running distro Default kernel: Effect?


I found what appears to be a "non-standard configuration" in a
distro's "Default-SMP", non-Xen kernel, where /proc/config.gz
from the running kernel has (I only ran into this doing a diff between
a manually constructed config and my running kernel):

CONFIG_X86_SMP=y
CONFIG_X86_64_SMP=y

But does NOT have:

CONFIG_USE_GENERIC_SMP_HELPERS=y

From what I can tell, this shouldn't be a possible configuration, since
CONFIG_X86_SMP should force it to be set to 'y' (not unset).

Would this config, (SMP='y', generic_smp_helpers=(undef) ) have any
odd effects? Is there a specific "effect" or "feature" one gets
by having 'smp=y' but not having the smp_helpers enabled?

In my x86_64 arch, the places I see it tested are:

block/blk-softirq.c:
#if defined(CONFIG_SMP) && defined(CONFIG_USE_GENERIC_SMP_HELPERS)
#else /* CONFIG_SMP && CONFIG_USE_GENERIC_SMP_HELPERS */
block/blk-sysfs.c:
#if defined(CONFIG_USE_GENERIC_SMP_HELPERS)
include/linux/smp.h:
#ifdef CONFIG_USE_GENERIC_SMP_HELPERS
/kernel/Kconfig.hz:
def_bool HIGH_RES_TIMERS && (!SMP || USE_GENERIC_SMP_HELPERS)
kernel/softirq.c:
#ifdef CONFIG_USE_GENERIC_SMP_HELPERS
#else /* CONFIG_USE_GENERIC_SMP_HELPERS */

---
It appears it may disable some softirq routines.

In include/linux/smp.h, having it undefined would disable the definition
of the functions:
generic_smp_call_function_single_interrupt,
generic_smp_call_function_interrupt,
ipi_call_lock, ipi_call_unlock,
ipi_call_lock_irq & ipi_call_unlock_irq

Does this have any performance or integrity (lost interrupt)
implications?











2009-06-17 21:46:33

by L A Walsh

[permalink] [raw]
Subject: IGNORE: Re: non-standard config in my running distro Default kernel: Effect?

Please ignore this non-issue. I should have sorted my
compare files. (Sigh)...

Linda Walsh wrote:
>
> I found what appears to be a "non-standard configuration" in a
> distro's "Default-SMP", non-Xen kernel, where /proc/config.gz
> from the running kernel has (I only ran into this doing a diff between
> a manually constructed config and my running kernel):
>
> CONFIG_X86_SMP=y
> CONFIG_X86_64_SMP=y
>
> But does NOT have:
>
> CONFIG_USE_GENERIC_SMP_HELPERS=y
>
> From what I can tell, this shouldn't be a possible configuration, since
> CONFIG_X86_SMP should force it to be set to 'y' (not unset).
>
> Would this config, (SMP='y', generic_smp_helpers=(undef) ) have any
> odd effects? Is there a specific "effect" or "feature" one gets
> by having 'smp=y' but not having the smp_helpers enabled?
>
> In my x86_64 arch, the places I see it tested are:
>
> block/blk-softirq.c:
> #if defined(CONFIG_SMP) && defined(CONFIG_USE_GENERIC_SMP_HELPERS)
> #else /* CONFIG_SMP && CONFIG_USE_GENERIC_SMP_HELPERS */
> block/blk-sysfs.c:
> #if defined(CONFIG_USE_GENERIC_SMP_HELPERS)
> include/linux/smp.h:
> #ifdef CONFIG_USE_GENERIC_SMP_HELPERS
> /kernel/Kconfig.hz:
> def_bool HIGH_RES_TIMERS && (!SMP || USE_GENERIC_SMP_HELPERS)
> kernel/softirq.c:
> #ifdef CONFIG_USE_GENERIC_SMP_HELPERS
> #else /* CONFIG_USE_GENERIC_SMP_HELPERS */
>
> ---
> It appears it may disable some softirq routines.
>
> In include/linux/smp.h, having it undefined would disable the
> definition of the functions:
> generic_smp_call_function_single_interrupt,
> generic_smp_call_function_interrupt,
> ipi_call_lock, ipi_call_unlock,
> ipi_call_lock_irq & ipi_call_unlock_irq
>
> Does this have any performance or integrity (lost interrupt)
> implications?
>
>
>
>
>
>
>
>
>
>
>
>