Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756194Ab3HWWki (ORCPT ); Fri, 23 Aug 2013 18:40:38 -0400 Received: from mail-ob0-f181.google.com ([209.85.214.181]:43412 "EHLO mail-ob0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754656Ab3HWWkh (ORCPT ); Fri, 23 Aug 2013 18:40:37 -0400 MIME-Version: 1.0 In-Reply-To: References: <20130822202158.GD3490@mtj.dyndns.org> <1377205598.10300.715.camel@misato.fc.hp.com> <20130822212111.GF3490@mtj.dyndns.org> <1377209861.10300.756.camel@misato.fc.hp.com> <20130823130440.GC10322@mtj.dyndns.org> <1377274448.10300.777.camel@misato.fc.hp.com> <521793BB.9080605@gmail.com> <201308231825.r7NIPQl5015165@mail.zytor.com> <20130823203050.GB31817@sgi.com> Date: Sat, 24 Aug 2013 06:40:36 +0800 Message-ID: Subject: Re: [PATCH 0/8] x86, acpi: Move acpi_initrd_override() earlier. From: chen tang To: Yinghai Lu Cc: Russ Anderson , "H. Peter Anvin" , Zhang Yanfei , Toshi Kani , Tejun Heo , Tang Chen , Konrad Rzeszutek Wilk , Bob Moore , Lv Zheng , "Rafael J. Wysocki" , Ingo Molnar , Andrew Morton , Thomas Renninger , Yasuaki Ishimatsu , Mel Gorman , Linux Kernel Mailing List Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1510 Lines: 45 Hi Yinghai, 2013/8/24 Yinghai Lu : > On Fri, Aug 23, 2013 at 2:50 PM, chen tang wrote: >>> >>> so the DSDT is 7F493E, and total is more than 8M. >>> >>> that will need BRK to be extended 16M? >>> >> >> Then how about use early_ioremap(), and don't do it that early in >> head_32 and head64 ? > > why could early_ioremap() help? > > when to use early_ioremap()? what for? > In my understanding, acpica framework needs users to copy the override tables somewhere in the memory. And acpica will get these user specified tables when installing firmware tables. This is the acpica logic, which cannot be changed, I think. So we need to allocate memory. That is why you suggested to use BRK, right ? And the size seems to be a problem. So I suggest to use early_ioremap(). 1. After paging is enabled, before direct mapping page tables are setup, we map the initrd with early_ioremap(). And we are able to access it with va, even on 32bit. Then we can find all tables. 2. We still use memblock to allocate memory. Maybe it will be hotpluggable memory, but this memory can be freed when all the acpi tables are parsed, right ? So I want to try early_ioremap(). All these should be done in setup_arch(). Thanks. -- 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/