From patchwork Mon Jun 18 13:21:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Cao, Lei" X-Patchwork-Id: 10471371 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B6D6B6029B for ; Mon, 18 Jun 2018 13:21:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A5E23289C6 for ; Mon, 18 Jun 2018 13:21:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9A63B289CD; Mon, 18 Jun 2018 13:21:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22174289C6 for ; Mon, 18 Jun 2018 13:21:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933585AbeFRNVe (ORCPT ); Mon, 18 Jun 2018 09:21:34 -0400 Received: from us-smtp-delivery-131.mimecast.com ([216.205.24.131]:37700 "EHLO us-smtp-delivery-131.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933182AbeFRNVd (ORCPT ); Mon, 18 Jun 2018 09:21:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=StratusTechnologies.onmicrosoft.com; s=selector1-stratus-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ru0W08wF1mGOVYbRmFriBvEDjb6WBqtreK9l2TdQUkM=; b=X5aAyD3qWBU6woqnKVHUetF+RFblwnaNb7JhJ4btXGykBSKZyoS16ebO8AVhhFiIR93Mup9oa6AezKObkU+8YLmIGjvFzuiQVoPqOExZGl32SibUwy2veNxJuDwqEej2zOouK9CD/unwVodfwEDxd7xgmjUfdmN5akREnzucO2k= Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01lp0184.outbound.protection.outlook.com [216.32.181.184]) (Using TLS) by us-smtp-1.mimecast.com with ESMTP id us-mta-169-2xrJ8oqyN5eXWXaXq_tMMg-1; Mon, 18 Jun 2018 09:21:32 -0400 Received: from BYAPR08MB3973.namprd08.prod.outlook.com (52.135.194.143) by BYAPR08MB4438.namprd08.prod.outlook.com (20.176.251.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.19; Mon, 18 Jun 2018 13:21:30 +0000 Received: from BYAPR08MB3973.namprd08.prod.outlook.com ([fe80::a8c6:d203:dc46:b5ec]) by BYAPR08MB3973.namprd08.prod.outlook.com ([fe80::a8c6:d203:dc46:b5ec%3]) with mapi id 15.20.0863.016; Mon, 18 Jun 2018 13:21:30 +0000 From: "Cao, Lei" To: "kvm@vger.kernel.org" Subject: [PATCH v3 4/6] KVM: add kvm/vcpu argument to mark_dirty_page_in_slot Thread-Topic: [PATCH v3 4/6] KVM: add kvm/vcpu argument to mark_dirty_page_in_slot Thread-Index: AQHUBwdEzo9X0nixUEq7ffjSQ9b9dQ== Date: Mon, 18 Jun 2018 13:21:30 +0000 Message-ID: References: <201806181256.w5ICuglE024403@dev1.evr.stratus.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [198.97.42.5] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BYAPR08MB4438; 7:BvvOIwM+eUAcVUqy2bS+uSc/5WVK0r9O8R/HAnLZw8Y02a2iLq5Lcm6QFf86JVpWpvRovL3hdBuuJpMHn1Fs9RS2xPwDMziBbCrxvUR1NNXW8lkKNsNAu6iM7fIlLyA6brhJ4xhzRfjB64V7NjioUIncaPT2M4moBkInhJM8AaNYKBskbDnBqF8iv1X/rfmgCXmr23eRl/QNT83DqymEGHXrNVTFQLNi5/FiMOrJz7i4APe8VgK/27bWEp5p9ldM; 20:ICkSVsiOOnitAMktGNg2ZSI+o/PKq0mLtY/DS5PzH3m+dacXF7Xcy27dE7C1zmq//DEIaF0cZ7oTL4skDxv9gkV9J2868vcc/hHVRDIDSIy3SEVRFwWV7V6Iqs9eyqQVyrMMQituBiqWS5BgqNQ8bAwHQXiiDZwJy+rDb6eM5Oo= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: c29773a9-e02b-4fa9-aabd-08d5d51e6778 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR08MB4438; x-ms-traffictypediagnostic: BYAPR08MB4438: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:BYAPR08MB4438; BCL:0; PCL:0; RULEID:; SRVR:BYAPR08MB4438; x-forefront-prvs: 0707248B64 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39850400004)(376002)(346002)(396003)(39380400002)(366004)(199004)(189003)(33656002)(68736007)(2906002)(102836004)(2351001)(26005)(8676002)(478600001)(6436002)(97736004)(72206003)(6506007)(55016002)(81166006)(81156014)(1730700003)(3280700002)(3660700001)(5640700003)(8936002)(6916009)(14454004)(2900100001)(76176011)(7696005)(5660300001)(86362001)(106356001)(105586002)(66066001)(6116002)(3846002)(316002)(476003)(486006)(53936002)(446003)(305945005)(99286004)(2501003)(7736002)(25786009)(5250100002)(9686003)(186003)(74316002)(14143004); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR08MB4438; H:BYAPR08MB3973.namprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-microsoft-antispam-message-info: IGmOnLgNrqWFip5ei4sQJ7pYVeCFEiM1Rllmd4OIKF2QNgvnKviB6m443QX/0jza/Ceuo4LKBsTiQCABRKEs6Lq54nqb/burKW0XWJsNLnMkxn+ZS5n8y8KarqyY7c97WrI5p9dk2doGzfv+gwMsS8u8gOKYDCMKB6ZjhHaIbV0lOTeCVVWovX6cjQd9jPqqDPXGPuAZvpmoffkw3ybQ54rzIeXSvj5AOwOQ/4tx4SgBi9xEKbGCkk2qFEKUOLi/NqBOn9F7QEoJOx+smp/Uyd+0y0Da5xkAmBsTAwK5+Upwk3s1I9LBSR3+Xp2h9b5pKsAb2Xmpgmx1GlpBA10DyA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: stratus.com X-MS-Exchange-CrossTenant-Network-Message-Id: c29773a9-e02b-4fa9-aabd-08d5d51e6778 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2018 13:21:30.3395 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: de36b473-b8ad-46ff-837f-9da16b8d1b77 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR08MB4438 X-MC-Unique: 2xrJ8oqyN5eXWXaXq_tMMg-1 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Cao, Lei Signed-off-by: Paolo Bonzini --- virt/kvm/kvm_main.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index bdccaf8..e8b3d98 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -123,7 +123,10 @@ static long kvm_vcpu_compat_ioctl(struct file *file, unsigned int ioctl, static void kvm_io_bus_destroy(struct kvm_io_bus *bus); -static void mark_page_dirty_in_slot(struct kvm_memory_slot *memslot, gfn_t gfn); +static void mark_page_dirty_in_slot(struct kvm *kvm, + struct kvm_vcpu *vcpu, + struct kvm_memory_slot *memslot, + gfn_t gfn); __visible bool kvm_rebooting; EXPORT_SYMBOL_GPL(kvm_rebooting); @@ -1836,7 +1839,8 @@ int kvm_vcpu_read_guest_atomic(struct kvm_vcpu *vcpu, gpa_t gpa, } EXPORT_SYMBOL_GPL(kvm_vcpu_read_guest_atomic); -static int __kvm_write_guest_page(struct kvm_memory_slot *memslot, gfn_t gfn, +static int __kvm_write_guest_page(struct kvm *kvm, struct kvm_vcpu *vcpu, + struct kvm_memory_slot *memslot, gfn_t gfn, const void *data, int offset, int len) { int r; @@ -1848,7 +1852,7 @@ static int __kvm_write_guest_page(struct kvm_memory_slot *memslot, gfn_t gfn, r = __copy_to_user((void __user *)addr + offset, data, len); if (r) return -EFAULT; - mark_page_dirty_in_slot(memslot, gfn); + mark_page_dirty_in_slot(kvm, vcpu, memslot, gfn); return 0; } @@ -1857,7 +1861,8 @@ int kvm_write_guest_page(struct kvm *kvm, gfn_t gfn, { struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); - return __kvm_write_guest_page(slot, gfn, data, offset, len); + return __kvm_write_guest_page(kvm, NULL, slot, gfn, data, + offset, len); } EXPORT_SYMBOL_GPL(kvm_write_guest_page); @@ -1866,7 +1871,8 @@ int kvm_vcpu_write_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, { struct kvm_memory_slot *slot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); - return __kvm_write_guest_page(slot, gfn, data, offset, len); + return __kvm_write_guest_page(vcpu->kvm, vcpu, slot, gfn, data, + offset, len); } EXPORT_SYMBOL_GPL(kvm_vcpu_write_guest_page); @@ -1978,7 +1984,7 @@ int kvm_write_guest_offset_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc, r = __copy_to_user((void __user *)ghc->hva + offset, data, len); if (r) return -EFAULT; - mark_page_dirty_in_slot(ghc->memslot, gpa >> PAGE_SHIFT); + mark_page_dirty_in_slot(kvm, NULL, ghc->memslot, gpa >> PAGE_SHIFT); return 0; } @@ -2043,7 +2049,9 @@ int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len) } EXPORT_SYMBOL_GPL(kvm_clear_guest); -static void mark_page_dirty_in_slot(struct kvm_memory_slot *memslot, +static void mark_page_dirty_in_slot(struct kvm *kvm, + struct kvm_vcpu *vcpu, + struct kvm_memory_slot *memslot, gfn_t gfn) { if (memslot && memslot->dirty_bitmap) { @@ -2058,7 +2066,7 @@ void mark_page_dirty(struct kvm *kvm, gfn_t gfn) struct kvm_memory_slot *memslot; memslot = gfn_to_memslot(kvm, gfn); - mark_page_dirty_in_slot(memslot, gfn); + mark_page_dirty_in_slot(kvm, NULL, memslot, gfn); } EXPORT_SYMBOL_GPL(mark_page_dirty); @@ -2067,7 +2075,7 @@ void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn) struct kvm_memory_slot *memslot; memslot = kvm_vcpu_gfn_to_memslot(vcpu, gfn); - mark_page_dirty_in_slot(memslot, gfn); + mark_page_dirty_in_slot(vcpu->kvm, vcpu, memslot, gfn); } EXPORT_SYMBOL_GPL(kvm_vcpu_mark_page_dirty);