From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37AAAC47082 for ; Mon, 31 May 2021 17:11:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1939261090 for ; Mon, 31 May 2021 17:11:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233475AbhEaRNb (ORCPT ); Mon, 31 May 2021 13:13:31 -0400 Received: from prt-mail.chinatelecom.cn ([42.123.76.227]:40241 "EHLO chinatelecom.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232102AbhEaRLY (ORCPT ); Mon, 31 May 2021 13:11:24 -0400 X-Greylist: delayed 412 seconds by postgrey-1.27 at vger.kernel.org; Mon, 31 May 2021 13:11:24 EDT HMM_SOURCE_IP: 172.18.0.48:36278.1609563638 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-202.80.192.38?logid-2b89bfe9d6a14a9583ec07acf9b45452 (unknown [172.18.0.48]) by chinatelecom.cn (HERMES) with SMTP id 92446280029; Tue, 1 Jun 2021 01:02:46 +0800 (CST) X-189-SAVE-TO-SEND: +huangy81@chinatelecom.cn Received: from ([172.18.0.48]) by app0024 with ESMTP id 2b89bfe9d6a14a9583ec07acf9b45452 for qemu-devel@nongnu.org; Tue Jun 1 01:02:47 2021 X-Transaction-ID: 2b89bfe9d6a14a9583ec07acf9b45452 X-filter-score: filter<0> X-Real-From: huangy81@chinatelecom.cn X-Receive-IP: 172.18.0.48 X-MEDUSA-Status: 0 Sender: huangy81@chinatelecom.cn From: huangy81@chinatelecom.cn To: Cc: Paolo Bonzini , , Juan Quintela , "Dr. David Alan Gilbert" , Peter Xu , Hyman Subject: [PATCH v1 0/6] support dirtyrate at the granualrity of vcpu Date: Tue, 1 Jun 2021 01:02:45 +0800 Message-Id: X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org From: Hyman Huang(黄勇) Since the Dirty Ring on QEMU part has been merged recently, how to use this feature is under consideration. In the scene of migration, it is valuable to provide a more accurante interface to track dirty memory than existing one, so that the upper layer application can make a wise decision, or whatever. More importantly, dirtyrate info at the granualrity of vcpu could provide a possibility to make migration convergent by imposing restriction on vcpu. With Dirty Ring, we can calculate dirtyrate efficiently and cheaply. The old interface implemented by sampling pages, it consumes cpu resource, and the larger guest memory size become, the more cpu resource it consumes, namely, hard to scale. New interface has no such drawback. Please review, thanks ! Best Regards ! Hyman Huang(黄勇) (6): KVM: add kvm_dirty_ring_enabled function KVM: introduce dirty_pages into CPUState migration/dirtyrate: add vcpu option for qmp calc-dirty-rate migration/dirtyrate: adjust struct DirtyRateStat migration/dirtyrate: check support of calculation for vcpu migration/dirtyrate: implement dirty-ring dirtyrate calculation accel/kvm/kvm-all.c | 11 +++ include/hw/core/cpu.h | 2 + include/sysemu/kvm.h | 1 + migration/dirtyrate.c | 179 +++++++++++++++++++++++++++++++++++++---- migration/dirtyrate.h | 19 ++++- migration/trace-events | 1 + qapi/migration.json | 28 ++++++- 7 files changed, 222 insertions(+), 19 deletions(-) -- 2.24.3 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D05B6C47080 for ; Mon, 31 May 2021 17:04:48 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2C319600EF for ; Mon, 31 May 2021 17:04:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2C319600EF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chinatelecom.cn Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:59594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lnlLK-0006av-8H for qemu-devel@archiver.kernel.org; Mon, 31 May 2021 13:04:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55136) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnlJZ-000542-N4 for qemu-devel@nongnu.org; Mon, 31 May 2021 13:02:57 -0400 Received: from prt-mail.chinatelecom.cn ([42.123.76.227]:57603 helo=chinatelecom.cn) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lnlJW-0004Dn-Ve for qemu-devel@nongnu.org; Mon, 31 May 2021 13:02:57 -0400 HMM_SOURCE_IP: 172.18.0.48:36278.1609563638 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-202.80.192.38?logid-2b89bfe9d6a14a9583ec07acf9b45452 (unknown [172.18.0.48]) by chinatelecom.cn (HERMES) with SMTP id 92446280029; Tue, 1 Jun 2021 01:02:46 +0800 (CST) X-189-SAVE-TO-SEND: +huangy81@chinatelecom.cn Received: from ([172.18.0.48]) by app0024 with ESMTP id 2b89bfe9d6a14a9583ec07acf9b45452 for qemu-devel@nongnu.org; Tue Jun 1 01:02:47 2021 X-Transaction-ID: 2b89bfe9d6a14a9583ec07acf9b45452 X-filter-score: filter<0> X-Real-From: huangy81@chinatelecom.cn X-Receive-IP: 172.18.0.48 X-MEDUSA-Status: 0 From: huangy81@chinatelecom.cn To: Subject: [PATCH v1 0/6] support dirtyrate at the granualrity of vcpu Date: Tue, 1 Jun 2021 01:02:45 +0800 Message-Id: X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=42.123.76.227; envelope-from=huangy81@chinatelecom.cn; helo=chinatelecom.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kvm@vger.kernel.org, Juan Quintela , Hyman , "Dr. David Alan Gilbert" , Peter Xu , Paolo Bonzini Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Hyman Huang(黄勇) Since the Dirty Ring on QEMU part has been merged recently, how to use this feature is under consideration. In the scene of migration, it is valuable to provide a more accurante interface to track dirty memory than existing one, so that the upper layer application can make a wise decision, or whatever. More importantly, dirtyrate info at the granualrity of vcpu could provide a possibility to make migration convergent by imposing restriction on vcpu. With Dirty Ring, we can calculate dirtyrate efficiently and cheaply. The old interface implemented by sampling pages, it consumes cpu resource, and the larger guest memory size become, the more cpu resource it consumes, namely, hard to scale. New interface has no such drawback. Please review, thanks ! Best Regards ! Hyman Huang(黄勇) (6): KVM: add kvm_dirty_ring_enabled function KVM: introduce dirty_pages into CPUState migration/dirtyrate: add vcpu option for qmp calc-dirty-rate migration/dirtyrate: adjust struct DirtyRateStat migration/dirtyrate: check support of calculation for vcpu migration/dirtyrate: implement dirty-ring dirtyrate calculation accel/kvm/kvm-all.c | 11 +++ include/hw/core/cpu.h | 2 + include/sysemu/kvm.h | 1 + migration/dirtyrate.c | 179 +++++++++++++++++++++++++++++++++++++---- migration/dirtyrate.h | 19 ++++- migration/trace-events | 1 + qapi/migration.json | 28 ++++++- 7 files changed, 222 insertions(+), 19 deletions(-) -- 2.24.3