Re: 3.10.9: kmemleak disables all CPUs except CPU0

From: Martin MOKREJÅ
Date: Tue Sep 03 2013 - 09:28:39 EST




Catalin Marinas wrote:
> On Mon, Sep 02, 2013 at 04:51:17PM +0100, Martin MOKREJÅ wrote:
>> Catalin Marinas wrote:
>>> On Mon, Sep 02, 2013 at 04:44:52PM +0100, Max Filippov wrote:
>>>> On Mon, Sep 2, 2013 at 7:31 PM, Catalin Marinas <catalin.marinas@xxxxxxx> wrote:
>>>>> On 31 August 2013 14:35, Martin MOKREJÅ <mmokrejs@xxxxxxxxx> wrote:
>>>>>> never realized that my CPUs are gone if I compile into kernel kmemleak.
>>>>>> Is that really the aim?
>>>>>>
>>>>>> CONFIG_HAVE_DEBUG_KMEMLEAK=y
>>>>>> CONFIG_DEBUG_KMEMLEAK=y
>>>>>> CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=400
>>>>>> # CONFIG_DEBUG_KMEMLEAK_TEST is not set
>>>>>> # CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
>>>>>>
>>>>>> 1. Why isn't there /sys/devices/system/cpu/cpu0/online file?
>>>>>> Does not matter if it contains 0 or 1. It just should exist.
>>>>>
>>>>> I can't really see how kmemleak would do this, maybe other config
>>>>> options that get set/cleared in the process of selecting kmemleak. Can
>>>>
>>>> Seems to be kmemcheck: from arch/x86/mm/kmemcheck/kmemcheck.c:
>>>>
>>>> int __init kmemcheck_init(void)
>>>> {
>>>> #ifdef CONFIG_SMP
>>>> /*
>>>> * Limit SMP to use a single CPU. We rely on the fact that this code
>>>> * runs before SMP is set up.
>>>> */
>>>> if (setup_max_cpus > 1) {
>>>> printk(KERN_INFO
>>>> "kmemcheck: Limiting number of CPUs to 1.\n");
>>>> setup_max_cpus = 1;
>>>> }
>>>> #endif
>>>
>>> Ah, ok, not my problem then ;)
>>
>> Fine, so would somebody please update the help text accessible in "menuconfig"
>> for this entry? It should be clear that it has a huge performance impact if enabled.
>> And, by compiling in it is enabled by default.
>
> Otherwise, of no-one volunteers, please feel free to send a patch ;)

No, I am not a kernel developer. Please someone else do so update the "help text".

Moreover, it does not explain why /sys/devices/system/cpu/cpu0/online file is missing
while /sys/devices/system/cpu/cpu[1-3]/online do exist at the same time.

Thank you,
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/