Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp3058770pxb; Mon, 19 Apr 2021 22:47:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyWgeK3GWh8uaoi23iTGJEY0QMw2BmxnxZQsx3BmhJPO7HiSgDS5a7sCaWEhILQngm4Hxqw X-Received: by 2002:a62:824c:0:b029:21b:66f5:c813 with SMTP id w73-20020a62824c0000b029021b66f5c813mr22532753pfd.32.1618897667582; Mon, 19 Apr 2021 22:47:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618897667; cv=none; d=google.com; s=arc-20160816; b=n70N7WXfWBAed+F9rr8IYF8Gm6J3v/iho+sOLmE3F/fdysja6GUMN3TmXs5EaLSgcB bxcd3W0hYe4pPfFkE0pA5VioyhpdOX1kjTcGv0lf/pioxb4eBL9lu/q5ugRBlxr42a8k feNCdCWJlpAPFncC9mVmaKQBtQ+jfm2Gq8JbDr6W2udERpiSbrKPiYR3DleQiSQjRXO/ 1IHXsB4U7O4KF69AdwRkQSdkALejSV51LvYInd3wv9zhZuhhc3tCajUOx/EiCz2TTY9K fIDeXc9Ak0+Z5GRAwM+mz0HKsoGuB78JsC5YkHO145eS77m6fLsFZmwTxpQDXg6PoK0z h8Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:subject:message-id:date:from:mime-version :dkim-signature; bh=fXjwTDCI0JfAHocBzWWyLFaiapoMwBLjcCP3SLFYBAk=; b=i1hGWzz/V6t9rsYonqUEeEOGk2jAMRJaf0Wmb/V21neB/jHLzdxAC+Xf92AO+vpxDS D8VpnHawIkZ5Kl3TTQSMbcaEs0RKpXyrH04fJzf+ju/qjWKE1ijhAY3tWqYwcAtkqa7I qcki3qlrH+Uvq4XTaN0oI32a8W2YW4mrHaRuSyAZ/ply5Hou+38g8MzIa9jgNnXT3PwR lAS7KaQ9R0dBlgPkK2Mcld+wAdoTAcRyzmiJbA82xqJp8Plh5S/oEPrC10L/iO/4GiC/ vkN5erqN5uNQIXgLcua7OkVvnBQ6pxWwKpAMXlJN8TI9o/K6ctgx1XjudzO0JbEPk+ln TtYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MnPb9ImW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x3si2130953pjo.16.2021.04.19.22.47.35; Mon, 19 Apr 2021 22:47:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MnPb9ImW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229892AbhDTFqg (ORCPT + 99 others); Tue, 20 Apr 2021 01:46:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229450AbhDTFqf (ORCPT ); Tue, 20 Apr 2021 01:46:35 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51D5EC06174A; Mon, 19 Apr 2021 22:46:03 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id w23so40590498ejb.9; Mon, 19 Apr 2021 22:46:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=fXjwTDCI0JfAHocBzWWyLFaiapoMwBLjcCP3SLFYBAk=; b=MnPb9ImWv0p0rgMN2zYifNQWHmjZOaByAYPAptzLn1ZqIziA9jpBwxd1EIPMlOzkAy 8K2i+D3JXK99sIX2yLjyFgQaVdBE8KoeHpQtMz1to32aIRbKohDS6bSsZcY/Ag+/Vd3W xwbL5Hqp3L+zx4LOKKe3cx7Q+AWAWoIaMVubhDxB7f/OxRc2eNyqUnxXrhhlN6cCYJB2 4rrO8MuAIUsViCaMxiMGLPDiLma+jOb4o+mV6Bk+CGl09I2lZFbN9M+tjqM70gZmTRv8 +QERKuH+uMjI4A+rlZm9an1n76gBSC724dzenMRZ/a4y9o1pgM4jnhAVgd/vfhMABicw 0Dog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=fXjwTDCI0JfAHocBzWWyLFaiapoMwBLjcCP3SLFYBAk=; b=K4jlSL4V8Wfs4pUcEpPasulQNYh7v+aIS08ASz0QTWDEunS4stO13x7KDGEHvNXPLx Lx8k7eYqZWOcMEKLpWRNOvdt87OcELFB6x4HUgLvQBioWz7Qf7C2s6X9Fw3iXhC9/kdr 4YsmNWINr4+5Qxz6yavjDo552e24vYq59rgvyW49vWvgINVPbVDz1kk3FYTENmPcBHbL rtgcAQpTP+rCDO9e1EERtgF0OKdF6MvKz75R1FMFHkSYbSb3OMlG2zuK2J8CTcdkULP0 E2CsneMxuKY1k29NI3l5l5pyLFIAkuCDp4tC9lcb+g351jkUnX0KBmTKlKAelldg7/mk ZNow== X-Gm-Message-State: AOAM5306Y30994fTkvwFE2PbtDnQyUU/RuPEDC4zJp6NZCGnb3P6x6ra Sw4Y+zd6GsqM8/aGLiIQjsiiC76KS17iLD10Yew= X-Received: by 2002:a17:906:37c9:: with SMTP id o9mr25241115ejc.285.1618897561979; Mon, 19 Apr 2021 22:46:01 -0700 (PDT) MIME-Version: 1.0 From: Shivank Garg Date: Tue, 20 Apr 2021 11:15:45 +0530 Message-ID: Subject: Doubt regarding memory allocation in KVM To: Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, I'm learning about qemu KVM, looking into code and experimenting on it. I have the following doubts regarding it, I would be grateful if you help me to get some idea on them. 1. I observe that KVM allocates memory to guests when it needs it but doesn't take it back (except for ballooning case). Also, the Qemu/KVM process does not free the memory even when the guest is rebooted. In this case, Does the Guest VM get access to memory already pre-filled with some garbage from the previous run?? (Since the host would allocate zeroed pages to guests the first time it requests but after that it's up to guests). Can it be a security issue? 2. How does the KVM know if GPFN (guest physical frame number) is backed by an actual machine frame number in host? If not mapped, then it faults in the host and allocates a physical frame for guests in the host. (kvm_mmu_page_fault) 3. How/where can I access the GPFNs in the host? Is "gfn_t gfn = gpa >> PAGE_SHIFT" and "gpa_t cr2_or_gpa" in the KVM page fault handler, x86 is the same as GPFN. (that is can I use pfn_to_page in guest VM to access the struct page in Guest) Thank You. Best Regards, Shivank Garg M.Tech Student, IIT Kanpur