Re: [PATCH 2/2] x86,mm,64bit: Round up memory boundary forinit_memory_mapping_high()

From: Ingo Molnar
Date: Fri Feb 25 2011 - 05:03:53 EST



* Yinghai Lu <yinghai@xxxxxxxxxx> wrote:

> init_memory_mapping_active_regions(unsigned long start, unsigned long end)
> {
> struct mapping_work_data data;
> + int use_gbpages;
> +
> + /* see init_memory_mapping() for the setting */
> +#if defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KMEMCHECK)
> + use_gbpages = 0;
> +#else
> + use_gbpages = direct_gbpages;
> +#endif

Sigh. You should *never* ever even think about writing such code. It only results in
crap, and in crap duplicated elsewhere as well:

if defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KMEMCHECK)
/*
* For CONFIG_DEBUG_PAGEALLOC, identity mapping will use small pages.
* This will simplify cpa(), which otherwise needs to support splitting
* large pages into small in interrupt context, etc.
*/
use_pse = use_gbpages = 0;
#else
use_pse = cpu_has_pse;
use_gbpages = direct_gbpages;
#endif

Thanks,

Ingo
--
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/