From patchwork Mon Mar 26 10:03:35 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wen Congyang X-Patchwork-Id: 148676 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 7656DB6F98 for ; Mon, 26 Mar 2012 21:01:45 +1100 (EST) Received: from localhost ([::1]:58302 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC6kB-0008RN-71 for incoming@patchwork.ozlabs.org; Mon, 26 Mar 2012 06:01:43 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56976) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC6jw-0008Qm-GI for qemu-devel@nongnu.org; Mon, 26 Mar 2012 06:01:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SC6jq-0000b8-4N for qemu-devel@nongnu.org; Mon, 26 Mar 2012 06:01:28 -0400 Received: from [222.73.24.84] (port=18958 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC6jp-0000ab-OV for qemu-devel@nongnu.org; Mon, 26 Mar 2012 06:01:22 -0400 X-IronPort-AV: E=Sophos;i="4.75,319,1330876800"; d="scan'208";a="4620707" Received: from unknown (HELO tang.cn.fujitsu.com) ([10.167.250.3]) by song.cn.fujitsu.com with ESMTP; 26 Mar 2012 18:01:08 +0800 Received: from mailserver.fnst.cn.fujitsu.com (tang.cn.fujitsu.com [127.0.0.1]) by tang.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id q2QA1Hl7024470; Mon, 26 Mar 2012 18:01:18 +0800 Received: from [10.167.225.226] ([10.167.225.226]) by mailserver.fnst.cn.fujitsu.com (Lotus Domino Release 8.5.1FP4) with ESMTP id 2012032617590588-29257 ; Mon, 26 Mar 2012 17:59:05 +0800 Message-ID: <4F703EF7.4070503@cn.fujitsu.com> Date: Mon, 26 Mar 2012 18:03:35 +0800 From: Wen Congyang User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100413 Fedora/3.0.4-2.fc13 Thunderbird/3.0.4 MIME-Version: 1.0 To: qemu-devel , Jan Kiszka , Dave Anderson , HATAYAMA Daisuke , Luiz Capitulino , Eric Blake , Anthony Liguori References: <4F703DD6.9050000@cn.fujitsu.com> In-Reply-To: <4F703DD6.9050000@cn.fujitsu.com> X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.1FP4|July 25, 2010) at 2012-03-26 17:59:05, Serialize by Router on mailserver/fnst(Release 8.5.1FP4|July 25, 2010) at 2012-03-26 17:59:07, Serialize complete at 2012-03-26 17:59:07 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 222.73.24.84 Subject: [Qemu-devel] [PATCH 06/12 v11] Add API to get memory mapping without do paging X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org crash does not need the virtual address and physical address mapping, and the mapping does not include the memory that is not referenced by the page table. crash does not use the virtual address, so we can create the mapping for all physical memory(virtual address is always 0). This patch provides a API to do this thing, and it will be used in the following patch. Signed-off-by: Wen Congyang --- memory_mapping.c | 9 +++++++++ memory_mapping.h | 3 +++ 2 files changed, 12 insertions(+), 0 deletions(-) diff --git a/memory_mapping.c b/memory_mapping.c index b92e2f6..9a2ffe6 100644 --- a/memory_mapping.c +++ b/memory_mapping.c @@ -198,3 +198,12 @@ int qemu_get_guest_memory_mapping(MemoryMappingList *list) return 0; } #endif + +void qemu_get_guest_simple_memory_mapping(MemoryMappingList *list) +{ + RAMBlock *block; + + QLIST_FOREACH(block, &ram_list.blocks, next) { + create_new_memory_mapping(list, block->offset, 0, block->length); + } +} diff --git a/memory_mapping.h b/memory_mapping.h index 4d44641..a583e44 100644 --- a/memory_mapping.h +++ b/memory_mapping.h @@ -59,4 +59,7 @@ static inline int qemu_get_guest_memory_mapping(MemoryMappingList *list) } #endif +/* get guest's memory mapping without do paging(virtual address is 0). */ +void qemu_get_guest_simple_memory_mapping(MemoryMappingList *list); + #endif