Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4440843pxf; Tue, 30 Mar 2021 07:56:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydwmKNpiShwDxKj25/P6nIIIGOP/tHN1OggBPWonXDWmWTHIsUjW8JjgRmcRWQ2r+YZhco X-Received: by 2002:a17:906:e84:: with SMTP id p4mr33510770ejf.248.1617116174219; Tue, 30 Mar 2021 07:56:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617116174; cv=none; d=google.com; s=arc-20160816; b=VkisnBe5+eWjpv/29+TRxeXV2E8susDw6LzkaU+9kLAn/4ZM4c17BvniMJGohbUn9c Yo/rKonFo92ouANUTEpAyql9oXF0W3CVhUGwxbEYJemTbPSimXFpW/BJuOeQNuhJVom2 VtDGXdw+J3TWDUSrP/szNTdARj/aMhiD2mELQseS88BSRQIPaQh4kZQMKHlcVn6BDtGK pkLFwbli0NGel7O4Z7AzXVDuWG8CuJZFyiCSp0720Xa42sWmx+UNPC2Z803NoLYn6Fhd pv+ZmDGqi1kI4O/+TirsqmjQhcipm6krdPemtUC5t0WUID4OW0hQan3MrKaKMXttnkrZ jClg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=k5vn8QI287ScUId/uCtf4xDFlVyqY6Cg+EDCZErCAWQ=; b=t/qqoQSqgze0hRbPgemylxdvq3JwtavH1xYXO0U15uOrU8GsbRqSRJRJvT43QUxgXs KpJCGnZivDz6CeaHEDRK5WDUB+T5S4a3hHlwddvAOCGVOgX8rPFMNhZOlL5Pd3C7YrKy N5qg0YxNEynmEu5DZBJG8nj9Kd8gWuaFM7DzQqGlDJNbyxybd918RwKI5JO67SMNpxgJ DNwF4/TA7jhtdrFVoNaZo8nfN/gZpsXg49MpTTO4ITd5fIM1m5jkMqoD3fKMeF3/k+gr JrHCvf2VvDeFl93QNd+m0XsaWRkSf+Hdn8B22bYIFFpezgmQthSIpY+s1heMmnF9MqV0 uTKQ== ARC-Authentication-Results: i=1; mx.google.com; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r9si15659404edy.4.2021.03.30.07.55.51; Tue, 30 Mar 2021 07:56:14 -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; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232101AbhC3OzB (ORCPT + 99 others); Tue, 30 Mar 2021 10:55:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:55388 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231812AbhC3Oyq (ORCPT ); Tue, 30 Mar 2021 10:54:46 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A5B6961921; Tue, 30 Mar 2021 14:54:45 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lRFlT-004hoo-ML; Tue, 30 Mar 2021 15:54:43 +0100 From: Marc Zyngier To: netdev@vger.kernel.org, yangbo.lu@nxp.com, john.stultz@linaro.org, tglx@linutronix.de, pbonzini@redhat.com, seanjc@google.com, richardcochran@gmail.com, Mark.Rutland@arm.com, will@kernel.org, suzuki.poulose@arm.com, Andre.Przywara@arm.com, steven.price@arm.com, lorenzo.pieralisi@arm.com, sudeep.holla@arm.com Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Steve.Capper@arm.com, justin.he@arm.com, jianyong.wu@arm.com, kernel-team@android.com Subject: [PATCH v19 0/7] KVM: arm64: Add host/guest KVM-PTP support Date: Tue, 30 Mar 2021 15:54:23 +0100 Message-Id: <20210330145430.996981-1-maz@kernel.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: netdev@vger.kernel.org, yangbo.lu@nxp.com, john.stultz@linaro.org, tglx@linutronix.de, pbonzini@redhat.com, seanjc@google.com, richardcochran@gmail.com, Mark.Rutland@arm.com, will@kernel.org, suzuki.poulose@arm.com, Andre.Przywara@arm.com, steven.price@arm.com, lorenzo.pieralisi@arm.com, sudeep.holla@arm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Steve.Capper@arm.com, justin.he@arm.com, jianyong.wu@arm.com, kernel-team@android.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Given that this series[0] has languished in my Inbox for the best of the past two years, and in an effort to eventually get it merged, I've taken the liberty to pick it up and do the changes I wanted to see instead of waiting to go through yet another round. All the patches have a link to their original counterpart (though I have squashed a couple of them where it made sense). Tested both 64 and 32bit guests for a good measure. Of course, I claim full responsibility for any bug introduced here. Unless someone screams now, this is going in 5.13, because I'm frankly fed up with it! ;-) * From v18 [2] - Fix kvm_hypercall2() return type - Rebased on top of 5.12-rc3 - Added RBs * From v17 [1]: - Fixed compilation issue on 32bit systems not selecting CONFIG_HAVE_ARM_SMCCC_DISCOVERY - Fixed KVM service discovery not properly parsing the reply from the hypervisor * From v16 [0]: - Moved the KVM service discovery to its own file, plugged it into PSCI instead of the arch code, dropped the inlining, made use of asm/hypervisor.h. - Tidied-up the namespacing - Cleanup the hypercall handler - De-duplicate the guest code - Tidied-up arm64-specific documentation - Dropped the generic PTP documentation as it needs a new location, and some cleanup - Squashed hypercall documentation and capability into the main KVM patch - Rebased on top of 5.11-rc4 [0] https://lore.kernel.org/r/20201209060932.212364-1-jianyong.wu@arm.com [1] https://lore.kernel.org/r/20210202141204.3134855-1-maz@kernel.org [2] https://lore.kernel.org/r/20210208134029.3269384-1-maz@kernel.org Jianyong Wu (4): ptp: Reorganize ptp_kvm.c to make it arch-independent clocksource: Add clocksource id for arm arch counter KVM: arm64: Add support for the KVM PTP service ptp: arm/arm64: Enable ptp_kvm for arm/arm64 Thomas Gleixner (1): time: Add mechanism to recognize clocksource in time_get_snapshot Will Deacon (2): arm/arm64: Probe for the presence of KVM hypervisor KVM: arm64: Advertise KVM UID to guests via SMCCC Documentation/virt/kvm/api.rst | 10 +++ Documentation/virt/kvm/arm/index.rst | 1 + Documentation/virt/kvm/arm/ptp_kvm.rst | 25 ++++++ arch/arm/include/asm/hypervisor.h | 3 + arch/arm64/include/asm/hypervisor.h | 3 + arch/arm64/kvm/arm.c | 1 + arch/arm64/kvm/hypercalls.c | 80 +++++++++++++++-- drivers/clocksource/arm_arch_timer.c | 36 ++++++++ drivers/firmware/psci/psci.c | 2 + drivers/firmware/smccc/Makefile | 2 +- drivers/firmware/smccc/kvm_guest.c | 50 +++++++++++ drivers/firmware/smccc/smccc.c | 1 + drivers/ptp/Kconfig | 2 +- drivers/ptp/Makefile | 2 + drivers/ptp/ptp_kvm_arm.c | 28 ++++++ drivers/ptp/{ptp_kvm.c => ptp_kvm_common.c} | 84 +++++------------- drivers/ptp/ptp_kvm_x86.c | 97 +++++++++++++++++++++ include/linux/arm-smccc.h | 41 +++++++++ include/linux/clocksource.h | 6 ++ include/linux/clocksource_ids.h | 12 +++ include/linux/ptp_kvm.h | 19 ++++ include/linux/timekeeping.h | 12 +-- include/uapi/linux/kvm.h | 1 + kernel/time/clocksource.c | 2 + kernel/time/timekeeping.c | 1 + 25 files changed, 443 insertions(+), 78 deletions(-) create mode 100644 Documentation/virt/kvm/arm/ptp_kvm.rst create mode 100644 drivers/firmware/smccc/kvm_guest.c create mode 100644 drivers/ptp/ptp_kvm_arm.c rename drivers/ptp/{ptp_kvm.c => ptp_kvm_common.c} (60%) create mode 100644 drivers/ptp/ptp_kvm_x86.c create mode 100644 include/linux/clocksource_ids.h create mode 100644 include/linux/ptp_kvm.h -- 2.29.2