Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp594590imj; Thu, 7 Feb 2019 08:56:44 -0800 (PST) X-Google-Smtp-Source: AHgI3Ibyvd/iphpohVIGAGucJ2qwIg7RjcHAYgdjfFC+Rw8ew9WuxAiw5VSO91EQZDoZRoV9Efm3 X-Received: by 2002:a63:c451:: with SMTP id m17mr15565514pgg.27.1549558603945; Thu, 07 Feb 2019 08:56:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549558603; cv=none; d=google.com; s=arc-20160816; b=PKR4yLLJHIIXK2sMSaGQOxXGldEkCyb9KeicwK7zcVEf4HnIBdOPVhyYYGNCSdvUWh KUmif8aq/VgAZAytqICAg7J9yZ0JetQawJxOtJyI8uZnnxWuXf6W0il678F2+FuSeRf/ 4Cb+oKTynB/hE6k1XpPwpH6wNoSzAQp7xfvFrCrtV04Ez0YssjTMgVmCP6IPBGqyn9jr klNW4UMsvILL7R9XHK55hbnBpCzSHT0U8P77lbNwg4VAaaAauBYaFqhtuaoGXCkFcTpp yzXKDTpKe14EQpBO1CahTwk5GYjcLyrn6cqjQznervRzWO6WjMKef19ZZDjKiaXZI95D u47w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id; bh=afgelWKDK/Y3MYKADfO1KqpKnCn2JdCVpNj6jq8rS0I=; b=LZypXK1XRKevX3fDuhMupYt0B3ebEvwv9jI/OmMChgAMgx550A7hLQNBvA9ZbzJ+xg Pvb+OJlb2DueHuKx83jqMJK1bKU7/JqcJXyn9H/hdNfGr7suhJDkpeDb3nkvwyJ9fOIN Z+x7cdJy5TK6/esi3rpm/lZBDLG+0NgL05QdlsEg8xbuOjI6Eor/wezvaOqSIRVUNk1H HmN9IoYwneq0Aw1Pdu7B3/QGsEuee+3qjvnnKxl4wRWvKjjfc4tZDFHz61uKDuBqMtG9 Y9q2OkuNrYtMrHGSBxOWJjZR+CmV1mAZk7M4sgEYgot3xy1EVo/ozpy6q6+iyxccFGAm +2mQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n3si9547690pld.36.2019.02.07.08.56.26; Thu, 07 Feb 2019 08:56:43 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726882AbfBGQ4B (ORCPT + 99 others); Thu, 7 Feb 2019 11:56:01 -0500 Received: from mga18.intel.com ([134.134.136.126]:36635 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726319AbfBGQ4B (ORCPT ); Thu, 7 Feb 2019 11:56:01 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Feb 2019 08:56:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,344,1544515200"; d="scan'208";a="113169778" Received: from ahduyck-desk1.jf.intel.com ([10.7.198.76]) by orsmga007.jf.intel.com with ESMTP; 07 Feb 2019 08:56:00 -0800 Message-ID: Subject: Re: [RFC PATCH 0/4] kvm: Report unused guest pages to host From: Alexander Duyck To: Nitesh Narayan Lal , Alexander Duyck , linux-mm@kvack.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: rkrcmar@redhat.com, x86@kernel.org, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, pbonzini@redhat.com, tglx@linutronix.de, akpm@linux-foundation.org, Luiz Capitulino , David Hildenbrand Date: Thu, 07 Feb 2019 08:56:00 -0800 In-Reply-To: References: <20190204181118.12095.38300.stgit@localhost.localdomain> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5 (3.28.5-2.fc28) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2019-02-07 at 09:48 -0500, Nitesh Narayan Lal wrote: > On 2/4/19 1:15 PM, Alexander Duyck wrote: > > This patch set provides a mechanism by which guests can notify the host of > > pages that are not currently in use. Using this data a KVM host can more > > easily balance memory workloads between guests and improve overall system > > performance by avoiding unnecessary writing of unused pages to swap. > > > > In order to support this I have added a new hypercall to provided unused > > page hints and made use of mechanisms currently used by PowerPC and s390 > > architectures to provide those hints. To reduce the overhead of this call > > I am only using it per huge page instead of of doing a notification per 4K > > page. By doing this we can avoid the expense of fragmenting higher order > > pages, and reduce overall cost for the hypercall as it will only be > > performed once per huge page. > > > > Because we are limiting this to huge pages it was necessary to add a > > secondary location where we make the call as the buddy allocator can merge > > smaller pages into a higher order huge page. > > > > This approach is not usable in all cases. Specifically, when KVM direct > > device assignment is used, the memory for a guest is permanently assigned > > to physical pages in order to support DMA from the assigned device. In > > this case we cannot give the pages back, so the hypercall is disabled by > > the host. > > > > Another situation that can lead to issues is if the page were accessed > > immediately after free. For example, if page poisoning is enabled the > > guest will populate the page *after* freeing it. In this case it does not > > make sense to provide a hint about the page being freed so we do not > > perform the hypercalls from the guest if this functionality is enabled. > > Hi Alexander, > > Did you get a chance to look at my v8 posting of Guest Free Page Hinting > [1]? > Considering both the solutions are trying to solve the same problem. It > will be great if we can collaborate and come up with a unified solution. > > [1] https://lkml.org/lkml/2019/2/4/993 I haven't had a chance to review these yet. I'll try to take a look later today and provide review notes based on what I find. Thanks. - Alex