From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46721) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1jwK-0006Tk-Jx for qemu-devel@nongnu.org; Tue, 23 Jul 2013 17:16:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1jwG-0005DX-Tj for qemu-devel@nongnu.org; Tue, 23 Jul 2013 17:16:12 -0400 Mime-Version: 1.0 (Apple Message framework v1278) Content-Type: text/plain; charset=us-ascii From: Alexander Graf In-Reply-To: <1374608328.15592.36@snotra> Date: Tue, 23 Jul 2013 23:15:59 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <7EA7921E-AF13-4485-94E5-B4068CEDAA9E@suse.de> References: <1374506897-41089-1-git-send-email-agraf@suse.de> <1374608328.15592.36@snotra> Subject: Re: [Qemu-devel] [PATCH] PPC: E500: Generate device tree on reset List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Scott Wood Cc: "qemu-ppc@nongnu.org list:PowerPC" , qemu-devel Developers On 23.07.2013, at 21:38, Scott Wood wrote: > On 07/22/2013 10:28:17 AM, Alexander Graf wrote: >> Today we generate the device tree once on machine initialization and = then >> store the finalized blob in memory to reload it on reset. >> This is bad for 2 reasons. First we potentially waste a bunch of RAM = for no >> good reason, as we have all information required to regenerate the = device >> tree available anyways. >> The second reason is even more important. On machine init when we = generate >> the device tree for the first time, we don't have all of the devices = fully >> initialized yet. But the device tree needs to potentially walk = devices to >> put information about them into the device tree. >=20 > If you can't produce the entire device tree at init time, how can you = calculate its size with a dry run? >=20 > Device trees are generally pretty small; couldn't we just set a = maximum size and allocate that much space? It's what we do, unless we load it from the disk. In that case we take = the fdt size from disk. Alex