From patchwork Mon Feb 24 09:56:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: bibo mao X-Patchwork-Id: 13987724 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CD60224A05B; Mon, 24 Feb 2025 09:56:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740390985; cv=none; b=GXheKnPI0RU7vxsAlOCMseaNZFkUu091/KxXJW4Y4A5vVP7OErt13gIKx66k3Qx4URqvhyS/upXbaaBlJpV0jkVGC4LlHcRZGS1XUwyiWc7d0VTciuMporpitL+H97WQSI/ceQmL1XW/01UGLf5t0oF0Lh+ksgFaBmt8LwG6gl0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740390985; c=relaxed/simple; bh=NUpup4TJeKNS+74UwtNoKP/hHdEekNejv7N+QbJBI2Y=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=s/MYOVPVvwBiCDrZFFdoh6dCnAspWomn7ZOIOQzlgzJVGG7p1mBtB9PpjGHN7aDoJeiUch+x9BQ35EZ6MJJfmZ9AIjjr+WgD7pzKKXacnhruqYYnDXTrpZ/Hre/RmswJJFeAfLR9LDPO+sRTTdPU0M3fuzCjg2f5E13iOxD13ws= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8CxLGtDQrxnIq+AAA--.24313S3; Mon, 24 Feb 2025 17:56:19 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowMBxXsVCQrxnRBkmAA--.9703S2; Mon, 24 Feb 2025 17:56:18 +0800 (CST) From: Bibo Mao To: Tianrui Zhao , Huacai Chen Cc: WANG Xuerui , kvm@vger.kernel.org, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH 0/3] Add perf event support for guest VM Date: Mon, 24 Feb 2025 17:56:15 +0800 Message-Id: <20250224095618.1436016-1-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-CM-TRANSID: qMiowMBxXsVCQrxnRBkmAA--.9703S2 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== From perf pmu interrupt is normal IRQ rather than NMI, so code cannot be profiled if interrupt is disabled. However it is possible to profile guest kernel in this situation from host side, profile result is more accurate from host than that from guest. Perf event support for guest VM is added here, and the below is the example: perf kvm --host --guest --guestkallsyms=guest-kallsyms --guestmodules=guest-modules top Overhead Shared Object Symbol 20.02% [guest.kernel] [g] __arch_cpu_idle 16.74% [guest.kernel] [g] queued_spin_lock_slowpath 10.05% [kernel] [k] __arch_cpu_idle 2.00% [guest.kernel] [g] clear_page 1.62% [guest.kernel] [g] copy_page 1.50% [guest.kernel] [g] next_uptodate_folio 1.41% [guest.kernel] [g] queued_write_lock_slowpath 1.41% [guest.kernel] [g] unmap_page_range 1.36% [guest.kernel] [g] mod_objcg_state 1.30% [guest.kernel] [g] osq_lock 1.28% [guest.kernel] [g] __slab_free 0.98% [guest.kernel] [g] copy_page_range Bibo Mao (3): LoongArch: KVM: Add stub for kvm_arch_vcpu_preempted_in_kernel LoongArch: KVM: Implement arch specified functions for guest perf LoongArch: KVM: Register perf callback for guest arch/loongarch/include/asm/kvm_host.h | 2 ++ arch/loongarch/kvm/Kconfig | 1 + arch/loongarch/kvm/main.c | 2 ++ arch/loongarch/kvm/vcpu.c | 31 +++++++++++++++++++++++++++ 4 files changed, 36 insertions(+) base-commit: 2408a807bfc3f738850ef5ad5e3fd59d66168996