Message ID | 20231005091825.3207300-1-chenhuacai@loongson.cn |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2016:b0:403:3b70:6f57 with SMTP id fe22csp349201vqb; Thu, 5 Oct 2023 07:47:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF4Y7i+eI0sc9a9v/XkTzk1AebBlnZQ8BogrCoBMTAZ9rDshgPl9hDtvFEAC2HjZzGhg5bI X-Received: by 2002:a05:6830:22c6:b0:6c6:4473:6f05 with SMTP id q6-20020a05683022c600b006c644736f05mr5345666otc.9.1696517251842; Thu, 05 Oct 2023 07:47:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696517251; cv=none; d=google.com; s=arc-20160816; b=lsbUosNFCQVPevi3J6yy2pcI6ZOH/loDzMTq6fAizrX+UEIT5AshRSxQxcEp9nWC1z x3hDC7ypZcWrP4ZDLHy4WZ7e8nzONo3FjGNRql0wMYG+UrxZ5/NjjIOJBhH3tWO36r+C DrHGSwOfBZYGmOT8gj2Dhjq9PjXtjDz6avXD1HYybEA4R9uW++v94KSuWyJlSIBszcnr 9pG31E22vK+kyTbeAokA6luEgBNbDKz+zoNM6EpV+wtli7lWC7DoY5BwzhEVYZvyLZ6D xdD7aJQm18VCcLunn292VUSyjKvmf7AGkgQc8FzmPAC/lKz/ybJlgSJrpr4fkqb7cafX +hnw== 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=ewxUVg2/8iTx472jPF0TbBX8sioQfj/0x9UzA3H5PDc=; fh=8cdGqUti9T8etzeUgyIR4Md8xmEx2Bc/hvmPjc6B4+4=; b=LvUVAUf32857N2rN0WYK8H0ZSbC49ybCmtF9JgmZw0vCfL/vkOGkiw6eYihn8BqyRD UCyeerrtDNCOqgB/EKlwMIjF4bZRbMTk5EIQsJrSL6M/vK3MU+3GhqrlBOUadYcRAfD3 a9No5LrC7al8cLqAvoRM/0YS8RqxsTrr7/3aR0fxWpkB0iym1iZZOZlkJ8MO6aylunxL izcXTze6EZVnWQpTJ4bZR9+P99KyNkm2ojVSryWLpF0c1zkvoQvnluzkzH8nCVVvF6QF S8MHSykzcUoZXwvz7wBQkcJpWUTca1x99iteVBZZpjpr1SMo8AmSTXfQu6NKEe2XiZ2e Navw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id r20-20020a6560d4000000b00563f627f2ecsi1611070pgv.13.2023.10.05.07.47.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Oct 2023 07:47:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 1029D81C3969; Thu, 5 Oct 2023 07:46:49 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239628AbjJEOob (ORCPT <rfc822;ezelljr.billy@gmail.com> + 19 others); Thu, 5 Oct 2023 10:44:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237447AbjJEOjR (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 5 Oct 2023 10:39:17 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2B4A76AD; Thu, 5 Oct 2023 07:07:32 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC1B4C116B9; Thu, 5 Oct 2023 09:18:52 +0000 (UTC) From: Huacai Chen <chenhuacai@loongson.cn> To: Paolo Bonzini <pbonzini@redhat.com>, Huacai Chen <chenhuacai@kernel.org> Cc: kvm@vger.kernel.org, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, Xuerui Wang <kernel@xen0n.name>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Huacai Chen <chenhuacai@loongson.cn> Subject: [GIT PULL] LoongArch KVM changes for v6.7 Date: Thu, 5 Oct 2023 17:18:25 +0800 Message-Id: <20231005091825.3207300-1-chenhuacai@loongson.cn> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Thu, 05 Oct 2023 07:46:49 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778927273736097543 X-GMAIL-MSGID: 1778927273736097543 |
Series |
[GIT,PULL] LoongArch KVM changes for v6.7
|
|
Pull-request
git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-kvm-6.7Message
Huacai Chen
Oct. 5, 2023, 9:18 a.m. UTC
The following changes since commit 8a749fd1a8720d4619c91c8b6e7528c0a355c0aa: Linux 6.6-rc4 (2023-10-01 14:15:13 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-kvm-6.7 for you to fetch changes up to 2c10cda4b777be4be9d9e69e4f70c818dbb15e21: LoongArch: KVM: Add maintainers for LoongArch KVM (2023-10-02 10:01:29 +0800) ---------------------------------------------------------------- LoongArch KVM changes for v6.7 Add LoongArch's KVM support. Loongson 3A5000/3A6000 supports hardware assisted virtualization. With cpu virtualization, there are separate hw-supported user mode and kernel mode in guest mode. With memory virtualization, there are two-level hw mmu table for guest mode and host mode. Also there is separate hw cpu timer with consant frequency in guest mode, so that vm can migrate between hosts with different freq. Currently, we are able to boot LoongArch Linux guests. Few key aspects of KVM LoongArch added by this series are: 1. Enable kvm hardware features when kvm module is loaded. 2. Implement VM and vcpu related ioctl interface such as vcpu create, vcpu run etc. GET_ONE_REG/SET_ONE_REG ioctl commands are use to get general registers one by one. 3. Hardware access about MMU, timer and csr are emulated in kernel. 4. Hardwares such as mmio and iocsr device are emulated in user space such as IPI, irqchips, pci devices etc. ---------------------------------------------------------------- Tianrui Zhao (25): LoongArch: KVM: Add kvm related header files LoongArch: KVM: Implement kvm module related interface LoongArch: KVM: Implement kvm hardware enable, disable interface LoongArch: KVM: Implement VM related functions LoongArch: KVM: Add vcpu related header files LoongArch: KVM: Implement basic vcpu interfaces LoongArch: KVM: Implement basic vcpu ioctl interfaces LoongArch: KVM: Implement fpu operations for vcpu LoongArch: KVM: Implement vcpu interrupt operations LoongArch: KVM: Implement vcpu load and vcpu put operations LoongArch: KVM: Implement misc vcpu related interfaces LoongArch: KVM: Implement vcpu timer operations LoongArch: KVM: Implement virtual machine tlb operations LoongArch: KVM: Implement kvm mmu operations LoongArch: KVM: Implement handle csr exception LoongArch: KVM: Implement handle iocsr exception LoongArch: KVM: Implement handle idle exception LoongArch: KVM: Implement handle gspr exception LoongArch: KVM: Implement handle mmio exception LoongArch: KVM: Implement handle fpu exception LoongArch: KVM: Implement kvm exception vectors LoongArch: KVM: Implement vcpu world switch LoongArch: KVM: Enable kvm config and add the makefile LoongArch: KVM: Supplement kvm document about LoongArch-specific part LoongArch: KVM: Add maintainers for LoongArch KVM Documentation/virt/kvm/api.rst | 70 ++- MAINTAINERS | 12 + arch/loongarch/Kbuild | 2 + arch/loongarch/Kconfig | 6 + arch/loongarch/configs/loongson3_defconfig | 2 + arch/loongarch/include/asm/inst.h | 16 + arch/loongarch/include/asm/kvm_csr.h | 211 +++++++ arch/loongarch/include/asm/kvm_host.h | 237 ++++++++ arch/loongarch/include/asm/kvm_mmu.h | 139 +++++ arch/loongarch/include/asm/kvm_types.h | 11 + arch/loongarch/include/asm/kvm_vcpu.h | 93 +++ arch/loongarch/include/asm/loongarch.h | 19 +- arch/loongarch/include/uapi/asm/kvm.h | 108 ++++ arch/loongarch/kernel/asm-offsets.c | 32 + arch/loongarch/kvm/Kconfig | 40 ++ arch/loongarch/kvm/Makefile | 22 + arch/loongarch/kvm/exit.c | 696 +++++++++++++++++++++ arch/loongarch/kvm/interrupt.c | 183 ++++++ arch/loongarch/kvm/main.c | 420 +++++++++++++ arch/loongarch/kvm/mmu.c | 914 ++++++++++++++++++++++++++++ arch/loongarch/kvm/switch.S | 250 ++++++++ arch/loongarch/kvm/timer.c | 197 ++++++ arch/loongarch/kvm/tlb.c | 32 + arch/loongarch/kvm/trace.h | 162 +++++ arch/loongarch/kvm/vcpu.c | 939 +++++++++++++++++++++++++++++ arch/loongarch/kvm/vm.c | 94 +++ include/uapi/linux/kvm.h | 9 + 27 files changed, 4902 insertions(+), 14 deletions(-) create mode 100644 arch/loongarch/include/asm/kvm_csr.h create mode 100644 arch/loongarch/include/asm/kvm_host.h create mode 100644 arch/loongarch/include/asm/kvm_mmu.h create mode 100644 arch/loongarch/include/asm/kvm_types.h create mode 100644 arch/loongarch/include/asm/kvm_vcpu.h create mode 100644 arch/loongarch/include/uapi/asm/kvm.h create mode 100644 arch/loongarch/kvm/Kconfig create mode 100644 arch/loongarch/kvm/Makefile create mode 100644 arch/loongarch/kvm/exit.c create mode 100644 arch/loongarch/kvm/interrupt.c create mode 100644 arch/loongarch/kvm/main.c create mode 100644 arch/loongarch/kvm/mmu.c create mode 100644 arch/loongarch/kvm/switch.S create mode 100644 arch/loongarch/kvm/timer.c create mode 100644 arch/loongarch/kvm/tlb.c create mode 100644 arch/loongarch/kvm/trace.h create mode 100644 arch/loongarch/kvm/vcpu.c create mode 100644 arch/loongarch/kvm/vm.c
Comments
Hi, Paolo, Excuse me, but this is just a gentle reminder. The 6.7 merge window is coming soon, have you missed this PR mail? Or should I rebase to 6.6-rc7 to send a new PR (a randconfig build error is fixed in 6.6-rc7)? Huacai On Thu, Oct 5, 2023 at 5:18 PM Huacai Chen <chenhuacai@loongson.cn> wrote: > > The following changes since commit 8a749fd1a8720d4619c91c8b6e7528c0a355c0aa: > > Linux 6.6-rc4 (2023-10-01 14:15:13 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-kvm-6.7 > > for you to fetch changes up to 2c10cda4b777be4be9d9e69e4f70c818dbb15e21: > > LoongArch: KVM: Add maintainers for LoongArch KVM (2023-10-02 10:01:29 +0800) > > ---------------------------------------------------------------- > LoongArch KVM changes for v6.7 > > Add LoongArch's KVM support. Loongson 3A5000/3A6000 supports hardware > assisted virtualization. With cpu virtualization, there are separate > hw-supported user mode and kernel mode in guest mode. With memory > virtualization, there are two-level hw mmu table for guest mode and host > mode. Also there is separate hw cpu timer with consant frequency in > guest mode, so that vm can migrate between hosts with different freq. > Currently, we are able to boot LoongArch Linux guests. > > Few key aspects of KVM LoongArch added by this series are: > 1. Enable kvm hardware features when kvm module is loaded. > 2. Implement VM and vcpu related ioctl interface such as vcpu create, > vcpu run etc. GET_ONE_REG/SET_ONE_REG ioctl commands are use to > get general registers one by one. > 3. Hardware access about MMU, timer and csr are emulated in kernel. > 4. Hardwares such as mmio and iocsr device are emulated in user space > such as IPI, irqchips, pci devices etc. > > ---------------------------------------------------------------- > Tianrui Zhao (25): > LoongArch: KVM: Add kvm related header files > LoongArch: KVM: Implement kvm module related interface > LoongArch: KVM: Implement kvm hardware enable, disable interface > LoongArch: KVM: Implement VM related functions > LoongArch: KVM: Add vcpu related header files > LoongArch: KVM: Implement basic vcpu interfaces > LoongArch: KVM: Implement basic vcpu ioctl interfaces > LoongArch: KVM: Implement fpu operations for vcpu > LoongArch: KVM: Implement vcpu interrupt operations > LoongArch: KVM: Implement vcpu load and vcpu put operations > LoongArch: KVM: Implement misc vcpu related interfaces > LoongArch: KVM: Implement vcpu timer operations > LoongArch: KVM: Implement virtual machine tlb operations > LoongArch: KVM: Implement kvm mmu operations > LoongArch: KVM: Implement handle csr exception > LoongArch: KVM: Implement handle iocsr exception > LoongArch: KVM: Implement handle idle exception > LoongArch: KVM: Implement handle gspr exception > LoongArch: KVM: Implement handle mmio exception > LoongArch: KVM: Implement handle fpu exception > LoongArch: KVM: Implement kvm exception vectors > LoongArch: KVM: Implement vcpu world switch > LoongArch: KVM: Enable kvm config and add the makefile > LoongArch: KVM: Supplement kvm document about LoongArch-specific part > LoongArch: KVM: Add maintainers for LoongArch KVM > > Documentation/virt/kvm/api.rst | 70 ++- > MAINTAINERS | 12 + > arch/loongarch/Kbuild | 2 + > arch/loongarch/Kconfig | 6 + > arch/loongarch/configs/loongson3_defconfig | 2 + > arch/loongarch/include/asm/inst.h | 16 + > arch/loongarch/include/asm/kvm_csr.h | 211 +++++++ > arch/loongarch/include/asm/kvm_host.h | 237 ++++++++ > arch/loongarch/include/asm/kvm_mmu.h | 139 +++++ > arch/loongarch/include/asm/kvm_types.h | 11 + > arch/loongarch/include/asm/kvm_vcpu.h | 93 +++ > arch/loongarch/include/asm/loongarch.h | 19 +- > arch/loongarch/include/uapi/asm/kvm.h | 108 ++++ > arch/loongarch/kernel/asm-offsets.c | 32 + > arch/loongarch/kvm/Kconfig | 40 ++ > arch/loongarch/kvm/Makefile | 22 + > arch/loongarch/kvm/exit.c | 696 +++++++++++++++++++++ > arch/loongarch/kvm/interrupt.c | 183 ++++++ > arch/loongarch/kvm/main.c | 420 +++++++++++++ > arch/loongarch/kvm/mmu.c | 914 ++++++++++++++++++++++++++++ > arch/loongarch/kvm/switch.S | 250 ++++++++ > arch/loongarch/kvm/timer.c | 197 ++++++ > arch/loongarch/kvm/tlb.c | 32 + > arch/loongarch/kvm/trace.h | 162 +++++ > arch/loongarch/kvm/vcpu.c | 939 +++++++++++++++++++++++++++++ > arch/loongarch/kvm/vm.c | 94 +++ > include/uapi/linux/kvm.h | 9 + > 27 files changed, 4902 insertions(+), 14 deletions(-) > create mode 100644 arch/loongarch/include/asm/kvm_csr.h > create mode 100644 arch/loongarch/include/asm/kvm_host.h > create mode 100644 arch/loongarch/include/asm/kvm_mmu.h > create mode 100644 arch/loongarch/include/asm/kvm_types.h > create mode 100644 arch/loongarch/include/asm/kvm_vcpu.h > create mode 100644 arch/loongarch/include/uapi/asm/kvm.h > create mode 100644 arch/loongarch/kvm/Kconfig > create mode 100644 arch/loongarch/kvm/Makefile > create mode 100644 arch/loongarch/kvm/exit.c > create mode 100644 arch/loongarch/kvm/interrupt.c > create mode 100644 arch/loongarch/kvm/main.c > create mode 100644 arch/loongarch/kvm/mmu.c > create mode 100644 arch/loongarch/kvm/switch.S > create mode 100644 arch/loongarch/kvm/timer.c > create mode 100644 arch/loongarch/kvm/tlb.c > create mode 100644 arch/loongarch/kvm/trace.h > create mode 100644 arch/loongarch/kvm/vcpu.c > create mode 100644 arch/loongarch/kvm/vm.c
On 10/25/23 04:10, Huacai Chen wrote: > Hi, Paolo, Excuse me, but this is just a gentle reminder. The 6.7 merge > window is coming soon, have you missed this PR mail? Or should I rebase > to 6.6-rc7 to send a new PR (a randconfig build error is fixed in 6.6-rc7)? Hi, I am expecting some changes to Kconfig for 6.7 and wanted to pull this second, to solve the conflicts. There is no need to rebase, but it would be useful to point me to the fix in 6.6-rc7. Paolo
On Thu, Oct 26, 2023 at 7:54 AM Paolo Bonzini <pbonzini@redhat.com> wrote: > > On 10/25/23 04:10, Huacai Chen wrote: > > Hi, Paolo, Excuse me, but this is just a gentle reminder. The 6.7 merge > > window is coming soon, have you missed this PR mail? Or should I rebase > > to 6.6-rc7 to send a new PR (a randconfig build error is fixed in 6.6-rc7)? > > Hi, > > I am expecting some changes to Kconfig for 6.7 and wanted to pull this > second, to solve the conflicts. > > There is no need to rebase, but it would be useful to point me to the > fix in 6.6-rc7. OK, thanks. And the commit 449c2756c2323c9e32b2a2fa9 ("LoongArch: Export symbol invalid_pud_table for modules building") fixes the randconfig build error. Huacai > > Paolo >
On Thu, Oct 5, 2023 at 11:28 AM Huacai Chen <chenhuacai@loongson.cn> wrote: > > The following changes since commit 8a749fd1a8720d4619c91c8b6e7528c0a355c0aa: > > Linux 6.6-rc4 (2023-10-01 14:15:13 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-kvm-6.7 > > for you to fetch changes up to 2c10cda4b777be4be9d9e69e4f70c818dbb15e21: > > LoongArch: KVM: Add maintainers for LoongArch KVM (2023-10-02 10:01:29 +0800) Pulled, thanks. Paolo > > ---------------------------------------------------------------- > LoongArch KVM changes for v6.7 > > Add LoongArch's KVM support. Loongson 3A5000/3A6000 supports hardware > assisted virtualization. With cpu virtualization, there are separate > hw-supported user mode and kernel mode in guest mode. With memory > virtualization, there are two-level hw mmu table for guest mode and host > mode. Also there is separate hw cpu timer with consant frequency in > guest mode, so that vm can migrate between hosts with different freq. > Currently, we are able to boot LoongArch Linux guests. > > Few key aspects of KVM LoongArch added by this series are: > 1. Enable kvm hardware features when kvm module is loaded. > 2. Implement VM and vcpu related ioctl interface such as vcpu create, > vcpu run etc. GET_ONE_REG/SET_ONE_REG ioctl commands are use to > get general registers one by one. > 3. Hardware access about MMU, timer and csr are emulated in kernel. > 4. Hardwares such as mmio and iocsr device are emulated in user space > such as IPI, irqchips, pci devices etc. > > ---------------------------------------------------------------- > Tianrui Zhao (25): > LoongArch: KVM: Add kvm related header files > LoongArch: KVM: Implement kvm module related interface > LoongArch: KVM: Implement kvm hardware enable, disable interface > LoongArch: KVM: Implement VM related functions > LoongArch: KVM: Add vcpu related header files > LoongArch: KVM: Implement basic vcpu interfaces > LoongArch: KVM: Implement basic vcpu ioctl interfaces > LoongArch: KVM: Implement fpu operations for vcpu > LoongArch: KVM: Implement vcpu interrupt operations > LoongArch: KVM: Implement vcpu load and vcpu put operations > LoongArch: KVM: Implement misc vcpu related interfaces > LoongArch: KVM: Implement vcpu timer operations > LoongArch: KVM: Implement virtual machine tlb operations > LoongArch: KVM: Implement kvm mmu operations > LoongArch: KVM: Implement handle csr exception > LoongArch: KVM: Implement handle iocsr exception > LoongArch: KVM: Implement handle idle exception > LoongArch: KVM: Implement handle gspr exception > LoongArch: KVM: Implement handle mmio exception > LoongArch: KVM: Implement handle fpu exception > LoongArch: KVM: Implement kvm exception vectors > LoongArch: KVM: Implement vcpu world switch > LoongArch: KVM: Enable kvm config and add the makefile > LoongArch: KVM: Supplement kvm document about LoongArch-specific part > LoongArch: KVM: Add maintainers for LoongArch KVM > > Documentation/virt/kvm/api.rst | 70 ++- > MAINTAINERS | 12 + > arch/loongarch/Kbuild | 2 + > arch/loongarch/Kconfig | 6 + > arch/loongarch/configs/loongson3_defconfig | 2 + > arch/loongarch/include/asm/inst.h | 16 + > arch/loongarch/include/asm/kvm_csr.h | 211 +++++++ > arch/loongarch/include/asm/kvm_host.h | 237 ++++++++ > arch/loongarch/include/asm/kvm_mmu.h | 139 +++++ > arch/loongarch/include/asm/kvm_types.h | 11 + > arch/loongarch/include/asm/kvm_vcpu.h | 93 +++ > arch/loongarch/include/asm/loongarch.h | 19 +- > arch/loongarch/include/uapi/asm/kvm.h | 108 ++++ > arch/loongarch/kernel/asm-offsets.c | 32 + > arch/loongarch/kvm/Kconfig | 40 ++ > arch/loongarch/kvm/Makefile | 22 + > arch/loongarch/kvm/exit.c | 696 +++++++++++++++++++++ > arch/loongarch/kvm/interrupt.c | 183 ++++++ > arch/loongarch/kvm/main.c | 420 +++++++++++++ > arch/loongarch/kvm/mmu.c | 914 ++++++++++++++++++++++++++++ > arch/loongarch/kvm/switch.S | 250 ++++++++ > arch/loongarch/kvm/timer.c | 197 ++++++ > arch/loongarch/kvm/tlb.c | 32 + > arch/loongarch/kvm/trace.h | 162 +++++ > arch/loongarch/kvm/vcpu.c | 939 +++++++++++++++++++++++++++++ > arch/loongarch/kvm/vm.c | 94 +++ > include/uapi/linux/kvm.h | 9 + > 27 files changed, 4902 insertions(+), 14 deletions(-) > create mode 100644 arch/loongarch/include/asm/kvm_csr.h > create mode 100644 arch/loongarch/include/asm/kvm_host.h > create mode 100644 arch/loongarch/include/asm/kvm_mmu.h > create mode 100644 arch/loongarch/include/asm/kvm_types.h > create mode 100644 arch/loongarch/include/asm/kvm_vcpu.h > create mode 100644 arch/loongarch/include/uapi/asm/kvm.h > create mode 100644 arch/loongarch/kvm/Kconfig > create mode 100644 arch/loongarch/kvm/Makefile > create mode 100644 arch/loongarch/kvm/exit.c > create mode 100644 arch/loongarch/kvm/interrupt.c > create mode 100644 arch/loongarch/kvm/main.c > create mode 100644 arch/loongarch/kvm/mmu.c > create mode 100644 arch/loongarch/kvm/switch.S > create mode 100644 arch/loongarch/kvm/timer.c > create mode 100644 arch/loongarch/kvm/tlb.c > create mode 100644 arch/loongarch/kvm/trace.h > create mode 100644 arch/loongarch/kvm/vcpu.c > create mode 100644 arch/loongarch/kvm/vm.c >