From nobody Sun May 19 02:06:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1593287574; cv=none; d=zohomail.com; s=zohoarc; b=iuUI9X2l+7WeMH7FXiIRNM293ekr8TSvIVSfkDx3nX1hJus72jdvhWvfubfcO0GXbtMd+gRnwNfYQ7FNZIRzeOOD2CB15XuoejPHsYbMvd+OUw+mGVDvgcpAEAAEOhRifmxMBZybMnnaoZCtnxIzwx3Zvxg1trNNxzpK3Vbn9XI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593287574; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=Tps7nMTNDUkl/eAj1enISwY5nRsZq9itXUGQjMYdQXM=; b=K6u/SxMnIjTdB+elijE6SV9fRwMVqgwQH7f7WUkpZ66dajTtS4EvVZfIgJb2c4mK6z58O7wsDaherrY8jPvhYECkrweySit/flRqyB/PxwTbASjs2MbUJzqfVFKFxllZtuq/hfqZFl1vjQEHZzZxQ0nA829yCUCfSc76BNGJJxE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593287574020571.5308105275247; Sat, 27 Jun 2020 12:52:54 -0700 (PDT) Received: from localhost ([::1]:52564 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpGse-0003tS-9a for importer@patchew.org; Sat, 27 Jun 2020 15:52:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33706) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpGrb-0002MK-VP for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:47 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:38782) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jpGra-0003sy-DR for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:47 -0400 Received: by mail-ed1-x52e.google.com with SMTP id n2so456684edr.5 for ; Sat, 27 Jun 2020 12:51:46 -0700 (PDT) Received: from rtrkw774-lin.syrmia.com ([46.240.135.226]) by smtp.gmail.com with ESMTPSA id y11sm5298734ejw.63.2020.06.27.12.51.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jun 2020 12:51:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Tps7nMTNDUkl/eAj1enISwY5nRsZq9itXUGQjMYdQXM=; b=ekDlIumK/wO3tCGoOxnefGrmZGhDlHGEgCaJgQCU+M2uX6c9XiVTTcriio43eQvTd4 zVO9HDHl/jzeYWPVA1bmOp8fuF9sYClBhGo0C2sg+70KEkMZCdhrZDEubVI2XpKWYcYe Py1YUvyYLzAhfv2DftCY+CCZw1PzB4/7BignIQvjP8AYtL8v6unfHh58TmOuv2LOeVCR sUwQprO7rK74FFVQp51VC+Fhc0WTyV//ZwROdndh6kD7olbORgcqe9vvIYSIIGNY1wk6 e+pz+aGs9eZ7bHe9vmQliARzGkEzUum1f/LPnVON2bh/TON+jZarB26gPNvG6UxrNajr YwOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Tps7nMTNDUkl/eAj1enISwY5nRsZq9itXUGQjMYdQXM=; b=s1xVFjWjRjDy9QoTRrFzV+DgjETahU5Xm24d6Bihg+lDaD7nBdBN8jfN4a//8quQFp xeTtKRaZ7Lu9kEhbbSJVCOUnA8qil1tGwENBmeCjQmcpV/6064InZkmkvXAwWoMSV2/c 9i58/ou1pKOfvc6iitT8wYgd5BRjyY+D2uE17Bvk57ABTbIon+CP6NObRSQknLD8dLBK YtjouxNVmiVmGq1mck9XZ2WabdQtBKf82JkbvWSFuOHBycgWlFw99nfTBS9kTUvacT39 M404fGVl6tm7oHPyvPJUMM4agz2pivq2rxPba4dPC7bkXcdazqXWkqLAOhNbXpHHk17W WghA== X-Gm-Message-State: AOAM531LRQVL1enUhC0fPqDyD8Jdk8Kla3/qG19PZTJD5GGx84WB8XYX i4rYTc95MVmNyOUWFJoMiv7kUs6R X-Google-Smtp-Source: ABdhPJwbyd2Dw2lk7nO7/LWjnxYvdkOrlkzgJIWrNuakUPecF66zMgbpXUPeF1u1P65OXfLK0NZeEQ== X-Received: by 2002:a05:6402:17ee:: with SMTP id t14mr6591824edy.359.1593287504913; Sat, 27 Jun 2020 12:51:44 -0700 (PDT) From: Aleksandar Markovic To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [PULL 1/6] hw/mips: Implement the kvm_type() hook in MachineClass Date: Sat, 27 Jun 2020 21:51:38 +0200 Message-Id: <1593287503-25197-2-git-send-email-aleksandar.qemu.devel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> References: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=aleksandar.qemu.devel@gmail.com; helo=mail-ed1-x52e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN 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: aleksandar.qemu.devel@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Huacai Chen MIPS has two types of KVM: TE & VZ, and TE is the default type. Now we can't create a VZ guest in QEMU because it lacks the kvm_type() hook in MachineClass. This patch add the the kvm_type() hook to support both of the two types. [AM: Added "if defined" guards.] Reviewed-by: Aleksandar Markovic Signed-off-by: Aleksandar Markovic Signed-off-by: Huacai Chen Co-developed-by: Jiaxun Yang Message-Id: <1592995531-32600-2-git-send-email-chenhc@lemote.com> --- target/mips/kvm_mips.h | 11 +++++++++++ target/mips/kvm.c | 26 ++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/target/mips/kvm_mips.h b/target/mips/kvm_mips.h index 1e40147..171d53d 100644 --- a/target/mips/kvm_mips.h +++ b/target/mips/kvm_mips.h @@ -12,6 +12,8 @@ #ifndef KVM_MIPS_H #define KVM_MIPS_H =20 +#include "cpu.h" + /** * kvm_mips_reset_vcpu: * @cpu: MIPSCPU @@ -23,4 +25,13 @@ void kvm_mips_reset_vcpu(MIPSCPU *cpu); int kvm_mips_set_interrupt(MIPSCPU *cpu, int irq, int level); int kvm_mips_set_ipi_interrupt(MIPSCPU *cpu, int irq, int level); =20 +#ifdef CONFIG_KVM +int mips_kvm_type(MachineState *machine, const char *vm_type); +#else +static inline int mips_kvm_type(MachineState *machine, const char *vm_type) +{ + return 0; +} +#endif + #endif /* KVM_MIPS_H */ diff --git a/target/mips/kvm.c b/target/mips/kvm.c index 96cfa10..72637a1 100644 --- a/target/mips/kvm.c +++ b/target/mips/kvm.c @@ -21,10 +21,12 @@ #include "qemu/main-loop.h" #include "qemu/timer.h" #include "sysemu/kvm.h" +#include "sysemu/kvm_int.h" #include "sysemu/runstate.h" #include "sysemu/cpus.h" #include "kvm_mips.h" #include "exec/memattrs.h" +#include "hw/boards.h" =20 #define DEBUG_KVM 0 =20 @@ -1270,3 +1272,27 @@ int kvm_arch_msi_data_to_gsi(uint32_t data) { abort(); } + +int mips_kvm_type(MachineState *machine, const char *vm_type) +{ +#if defined(KVM_CAP_MIPS_VZ) || defined(KVM_CAP_MIPS_TE) + int r; + KVMState *s =3D KVM_STATE(machine->accelerator); +#endif + +#if defined(KVM_CAP_MIPS_VZ) + r =3D kvm_check_extension(s, KVM_CAP_MIPS_VZ); + if (r > 0) { + return KVM_VM_MIPS_VZ; + } +#endif + +#if defined(KVM_CAP_MIPS_TE) + r =3D kvm_check_extension(s, KVM_CAP_MIPS_TE); + if (r > 0) { + return KVM_VM_MIPS_TE; + } +#endif + + return -1; +} --=20 2.7.4 From nobody Sun May 19 02:06:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1593287577; cv=none; d=zohomail.com; s=zohoarc; b=KJl/EPK9ls8fDXGpmm+5lycKgm4nDCYa8ZBSvj1OtXzLGJ0EnaOHUWNTQC1+lFBY1m9yaq51notGaWg7UjbxqAZoVXIYXPPeeD7KdxMCXvQ7AKnUWKSq+eyN3XBvhgXPtdmnxLBmj0DjivH8XZsJxqp0yMt3WRbJJg/F/Hh/TxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593287577; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=64eDVR5Sna6gcF5BUI1E9LG+Hd4AD5Rm3+MS+ZxvZvw=; b=SzjQVlQvuX7FTH5bladXtrjL75Mi0TGKknUwbkjsebWKPjpr0bQJCIxdXvJflc97Ybr1A85xbsWv0m0SGFHktlGWQ8lh5o3bS6Wi/xV9HvCZxXNMY70LikmEyBoM0Oli5MU5eKX67Leg8z5VFoANbthNcjJkiM7y7lDGX+umrW0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593287577730529.2725023342014; Sat, 27 Jun 2020 12:52:57 -0700 (PDT) Received: from localhost ([::1]:52956 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpGsi-00043T-F8 for importer@patchew.org; Sat, 27 Jun 2020 15:52:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33776) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpGrf-0002Ox-Dn for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:51 -0400 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]:42889) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jpGrb-0003uJ-Rs for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:51 -0400 Received: by mail-ed1-x533.google.com with SMTP id z17so9469711edr.9 for ; Sat, 27 Jun 2020 12:51:47 -0700 (PDT) Received: from rtrkw774-lin.syrmia.com ([46.240.135.226]) by smtp.gmail.com with ESMTPSA id y11sm5298734ejw.63.2020.06.27.12.51.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jun 2020 12:51:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=64eDVR5Sna6gcF5BUI1E9LG+Hd4AD5Rm3+MS+ZxvZvw=; b=rcXYumDHgxhMEGk1J3ufNd+PQZqlx6iAW+/XhotH/hR+Ze8t/cmBdbeOwJcVnG+0xd uRAH7Cyaa6C/IQg6/gyR/WkN382iyWErT0ts/uX4W5rG+t35od18o57rnm4l8L2CzsEh jMNFdF+c8YJ1WN283jT9KuColXaI+rqJIFFMqxIingRgqSGlj2HzWYi8zSSnpyanN1ha XoqSxFGQZMo5/ErJhyzcmL8TgMKZJW8RghJMXfe0KA/MG4iBkwZahzD8It3kb8mpm1cl oZJL5pysgwPBfNa5mlu1e+2NtAg94OeJj5x9m9wLM1KTn2FJ8jlk4UsApYzKEKHNA5EM p6yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=64eDVR5Sna6gcF5BUI1E9LG+Hd4AD5Rm3+MS+ZxvZvw=; b=ayunfi7ZQh5ZcE4+ilQqPLTYZIBDOfA+5vUPEYsbKXQlpI7qfAywDG7ErXDpf5omxF RrTusnhRhl40/sZZFHtZfbLiAlo9mgbn16H7j0oUxnaB2aZFLvoysIQ9MtlVQquDTwWO PI48KG7n8MCt3r3jw145ArAKia2aZI0yyyZ9rzRUy3X27IwBa+6RqbNL5FnECM3WSs6o ncpgl/DK72RLy2jh9l+Z8MljlY1q0Cpc2Lr9Td21WSwyOYYgzfGPAkDbaJehq2zoPUrH aVe8kP/hfdSoCU0NJV1Gm+xqig1+uoRtZvc8KdWYbjSa3mfakzxghFI6hevlhMna57/I 100w== X-Gm-Message-State: AOAM531/Re3bX5lFO/WbuA0G0pceZkUdSfzjWJhmhT+ELPgP/d0uiqwE snCOHJPEMBuUcgmTvwlHoHKx/Lkt X-Google-Smtp-Source: ABdhPJy1uw9hmdhoHqgEH1uACUYh0Lx+RBffCjM4C9eS/1Xyln6W9KJFWaFFZfzlPMKe7dfRDAGdNA== X-Received: by 2002:aa7:c808:: with SMTP id a8mr6768572edt.259.1593287505880; Sat, 27 Jun 2020 12:51:45 -0700 (PDT) From: Aleksandar Markovic To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [PULL 2/6] hw/intc: Add Loongson LIOINTC support Date: Sat, 27 Jun 2020 21:51:39 +0200 Message-Id: <1593287503-25197-3-git-send-email-aleksandar.qemu.devel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> References: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::533; envelope-from=aleksandar.qemu.devel@gmail.com; helo=mail-ed1-x533.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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: aleksandar.qemu.devel@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) From: Huacai Chen Loongson-3 has an integrated liointc (Local I/O Interrupt Controller). It is similar to Goldfish interrupt controller, but more powerful (e.g., it can route external interrupt to multi-cores). Documents about Loongson-3's liointc: 1, https://wiki.godson.ac.cn/ip_block:liointc; 2, The "I/O=E4=B8=AD=E6=96=AD" section of Loongson-3's user mannual, part 1. Signed-off-by: Huacai Chen Signed-off-by: Jiaxun Yang Signed-off-by: Aleksandar Markovic Reviewed-by: Aleksandar Markovic Message-Id: <1592995531-32600-3-git-send-email-chenhc@lemote.com> --- hw/intc/loongson_liointc.c | 242 +++++++++++++++++++++++++++++++++++++++++= ++++ hw/intc/Kconfig | 3 + hw/intc/Makefile.objs | 1 + 3 files changed, 246 insertions(+) create mode 100644 hw/intc/loongson_liointc.c diff --git a/hw/intc/loongson_liointc.c b/hw/intc/loongson_liointc.c new file mode 100644 index 0000000..23ca51c --- /dev/null +++ b/hw/intc/loongson_liointc.c @@ -0,0 +1,242 @@ +/* + * QEMU Loongson Local I/O interrupt controler. + * + * Copyright (c) 2020 Jiaxun Yang + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "qemu/osdep.h" +#include "hw/sysbus.h" +#include "qemu/module.h" +#include "hw/irq.h" +#include "hw/qdev-properties.h" + +#define D(x) + +#define NUM_IRQS 32 + +#define NUM_CORES 4 +#define NUM_IPS 4 +#define NUM_PARENTS (NUM_CORES * NUM_IPS) +#define PARENT_COREx_IPy(x, y) (NUM_IPS * x + y) + +#define R_MAPPER_START 0x0 +#define R_MAPPER_END 0x20 +#define R_ISR R_MAPPER_END +#define R_IEN 0x24 +#define R_IEN_SET 0x28 +#define R_IEN_CLR 0x2c +#define R_PERCORE_ISR(x) (0x40 + 0x8 * x) +#define R_END 0x64 + +#define TYPE_LOONGSON_LIOINTC "loongson.liointc" +#define LOONGSON_LIOINTC(obj) \ + OBJECT_CHECK(struct loongson_liointc, (obj), TYPE_LOONGSON_LIOINTC) + +struct loongson_liointc { + SysBusDevice parent_obj; + + MemoryRegion mmio; + qemu_irq parent_irq[NUM_PARENTS]; + + uint8_t mapper[NUM_IRQS]; /* 0:3 for core, 4:7 for IP */ + uint32_t isr; + uint32_t ien; + uint32_t per_core_isr[NUM_CORES]; + + /* state of the interrupt input pins */ + uint32_t pin_state; + bool parent_state[NUM_PARENTS]; +}; + +static void update_irq(struct loongson_liointc *p) +{ + uint32_t irq, core, ip; + uint32_t per_ip_isr[NUM_IPS] =3D {0}; + + /* level triggered interrupt */ + p->isr =3D p->pin_state; + + /* Clear disabled IRQs */ + p->isr &=3D p->ien; + + /* Clear per_core_isr */ + for (core =3D 0; core < NUM_CORES; core++) { + p->per_core_isr[core] =3D 0; + } + + /* Update per_core_isr and per_ip_isr */ + for (irq =3D 0; irq < NUM_IRQS; irq++) { + if (!(p->isr & (1 << irq))) { + continue; + } + + for (core =3D 0; core < NUM_CORES; core++) { + if ((p->mapper[irq] & (1 << core))) { + p->per_core_isr[core] |=3D (1 << irq); + } + } + + for (ip =3D 0; ip < NUM_IPS; ip++) { + if ((p->mapper[irq] & (1 << (ip + 4)))) { + per_ip_isr[ip] |=3D (1 << irq); + } + } + } + + /* Emit IRQ to parent! */ + for (core =3D 0; core < NUM_CORES; core++) { + for (ip =3D 0; ip < NUM_IPS; ip++) { + int parent =3D PARENT_COREx_IPy(core, ip); + if (p->parent_state[parent] !=3D + (!!p->per_core_isr[core] && !!per_ip_isr[ip])) { + p->parent_state[parent] =3D !p->parent_state[parent]; + qemu_set_irq(p->parent_irq[parent], p->parent_state[parent= ]); + } + } + } +} + +static uint64_t +liointc_read(void *opaque, hwaddr addr, unsigned int size) +{ + struct loongson_liointc *p =3D opaque; + uint32_t r =3D 0; + + /* Mapper is 1 byte */ + if (size =3D=3D 1 && addr < R_MAPPER_END) { + r =3D p->mapper[addr]; + goto out; + } + + /* Rest is 4 byte */ + if (size !=3D 4 || (addr % 4)) { + goto out; + } + + if (addr >=3D R_PERCORE_ISR(0) && + addr < R_PERCORE_ISR(NUM_CORES)) { + int core =3D (addr - R_PERCORE_ISR(0)) / 4; + r =3D p->per_core_isr[core]; + goto out; + } + + switch (addr) { + case R_ISR: + r =3D p->isr; + break; + case R_IEN: + r =3D p->ien; + break; + default: + break; + } + +out: + D(qemu_log("%s: size=3D%d addr=3D%lx val=3D%x\n", __func__, size, addr= , r)); + return r; +} + +static void +liointc_write(void *opaque, hwaddr addr, + uint64_t val64, unsigned int size) +{ + struct loongson_liointc *p =3D opaque; + uint32_t value =3D val64; + + D(qemu_log("%s: size=3D%d, addr=3D%lx val=3D%x\n", __func__, size, add= r, value)); + + /* Mapper is 1 byte */ + if (size =3D=3D 1 && addr < R_MAPPER_END) { + p->mapper[addr] =3D value; + goto out; + } + + /* Rest is 4 byte */ + if (size !=3D 4 || (addr % 4)) { + goto out; + } + + if (addr >=3D R_PERCORE_ISR(0) && + addr < R_PERCORE_ISR(NUM_CORES)) { + int core =3D (addr - R_PERCORE_ISR(0)) / 4; + p->per_core_isr[core] =3D value; + goto out; + } + + switch (addr) { + case R_IEN_SET: + p->ien |=3D value; + break; + case R_IEN_CLR: + p->ien &=3D ~value; + break; + default: + break; + } + +out: + update_irq(p); +} + +static const MemoryRegionOps pic_ops =3D { + .read =3D liointc_read, + .write =3D liointc_write, + .endianness =3D DEVICE_NATIVE_ENDIAN, + .valid =3D { + .min_access_size =3D 1, + .max_access_size =3D 4 + } +}; + +static void irq_handler(void *opaque, int irq, int level) +{ + struct loongson_liointc *p =3D opaque; + + p->pin_state &=3D ~(1 << irq); + p->pin_state |=3D level << irq; + update_irq(p); +} + +static void loongson_liointc_init(Object *obj) +{ + struct loongson_liointc *p =3D LOONGSON_LIOINTC(obj); + int i; + + qdev_init_gpio_in(DEVICE(obj), irq_handler, 32); + + for (i =3D 0; i < NUM_PARENTS; i++) { + sysbus_init_irq(SYS_BUS_DEVICE(obj), &p->parent_irq[i]); + } + + memory_region_init_io(&p->mmio, obj, &pic_ops, p, + "loongson.liointc", R_END); + sysbus_init_mmio(SYS_BUS_DEVICE(obj), &p->mmio); +} + +static const TypeInfo loongson_liointc_info =3D { + .name =3D TYPE_LOONGSON_LIOINTC, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(struct loongson_liointc), + .instance_init =3D loongson_liointc_init, +}; + +static void loongson_liointc_register_types(void) +{ + type_register_static(&loongson_liointc_info); +} + +type_init(loongson_liointc_register_types) diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index f562342..2ae1e89 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -64,3 +64,6 @@ config OMPIC =20 config RX_ICU bool + +config LOONGSON_LIOINTC + bool diff --git a/hw/intc/Makefile.objs b/hw/intc/Makefile.objs index a420263..3ac2b40 100644 --- a/hw/intc/Makefile.objs +++ b/hw/intc/Makefile.objs @@ -51,3 +51,4 @@ obj-$(CONFIG_MIPS_CPS) +=3D mips_gic.o obj-$(CONFIG_NIOS2) +=3D nios2_iic.o obj-$(CONFIG_OMPIC) +=3D ompic.o obj-$(CONFIG_IBEX) +=3D ibex_plic.o +obj-$(CONFIG_LOONGSON_LIOINTC) +=3D loongson_liointc.o --=20 2.7.4 From nobody Sun May 19 02:06:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1593287697; cv=none; d=zohomail.com; s=zohoarc; b=QSA1qcIoEhk85Uq/CJ9cyo8O2p32b7TALRQjDhBwlXH2Tq8pJKOlLPQheHMi8l139+ApRPoZIks7qfIWzenCZ+bJJshH7kPkmYUFCEDtf2tYnOVSKdo6Bo3dqD1ZYbpEhiz7H23Dt3ApZKc2NtJwfQFbIq2lJHJ9jzzquFxIpH4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593287697; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=wR1ioHxfvGUtQMv0UmPfszN6a56cZ8iXWTXbuTdKnfM=; b=Z+vQnvP75iffx8XkBxtBrUfC6i61vWEy6LAoFAXL7210ErM0XdFUHZzumPH/TYtIM8TYMiST9w1olBIVDGBiChj0EdnFEfzAz/5v6aO7vo6nKp5857iYx9cC0gkxuDeiFI4o7lramFi71vAaaMKg8iIAxrEdGldvRmvKKE+ug08= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593287697974884.7142968532999; Sat, 27 Jun 2020 12:54:57 -0700 (PDT) Received: from localhost ([::1]:33146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpGue-0007UP-Ma for importer@patchew.org; Sat, 27 Jun 2020 15:54:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpGrd-0002My-Eo for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:49 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:45207) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jpGrb-0003uN-S7 for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:49 -0400 Received: by mail-ed1-x52e.google.com with SMTP id d16so2831024edz.12 for ; Sat, 27 Jun 2020 12:51:47 -0700 (PDT) Received: from rtrkw774-lin.syrmia.com ([46.240.135.226]) by smtp.gmail.com with ESMTPSA id y11sm5298734ejw.63.2020.06.27.12.51.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jun 2020 12:51:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wR1ioHxfvGUtQMv0UmPfszN6a56cZ8iXWTXbuTdKnfM=; b=urO+0X09PwFGm+jfJ/jD9gqGQvqYyyL9c7xZNjTayaCTqhVTCLtVwxo/o9t7AdFbk4 NFbAMhZV0A9+IiYopHiRmu6IgqHuB1qdvcGwrwHFUa6lKOTp30hfKXwe8VFOKnj9Uavd jOKm8u+R+avc7UnyBumzp5g29AhB8CXiVszduCPniWNEd3NXIz8LIU1lqHSQ6iMoNY/n wBAEXK6TsFoiOM2I5APj+y9eCHJ8YPYQ8VJPxLkAVFpPHHQf8JcLsAxyG+5eW1RXMTgF NkgnBCgGgMaZ7MksYaFe89binYYPv8820+vl3kMiYUKYpZIp3ihMf5itW+hn8JOFKwzY +C8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wR1ioHxfvGUtQMv0UmPfszN6a56cZ8iXWTXbuTdKnfM=; b=J7Wo/yyslY1waRTj/IjvB3cwK7rgME4TOU4E58V63/UbiXYAzxPWcZQ40L5VbtNQ8T 0A6EzAxfbKBQey7N208cy8ETqngYTv9UBZ+O+DRR7OXKKXYh4ZaTvJ2w13PQgD+FnpgT GfwoObWgKFsv55wYgsbSYr3QNyDTW8zVQHXc6QKTxNC7R2XjFmtt54+XjPWlPbMOxMGl YNhtp/5Wzz39sQqbdRiD8+7kf3rSv+ZMrpyMVsCmsAoarKmlBiRo/l3cg/sBsDwAjbFB 6QUW7B3S8BkdvU9qRpWWX9o1kH2InKu2g8ED7gLAXMbfJAFMRSGmKOVu3Vd7daULkaAf PkVg== X-Gm-Message-State: AOAM532nILmzxihTKyFmqDqMyge+Neo/wHxmtqfiRIK+4J2zojutS5WR Ki8YSvABpHycDIKKrppsGuQR/rip X-Google-Smtp-Source: ABdhPJzD1uO5TWxO1JqknYRqQOjiW00C+JHYvVOyGisEXkVe2WJnhcQk3z4+VW2L5at/P+cSnyDwog== X-Received: by 2002:aa7:da89:: with SMTP id q9mr10000083eds.273.1593287506550; Sat, 27 Jun 2020 12:51:46 -0700 (PDT) From: Aleksandar Markovic To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [PULL 3/6] MAINTAINERS: Add Loongson-3 maintainer and reviewer Date: Sat, 27 Jun 2020 21:51:40 +0200 Message-Id: <1593287503-25197-4-git-send-email-aleksandar.qemu.devel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> References: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=aleksandar.qemu.devel@gmail.com; helo=mail-ed1-x52e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN 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: aleksandar.qemu.devel@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Huacai Chen Add myself as the maintainer for Loongson-3 virtual platforms, and also add Jiaxun Yang as the reviewer. Signed-off-by: Huacai Chen Co-developed-by: Jiaxun Yang Reviewed-by: Aleksandar Markovic Signed-off-by: Aleksandar Markovic Message-Id: <1592995531-32600-5-git-send-email-chenhc@lemote.com> --- MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 1b40446..fe925ea 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1096,6 +1096,13 @@ F: hw/isa/vt82c686.c F: hw/pci-host/bonito.c F: include/hw/isa/vt82c686.h =20 +Loongson-3 Virtual Platform +M: Huacai Chen +R: Jiaxun Yang +S: Maintained +F: hw/mips/loongson3_virt.c +F: hw/intc/loongson_liointc.c + Boston M: Paul Burton R: Aleksandar Rikalo --=20 2.7.4 From nobody Sun May 19 02:06:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1593287771; cv=none; d=zohomail.com; s=zohoarc; b=Jo0a/ElYl7gJXowUoEdIXY0yu49D6ONYhgPwFFO8PJ/6KLnaXxYFx1meoj89NbB5bXu/FTmYLwPugudFOtcjgKJrdkLSd1ao3dgigz28WyB7gDnUrkOhhy+lRq8LabnLUHpBxhGjIJdwUDvdC9lpbhf5PymzchHzq5UF6lfcPnY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593287771; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=GP6FfKUQQ7/PDaeGu/ePS+hzQJumHWPaJpKy6/KoXmU=; b=BZ67wDZxhJRtUWu4X2ZmaIlQO+DvL8+9a+r5dQoih/yfmhRnqYb27bAyeYUXSMm2odNobcOZ7AdBBYFnO2akwQazctbakTHS/xpP4IkOKYUcTfo1mLFCDi/clLHHWMnCbVznvkzRbXY95Pi1UdHUQP2ip/4T99NvgxZurBp9QIg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593287771603250.8897675239458; Sat, 27 Jun 2020 12:56:11 -0700 (PDT) Received: from localhost ([::1]:35270 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpGvq-0008TK-Au for importer@patchew.org; Sat, 27 Jun 2020 15:56:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpGre-0002OH-PY for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:50 -0400 Received: from mail-ed1-x543.google.com ([2a00:1450:4864:20::543]:44194) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jpGrc-0003uz-QK for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:50 -0400 Received: by mail-ed1-x543.google.com with SMTP id s28so9446172edw.11 for ; Sat, 27 Jun 2020 12:51:48 -0700 (PDT) Received: from rtrkw774-lin.syrmia.com ([46.240.135.226]) by smtp.gmail.com with ESMTPSA id y11sm5298734ejw.63.2020.06.27.12.51.46 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jun 2020 12:51:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GP6FfKUQQ7/PDaeGu/ePS+hzQJumHWPaJpKy6/KoXmU=; b=Yfna7c7v8w1bOkBY9yVBj3ZVpdW+a/5pZktXOrWf/UJ6S1P9aQO9oHyh9IKJDbhVpO 0nacSqCTm0a3+FgNHJR6sduf7B1V/c6cEM6SZ/clI0m78+4GqPFJBScSn5CWZyOMim8p 7OHuTDEocz/BnTf9Vlms5T5vZ153H2E3G7I/UQA7AftpfI23keIkGI6r0muIKD8DoDq4 aOuWEWyy/DmTGLf7eodBqmvzC7WK2DMK5N4Dsc1lRIbkfJZfHLfgzW45JqaAVdWLgK7i lff17XgAp0iWRJzcTfrhCFJ4Hp0bKjkwjC3DT6Y84gCihIat81DoVebwjXn6Yk/eE4If WYNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GP6FfKUQQ7/PDaeGu/ePS+hzQJumHWPaJpKy6/KoXmU=; b=IPRWqAI7wwRkfTiFE90k21r0uU2v5vr77bCGLM4E2KcM6fBgJ9XE15tTe1GHloPfyj rHlAsxBtW0k+Ul1zTTce8DbYHEag7G/549+gItjcPUD5tCAJQqBMger+09i4kwNpsfOI IFYhCSeJohc3N+KlQVOfTRRV0bJ0wqO+JSFdIQ5GIeZ4fg59RBxCelbgbH39rcd6cMC/ efOVy4fjzvK1D2t9y+bpeB2sCWcY6fE8gumvWi4tVIIQ5yWGo+EuDxMH4ynqa9KUG9vm i90XCKE4yqnDoAdHQRyKJBi2rab+5GvEmaxH4YqC4FRuFprPypQcy1gOxuGW4wI8U9ak mhxQ== X-Gm-Message-State: AOAM531wRxm4h2MygeGyhojviM4B3efBryCkVdc5DuimL3JwGy9fkamY Fy06DDaMvdMCeCkYZ3RlGixcTszn X-Google-Smtp-Source: ABdhPJy2Zy+UAKz0riGAjzUMs4vqvjazCYZHzgwdHfw/6ePneD3KRSqn5xN0DqqR6X+G2CVT9dTWfg== X-Received: by 2002:a50:9e02:: with SMTP id z2mr9507208ede.87.1593287507295; Sat, 27 Jun 2020 12:51:47 -0700 (PDT) From: Aleksandar Markovic To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [PULL 4/6] scripts/performance: Add topN_perf.py script Date: Sat, 27 Jun 2020 21:51:41 +0200 Message-Id: <1593287503-25197-5-git-send-email-aleksandar.qemu.devel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> References: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::543; envelope-from=aleksandar.qemu.devel@gmail.com; helo=mail-ed1-x543.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, PDS_OTHER_BAD_TLD=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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: aleksandar.qemu.devel@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Ahmed Karaman Syntax: topN_perf.py [-h] [-n] -- \ [] \ [] [-h] - Print the script arguments help message. [-n] - Specify the number of top functions to print. - If this flag is not specified, the tool defaults to 25. Example of usage: topN_perf.py -n 20 -- qemu-arm coulomb_double-arm Example Output: No. Percentage Name Invoked by Reviewed-by: Aleksandar Markovic ---- ---------- ------------------------- ------------------------- 1 16.25% float64_mul qemu-x86_64 2 12.01% float64_sub qemu-x86_64 3 11.99% float64_add qemu-x86_64 4 5.69% helper_mulsd qemu-x86_64 5 4.68% helper_addsd qemu-x86_64 6 4.43% helper_lookup_tb_ptr qemu-x86_64 7 4.28% helper_subsd qemu-x86_64 8 2.71% f64_compare qemu-x86_64 9 2.71% helper_ucomisd qemu-x86_64 10 1.04% helper_pand_xmm qemu-x86_64 11 0.71% float64_div qemu-x86_64 12 0.63% helper_pxor_xmm qemu-x86_64 13 0.50% 0x00007f7b7004ef95 [JIT] tid 491 14 0.50% 0x00007f7b70044e83 [JIT] tid 491 15 0.36% helper_por_xmm qemu-x86_64 16 0.32% helper_cc_compute_all qemu-x86_64 17 0.30% 0x00007f7b700433f0 [JIT] tid 491 18 0.30% float64_compare_quiet qemu-x86_64 19 0.27% soft_f64_addsub qemu-x86_64 20 0.26% round_to_int qemu-x86_64 Signed-off-by: Ahmed Karaman Signed-off-by: Aleksandar Markovic Reviewed-by: Aleksandar Markovic Message-Id: <20200626164546.22102-2-ahmedkhaledkaraman@gmail.com> --- scripts/performance/topN_perf.py | 149 +++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 149 insertions(+) create mode 100755 scripts/performance/topN_perf.py diff --git a/scripts/performance/topN_perf.py b/scripts/performance/topN_pe= rf.py new file mode 100755 index 0000000..07be195 --- /dev/null +++ b/scripts/performance/topN_perf.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 + +# Print the top N most executed functions in QEMU using perf. +# Syntax: +# topN_perf.py [-h] [-n] -- \ +# [] \ +# [] +# +# [-h] - Print the script arguments help message. +# [-n] - Specify the number of top functions to print. +# - If this flag is not specified, the tool defaults to 25. +# +# Example of usage: +# topN_perf.py -n 20 -- qemu-arm coulomb_double-arm +# +# This file is a part of the project "TCG Continuous Benchmarking". +# +# Copyright (C) 2020 Ahmed Karaman +# Copyright (C) 2020 Aleksandar Markovic +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import argparse +import os +import subprocess +import sys + + +# Parse the command line arguments +parser =3D argparse.ArgumentParser( + usage=3D'topN_perf.py [-h] [-n] = -- ' + ' [] ' + ' []') + +parser.add_argument('-n', dest=3D'top', type=3Dint, default=3D25, + help=3D'Specify the number of top functions to print.') + +parser.add_argument('command', type=3Dstr, nargs=3D'+', help=3Dargparse.SU= PPRESS) + +args =3D parser.parse_args() + +# Extract the needed variables from the args +command =3D args.command +top =3D args.top + +# Insure that perf is installed +check_perf_presence =3D subprocess.run(["which", "perf"], + stdout=3Dsubprocess.DEVNULL) +if check_perf_presence.returncode: + sys.exit("Please install perf before running the script!") + +# Insure user has previllage to run perf +check_perf_executability =3D subprocess.run(["perf", "stat", "ls", "/"], + stdout=3Dsubprocess.DEVNULL, + stderr=3Dsubprocess.DEVNULL) +if check_perf_executability.returncode: + sys.exit( +""" +Error: +You may not have permission to collect stats. + +Consider tweaking /proc/sys/kernel/perf_event_paranoid, +which controls use of the performance events system by +unprivileged users (without CAP_SYS_ADMIN). + + -1: Allow use of (almost) all events by all users + Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK + 0: Disallow ftrace function tracepoint by users without CAP_SYS_ADMIN + Disallow raw tracepoint access by users without CAP_SYS_ADMIN + 1: Disallow CPU event access by users without CAP_SYS_ADMIN + 2: Disallow kernel profiling by users without CAP_SYS_ADMIN + +To make this setting permanent, edit /etc/sysctl.conf too, e.g.: + kernel.perf_event_paranoid =3D -1 + +* Alternatively, you can run this script under sudo privileges. +""" +) + +# Run perf record +perf_record =3D subprocess.run((["perf", "record", "--output=3D/tmp/perf.d= ata"] + + command), + stdout=3Dsubprocess.DEVNULL, + stderr=3Dsubprocess.PIPE) +if perf_record.returncode: + os.unlink('/tmp/perf.data') + sys.exit(perf_record.stderr.decode("utf-8")) + +# Save perf report output to /tmp/perf_report.out +with open("/tmp/perf_report.out", "w") as output: + perf_report =3D subprocess.run( + ["perf", "report", "--input=3D/tmp/perf.data", "--stdio"], + stdout=3Doutput, + stderr=3Dsubprocess.PIPE) + if perf_report.returncode: + os.unlink('/tmp/perf.data') + output.close() + os.unlink('/tmp/perf_report.out') + sys.exit(perf_report.stderr.decode("utf-8")) + +# Read the reported data to functions[] +functions =3D [] +with open("/tmp/perf_report.out", "r") as data: + # Only read lines that are not comments (comments start with #) + # Only read lines that are not empty + functions =3D [line for line in data.readlines() if line and line[0] + !=3D '#' and line[0] !=3D "\n"] + +# Limit the number of top functions to "top" +number_of_top_functions =3D top if len(functions) > top else len(functions) + +# Store the data of the top functions in top_functions[] +top_functions =3D functions[:number_of_top_functions] + +# Print table header +print('{:>4} {:>10} {:<30} {}\n{} {} {} {}'.format('No.', + 'Percentage', + 'Name', + 'Invoked by', + '-' * 4, + '-' * 10, + '-' * 30, + '-' * 25)) + +# Print top N functions +for (index, function) in enumerate(top_functions, start=3D1): + function_data =3D function.split() + function_percentage =3D function_data[0] + function_name =3D function_data[-1] + function_invoker =3D ' '.join(function_data[2:-2]) + print('{:>4} {:>10} {:<30} {}'.format(index, + function_percentage, + function_name, + function_invoker)) + +# Remove intermediate files +os.unlink('/tmp/perf.data') +os.unlink('/tmp/perf_report.out') --=20 2.7.4 From nobody Sun May 19 02:06:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1593287577; cv=none; d=zohomail.com; s=zohoarc; b=eykifA7+qtIF/gmPIoNfvVadP9xRZ4Rd9mWl8P0dUJks5vtdQXbhu6uiI2yCjtVvmLOqrwdmE2d0BzoZFP5556ndmm3JfXLxcMmSvupB5TiU+5J2A90xvhNL/CgsUBnvGDp3/5KsCUBp4F+35XxQcM59EjBAm5lilmWRNHkvzGc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593287577; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=YU0Awk4ZM0qzu5ZQ6OYVIlPFF2Q2vnGOu2wQJzJ+hiU=; b=XchomAxQFToEZendDOGK6fKbMDEJ/1GNH7OBdJMKyyi2IEQxJzxap1m0PEgjqqVizJnUtHZfDUDAwV4Se9DxRvQXuyJunECK2ySiyoKPj09ZfPngdZ5QwW8yw/SgKKJiepk/2JOBcmepBmZtc/L5jhMIxdrkx7U1q37GgCqLHIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593287577310680.9114006595437; Sat, 27 Jun 2020 12:52:57 -0700 (PDT) Received: from localhost ([::1]:52880 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpGsh-00041h-Tc for importer@patchew.org; Sat, 27 Jun 2020 15:52:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33778) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpGrf-0002PQ-MG for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:51 -0400 Received: from mail-ed1-x541.google.com ([2a00:1450:4864:20::541]:47023) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jpGrd-0003vH-EQ for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:51 -0400 Received: by mail-ed1-x541.google.com with SMTP id dm19so3218979edb.13 for ; Sat, 27 Jun 2020 12:51:49 -0700 (PDT) Received: from rtrkw774-lin.syrmia.com ([46.240.135.226]) by smtp.gmail.com with ESMTPSA id y11sm5298734ejw.63.2020.06.27.12.51.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jun 2020 12:51:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YU0Awk4ZM0qzu5ZQ6OYVIlPFF2Q2vnGOu2wQJzJ+hiU=; b=dXzxAkOHciUqGn6ZPzEilCrQxHg5Ri3ldJJArxKfvr9wTnHBW1L2X0cC1WY50K18X7 hih+JdyfiJBJcbVLdoTNFF2UEpEofY6fwiVHDAAonCGsCACBK7fT4ZNSJLXPjGPecH/0 DLkxtAEX/dbC9K8MieUbXd61di95O4PzpulH87E1idpgyAnV1ZOuJW0Gg9ab0vXCVSYh /GzAB174tkNj4lcvwKCVFT9sKhrp5PNyXUiwg6pbQ2D/T/oJvO+3uH0XhXhbbeJ2Rpm8 7J5yN4zuBm2blkx2q7bk/8nX0CMPnnRWNc1+Kkzo9pNh3kruSkUiFfhK+zCtaLHyTNFR QBlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YU0Awk4ZM0qzu5ZQ6OYVIlPFF2Q2vnGOu2wQJzJ+hiU=; b=S2SlwcEUAm42HPv4EbvIZWQ6hATFcRr19T7gwFT7Wm1xoaaZfb/go9wNVij8B91XKZ y7dQ3+VUIx+N5MbMmpEHd66RHgLlRbESYZAde2++4qWjw564clfQTBGsnw1qVtcpEKN6 kocpA/B+47hPQ4m9VCYjYYq7AzvEAmDQ0/T7djgfRJZ/u/b1e+Nc1E3thLLJmqs2m8qX S/KgIYWsfgDyaUEzDoqkFkXCDeQBkpla920cb+TroFbHpgpCYY45114dMin4xUq6cB4S 6ZDNkUyofq925gj/5oyYvxqvOVSYXpBsaQ9GlJbSs2NdWuYgeGAxf22igZSrqa9Ey1FH 742A== X-Gm-Message-State: AOAM532M6POcyo+o7/KSvlhpq4xLzwT/ZO7Eo7txCcLg848njUs12Zn8 4oAYzFJ4SrOccY9FYlsm/B1hyQHl X-Google-Smtp-Source: ABdhPJzIJwouQ7MvfJ86uUSXb91n1pOhMuVYtLqZ/4DZBaCIm01BSy/+rbq4tKB1jAgb3QozM/FkeA== X-Received: by 2002:a05:6402:1597:: with SMTP id c23mr9462176edv.243.1593287507972; Sat, 27 Jun 2020 12:51:47 -0700 (PDT) From: Aleksandar Markovic To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [PULL 5/6] scripts/performance: Add topN_callgrind.py script Date: Sat, 27 Jun 2020 21:51:42 +0200 Message-Id: <1593287503-25197-6-git-send-email-aleksandar.qemu.devel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> References: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::541; envelope-from=aleksandar.qemu.devel@gmail.com; helo=mail-ed1-x541.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, PDS_OTHER_BAD_TLD=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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: aleksandar.qemu.devel@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Ahmed Karaman Python script that prints the top N most executed functions in QEMU using callgrind. Syntax: topN_callgrind.py [-h] [-n] -- \ [] \ [] [-h] - Print the script arguments help message. [-n] - Specify the number of top functions to print. - If this flag is not specified, the tool defaults to 25. Example of usage: topN_callgrind.py -n 20 -- qemu-arm coulomb_double-arm Example Output: No. Percentage Function Name Source File Reviewed-by: Aleksandar Markovic ---- --------- ------------------ ------------------------------ 1 24.577% 0x00000000082db000 ??? 2 20.467% float64_mul /fpu/softfloat.c 3 14.720% float64_sub /fpu/softfloat.c 4 13.864% float64_add /fpu/softfloat.c 5 4.876% helper_mulsd /target/i386/ops_sse.h 6 3.767% helper_subsd /target/i386/ops_sse.h 7 3.549% helper_addsd /target/i386/ops_sse.h 8 2.185% helper_ucomisd /target/i386/ops_sse.h 9 1.667% helper_lookup_tb_ptr /include/exec/tb-lookup.h 10 1.662% f64_compare /fpu/softfloat.c 11 1.509% helper_lookup_tb_ptr /accel/tcg/tcg-runtime.c 12 0.635% helper_lookup_tb_ptr /include/exec/exec-all.h 13 0.616% float64_div /fpu/softfloat.c 14 0.502% helper_pand_xmm /target/i386/ops_sse.h 15 0.502% float64_mul /include/fpu/softfloat.h 16 0.476% helper_lookup_tb_ptr /target/i386/cpu.h 17 0.437% float64_compare_quiet /fpu/softfloat.c 18 0.414% helper_pxor_xmm /target/i386/ops_sse.h 19 0.353% round_to_int /fpu/softfloat.c 20 0.347% helper_cc_compute_all /target/i386/cc_helper.c Signed-off-by: Ahmed Karaman Signed-off-by: Aleksandar Markovic Reviewed-by: Aleksandar Markovic Message-Id: <20200626164546.22102-3-ahmedkhaledkaraman@gmail.com> --- scripts/performance/topN_callgrind.py | 140 ++++++++++++++++++++++++++++++= ++++ 1 file changed, 140 insertions(+) create mode 100755 scripts/performance/topN_callgrind.py diff --git a/scripts/performance/topN_callgrind.py b/scripts/performance/to= pN_callgrind.py new file mode 100755 index 0000000..67c5919 --- /dev/null +++ b/scripts/performance/topN_callgrind.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 + +# Print the top N most executed functions in QEMU using callgrind. +# Syntax: +# topN_callgrind.py [-h] [-n] -- \ +# [] \ +# [] +# +# [-h] - Print the script arguments help message. +# [-n] - Specify the number of top functions to print. +# - If this flag is not specified, the tool defaults to 25. +# +# Example of usage: +# topN_callgrind.py -n 20 -- qemu-arm coulomb_double-arm +# +# This file is a part of the project "TCG Continuous Benchmarking". +# +# Copyright (C) 2020 Ahmed Karaman +# Copyright (C) 2020 Aleksandar Markovic +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import argparse +import os +import subprocess +import sys + + +# Parse the command line arguments +parser =3D argparse.ArgumentParser( + usage=3D'topN_callgrind.py [-h] [-n] -- ' + ' [] ' + ' []') + +parser.add_argument('-n', dest=3D'top', type=3Dint, default=3D25, + help=3D'Specify the number of top functions to print.') + +parser.add_argument('command', type=3Dstr, nargs=3D'+', help=3Dargparse.SU= PPRESS) + +args =3D parser.parse_args() + +# Extract the needed variables from the args +command =3D args.command +top =3D args.top + +# Insure that valgrind is installed +check_valgrind_presence =3D subprocess.run(["which", "valgrind"], + stdout=3Dsubprocess.DEVNULL) +if check_valgrind_presence.returncode: + sys.exit("Please install valgrind before running the script!") + +# Run callgrind +callgrind =3D subprocess.run(( + ["valgrind", "--tool=3Dcallgrind", "--callgrind-out-file=3D/tmp/callgr= ind.data"] + + command), + stdout=3Dsubprocess.DEVNULL, + stderr=3Dsubprocess.PIPE) +if callgrind.returncode: + sys.exit(callgrind.stderr.decode("utf-8")) + +# Save callgrind_annotate output to /tmp/callgrind_annotate.out +with open("/tmp/callgrind_annotate.out", "w") as output: + callgrind_annotate =3D subprocess.run(["callgrind_annotate", + "/tmp/callgrind.data"], + stdout=3Doutput, + stderr=3Dsubprocess.PIPE) + if callgrind_annotate.returncode: + os.unlink('/tmp/callgrind.data') + output.close() + os.unlink('/tmp/callgrind_annotate.out') + sys.exit(callgrind_annotate.stderr.decode("utf-8")) + +# Read the callgrind_annotate output to callgrind_data[] +callgrind_data =3D [] +with open('/tmp/callgrind_annotate.out', 'r') as data: + callgrind_data =3D data.readlines() + +# Line number with the total number of instructions +total_instructions_line_number =3D 20 + +# Get the total number of instructions +total_instructions_line_data =3D callgrind_data[total_instructions_line_nu= mber] +total_number_of_instructions =3D total_instructions_line_data.split(' ')[0] +total_number_of_instructions =3D int( + total_number_of_instructions.replace(',', '')) + +# Line number with the top function +first_func_line =3D 25 + +# Number of functions recorded by callgrind, last two lines are always emp= ty +number_of_functions =3D len(callgrind_data) - first_func_line - 2 + +# Limit the number of top functions to "top" +number_of_top_functions =3D (top if number_of_functions > + top else number_of_functions) + +# Store the data of the top functions in top_functions[] +top_functions =3D callgrind_data[first_func_line: + first_func_line + number_of_top_functions] + +# Print table header +print('{:>4} {:>10} {:<30} {}\n{} {} {} {}'.format('No.', + 'Percentage', + 'Function Name', + 'Source File', + '-' * 4, + '-' * 10, + '-' * 30, + '-' * 30, + )) + +# Print top N functions +for (index, function) in enumerate(top_functions, start=3D1): + function_data =3D function.split() + # Calculate function percentage + function_instructions =3D float(function_data[0].replace(',', '')) + function_percentage =3D (function_instructions / + total_number_of_instructions)*100 + # Get function name and source files path + function_source_file, function_name =3D function_data[1].split(':') + # Print extracted data + print('{:>4} {:>9.3f}% {:<30} {}'.format(index, + round(function_percentage,= 3), + function_name, + function_source_file)) + +# Remove intermediate files +os.unlink('/tmp/callgrind.data') +os.unlink('/tmp/callgrind_annotate.out') --=20 2.7.4 From nobody Sun May 19 02:06:47 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1593287646; cv=none; d=zohomail.com; s=zohoarc; b=SB3vdw+Ff1iTOxsK9n0uCxTj+ZiQbAk13lYUKzPiFT5atIdpn70wBCBdlSzLjxFK8BgvMvrKfdqrgC04DbpoTuvqnA/L8kydbOha0yvnbf6uqdBStzeeEi4MdPtzKmyH/VZVusCGXOM54qR4MK19FiW3sbf8EAk3Ro9iKQ/rTXg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1593287646; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9ewVRNpPM318EJDye8jWm3GOz5oUfVOplXqMzHurSGg=; b=g+ooMpDcGYbWD3qVoqgDi/FJTcxcPEAQL10o2JvzQULusT9P0pLytHjSR2olYSF9TvMek8fetC7r2vQAxqyT1lELUvB8ZzPWyVKwzuYDpvGY8FJip13HqpTxPfSVR87bGw1rls20B1n9X+uNQTCe+gQ+4jdzSvvkv3+oE8dHzcc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1593287646017904.975391797254; Sat, 27 Jun 2020 12:54:06 -0700 (PDT) Received: from localhost ([::1]:58370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jpGto-0006Fi-QD for importer@patchew.org; Sat, 27 Jun 2020 15:54:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33780) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jpGrf-0002Pl-UB for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:51 -0400 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]:42890) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jpGrd-0003vO-Uq for qemu-devel@nongnu.org; Sat, 27 Jun 2020 15:51:51 -0400 Received: by mail-ed1-x534.google.com with SMTP id z17so9469754edr.9 for ; Sat, 27 Jun 2020 12:51:49 -0700 (PDT) Received: from rtrkw774-lin.syrmia.com ([46.240.135.226]) by smtp.gmail.com with ESMTPSA id y11sm5298734ejw.63.2020.06.27.12.51.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jun 2020 12:51:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9ewVRNpPM318EJDye8jWm3GOz5oUfVOplXqMzHurSGg=; b=o5I1tuYGiKveP+FpsujSYCCGkyNgfFs1pdxxZNSjbdDJKfxc5+DBbu1R6MYcAYm7vx HA2kjHs8AfHIqno7r+W6IV47taOeKIsQh31PwEM1XL7P4+3L/e9BAjxabT/MeVpKfSAY vzzNeQivEINoQ5FDNPgaYm71wSOMTe13R2K10KFTAz9KyaDtU+yptmCsVwZ87E1J7pYH xki49/EDZaWtQznPQYw3WLBZd7AZvDjL7JcrEOURfdC47sWkSHrIKTbd6XZ5sIUSnQqA baSZ/tIqfC0VfHrKRkYRMULJeEaSVGUQl1bE3En+RYcd0HQbNnKPIRKxiHqKL3ZwNdWj DfPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9ewVRNpPM318EJDye8jWm3GOz5oUfVOplXqMzHurSGg=; b=gIuZiXbM6t/YZVFlLac2STLf9/WtfpfA2jEtYswGd3gj5qdBxWpSUWIVCc5HIM6+DZ tmLooBpTNEFaPfNA6hH0bkHOAKcguJvnOsmN8+oFebcICrKUm9YLLOLhEg6AhcL6V1yA RkvyyiRKFRQkYUsXa1MhuvZPyfSFyFXIVKqNpUQjc1bT/pTif7hoJ8xFjlwXEDl7Pq+C QVxDLPHQjwR1wK4X2xi6+PG8UKTjF8kH8wxLDHu6TWYSenjjueovzr0NyyEnIeVIUCCl i7j8oe3Q1oHPn6+Dki7jq1mzSPVPL9/FQRSPeBUe0PCtJpt1yz8zHRzT4I800/bJrk0q EutQ== X-Gm-Message-State: AOAM531PcsWurhkRuBpub4l/Ah7Ictmn5l+4/vuFX5qdH9IHxCoPDx9g g3R3p6mg0VBCjdJrO4IP3ajuH1PK X-Google-Smtp-Source: ABdhPJy97j1wxwprDhJ3uL7PZdbxgJLII+FU84hvO4T1OtN7Kdlb9trnNVUoJs1OzK1FoHOl3fqVzw== X-Received: by 2002:a50:8425:: with SMTP id 34mr10057553edp.314.1593287508619; Sat, 27 Jun 2020 12:51:48 -0700 (PDT) From: Aleksandar Markovic To: qemu-devel@nongnu.org, peter.maydell@linaro.org Subject: [PULL 6/6] MAINTAINERS: Add 'Performance Tools and Tests' subsection Date: Sat, 27 Jun 2020 21:51:43 +0200 Message-Id: <1593287503-25197-7-git-send-email-aleksandar.qemu.devel@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> References: <1593287503-25197-1-git-send-email-aleksandar.qemu.devel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::534; envelope-from=aleksandar.qemu.devel@gmail.com; helo=mail-ed1-x534.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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: aleksandar.qemu.devel@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) This commit creates a new 'Miscellaneous' section which hosts a new 'Performance Tools and Tests' subsection. This subsection will contain the the performance scripts and benchmarks written as a part of the 'TCG Continuous Benchmarking' project. Also, it will be a placeholder for follow-ups to this project, if any. Signed-off-by: Ahmed Karaman Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Aleksandar Markovic Signed-off-by: Aleksandar Markovic Message-Id: <20200626164546.22102-4-ahmedkhaledkaraman@gmail.com> --- MAINTAINERS | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index fe925ea..dec252f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1096,11 +1096,10 @@ F: hw/isa/vt82c686.c F: hw/pci-host/bonito.c F: include/hw/isa/vt82c686.h =20 -Loongson-3 Virtual Platform +Loongson-3 virtual platforms M: Huacai Chen R: Jiaxun Yang S: Maintained -F: hw/mips/loongson3_virt.c F: hw/intc/loongson_liointc.c =20 Boston @@ -3026,3 +3025,10 @@ M: Peter Maydell S: Maintained F: docs/conf.py F: docs/*/conf.py + +Miscellaneous +------------- +Performance Tools and Tests +M: Ahmed Karaman +S: Maintained +F: scripts/performance/ --=20 2.7.4