Re: [PATCH] - Mapping ACPI tables as CACHED

From: Milton Miller
Date: Wed Dec 15 2010 - 01:17:53 EST


On Tue, 14 Dec 2010 at about 23:35:28 -0500 (EST), Len Brown wrote:
>
> [ 1.444475] LENB: free_initmem() NOT!
> is where free_initmem(); would have been called.
>
> So the calls to acpi_os_map_memory() at 2.586160, kill the machine.
>
> My guess is that they are related to the opregion stuff used by i915;
> but there is no reason that acpi_os_map_memory can't be called
> as a result of AML at run-time any-time later.
>
> BTW. what, exactly does this notation do for us?
>
> void __iomem *__init_refok acpi_os_map_memory(...) {

A function that returns a void pointer for dereference via iomem
accessors that is not init but may conditionally call init text.

__init_refok says that the code was audited to conditionally
use init vs non-init text and data.

>
> Also, I see no calls within E820_RAM.
>
> I see a call at 0.534537 which is not in E820_RAM, ACPI, or NVS,
> but is in a reserved region.
>
> I'm not sure the concept of checking against E820
> is better than simply calling ioremap_cache() always.
>
> thanks,

after digging back through the thread for the patch, it would seem
that both __acpi_map_table_permanent and e820_all_mapped would
need to be moved from init to normal text, as this is replacing
the non-init path. I'll let the maintainers decide if that is the
right solution (vs unconditonally mapping cached, or something else).

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