From patchwork Thu Sep 15 15:46:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dr. David Alan Gilbert" X-Patchwork-Id: 12977589 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AB2F0ECAAA1 for ; Thu, 15 Sep 2022 15:52:07 +0000 (UTC) Received: from localhost ([::1]:41322 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oYr9q-0004DL-RO for qemu-devel@archiver.kernel.org; Thu, 15 Sep 2022 11:52:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYr4J-00071Z-RE for qemu-devel@nongnu.org; Thu, 15 Sep 2022 11:46:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:56196) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYr4G-0008Vm-QS for qemu-devel@nongnu.org; Thu, 15 Sep 2022 11:46:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1663256779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LxQewR1hp0sGEmZIwN4/53x7yQJkqndktd3+rpDkPXo=; b=NV6zrvwmgwlIyoY8Zxb6sjdXz6nQqy58OXu0/rHHfwPdWPdgR645sMOnby2C4TVkT0vbrN SOrhBUwi+4BcTOQ9giklNABvMt5CgsOyll8nZY8KiAAv64k4A9ioHXmiPinUVivuhOowQ8 VSDRoEE9E8b0uLXLtnNxaPda3M63MuI= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-594-gEkpduqvOV6cB52zUNcu3Q-1; Thu, 15 Sep 2022 11:46:16 -0400 X-MC-Unique: gEkpduqvOV6cB52zUNcu3Q-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4B0B188B7A8; Thu, 15 Sep 2022 15:46:16 +0000 (UTC) Received: from dgilbert-t580.localhost (unknown [10.33.36.164]) by smtp.corp.redhat.com (Postfix) with ESMTP id 89E6F492B04; Thu, 15 Sep 2022 15:46:15 +0000 (UTC) From: "Dr. David Alan Gilbert (git)" To: qemu-devel@nongnu.org, pizhenwei@bytedance.com, dongli.zhang@oracle.com Cc: armbru@redhat.com Subject: [PULL 1/3] monitor: Support specified vCPU registers Date: Thu, 15 Sep 2022 16:46:04 +0100 Message-Id: <20220915154606.124713-2-dgilbert@redhat.com> In-Reply-To: <20220915154606.124713-1-dgilbert@redhat.com> References: <20220915154606.124713-1-dgilbert@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 Received-SPF: pass client-ip=170.10.133.124; envelope-from=dgilbert@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: zhenwei pi Originally we have to get all the vCPU registers and parse the specified one. To improve the performance of this usage, allow user specified vCPU id to query registers. Run a VM with 16 vCPU, use bcc tool to track the latency of 'hmp_info_registers': 'info registers -a' uses about 3ms; 'info registers 12' uses about 150us. Cc: Darren Kenny Reviewed-by: Markus Armbruster Signed-off-by: zhenwei pi Reviewed-by: Darren Kenny Message-Id: <20220802073720.1236988-2-pizhenwei@bytedance.com> Signed-off-by: Dr. David Alan Gilbert --- hmp-commands-info.hx | 8 +++++--- monitor/misc.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index 188d9ece3b..e012035541 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -100,9 +100,11 @@ ERST { .name = "registers", - .args_type = "cpustate_all:-a", - .params = "[-a]", - .help = "show the cpu registers (-a: all - show register info for all cpus)", + .args_type = "cpustate_all:-a,vcpu:i?", + .params = "[-a|vcpu]", + .help = "show the cpu registers (-a: show register info for all cpus;" + " vcpu: specific vCPU to query; show the current CPU's registers if" + " no argument is specified)", .cmd = hmp_info_registers, }, diff --git a/monitor/misc.c b/monitor/misc.c index 3d2312ba8d..6436a8786b 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -307,6 +307,7 @@ int monitor_get_cpu_index(Monitor *mon) static void hmp_info_registers(Monitor *mon, const QDict *qdict) { bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false); + int vcpu = qdict_get_try_int(qdict, "vcpu", -1); CPUState *cs; if (all_cpus) { @@ -315,13 +316,18 @@ static void hmp_info_registers(Monitor *mon, const QDict *qdict) cpu_dump_state(cs, NULL, CPU_DUMP_FPU); } } else { - cs = mon_get_cpu(mon); + cs = vcpu >= 0 ? qemu_get_cpu(vcpu) : mon_get_cpu(mon); if (!cs) { - monitor_printf(mon, "No CPU available\n"); + if (vcpu >= 0) { + monitor_printf(mon, "CPU#%d not available\n", vcpu); + } else { + monitor_printf(mon, "No CPU available\n"); + } return; } + monitor_printf(mon, "\nCPU#%d\n", cs->cpu_index); cpu_dump_state(cs, NULL, CPU_DUMP_FPU); } } From patchwork Thu Sep 15 15:46:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dr. David Alan Gilbert" X-Patchwork-Id: 12977587 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 61D58C6FA8B for ; Thu, 15 Sep 2022 15:49:24 +0000 (UTC) Received: from localhost ([::1]:40010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oYr7C-0000P3-5V for qemu-devel@archiver.kernel.org; Thu, 15 Sep 2022 11:49:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50768) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYr4K-00071u-Az for qemu-devel@nongnu.org; Thu, 15 Sep 2022 11:46:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:23734) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYr4H-0008Vx-G8 for qemu-devel@nongnu.org; Thu, 15 Sep 2022 11:46:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1663256780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LlZFnnRbZvhI/3669iDTsX/XMeUsl2k+kTwdxvtR+Rc=; b=WFYNj4XWnROK99XhglAQMIs5c8nhT0f3ZAJB+yQUdzU/cKOm8nDAysEw1ENrq4s1sVGEWt n0TERrIaJH+HmLjdYCln2N/a3n6y3U0kx8UindaFDKKWGvIuGm5eDe/NcBjBUMtF8PjzU2 o5QDrJ7FUXrhrFT8tVZSvjQjeB6Ok2Y= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-631-7i3oC1dPNKOyjAXtESnvcQ-1; Thu, 15 Sep 2022 11:46:19 -0400 X-MC-Unique: 7i3oC1dPNKOyjAXtESnvcQ-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 19C32101E151; Thu, 15 Sep 2022 15:46:19 +0000 (UTC) Received: from dgilbert-t580.localhost (unknown [10.33.36.164]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5A39B492B04; Thu, 15 Sep 2022 15:46:17 +0000 (UTC) From: "Dr. David Alan Gilbert (git)" To: qemu-devel@nongnu.org, pizhenwei@bytedance.com, dongli.zhang@oracle.com Cc: armbru@redhat.com Subject: [PULL 2/3] monitor/hmp: print trace as option in help for log command Date: Thu, 15 Sep 2022 16:46:05 +0100 Message-Id: <20220915154606.124713-3-dgilbert@redhat.com> In-Reply-To: <20220915154606.124713-1-dgilbert@redhat.com> References: <20220915154606.124713-1-dgilbert@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 Received-SPF: pass client-ip=170.10.129.124; envelope-from=dgilbert@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Dongli Zhang The below is printed when printing help information in qemu-system-x86_64 command line, and when CONFIG_TRACE_LOG is enabled: ---------------------------- $ qemu-system-x86_64 -d help ... ... trace:PATTERN enable trace events Use "-d trace:help" to get a list of trace events. ---------------------------- However, the options of "trace:PATTERN" are only printed by "qemu-system-x86_64 -d help", but missing in hmp "help log" command. Fixes: c84ea00dc2 ("log: add "-d trace:PATTERN"") Cc: Joe Jin Signed-off-by: Dongli Zhang Message-Id: <20220831213943.8155-1-dongli.zhang@oracle.com> Reviewed-by: Markus Armbruster Signed-off-by: Dr. David Alan Gilbert --- monitor/hmp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/monitor/hmp.c b/monitor/hmp.c index 15ca04735c..a3375d0341 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -285,10 +285,15 @@ void help_cmd(Monitor *mon, const char *name) if (!strcmp(name, "log")) { const QEMULogItem *item; monitor_printf(mon, "Log items (comma separated):\n"); - monitor_printf(mon, "%-10s %s\n", "none", "remove all logs"); + monitor_printf(mon, "%-15s %s\n", "none", "remove all logs"); for (item = qemu_log_items; item->mask != 0; item++) { - monitor_printf(mon, "%-10s %s\n", item->name, item->help); + monitor_printf(mon, "%-15s %s\n", item->name, item->help); } +#ifdef CONFIG_TRACE_LOG + monitor_printf(mon, "trace:PATTERN enable trace events\n"); + monitor_printf(mon, "\nUse \"log trace:help\" to get a list of " + "trace events.\n\n"); +#endif return; } From patchwork Thu Sep 15 15:46:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Dr. David Alan Gilbert" X-Patchwork-Id: 12977588 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 08F2AECAAA1 for ; Thu, 15 Sep 2022 15:51:22 +0000 (UTC) Received: from localhost ([::1]:53224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oYr97-0002gM-7Z for qemu-devel@archiver.kernel.org; Thu, 15 Sep 2022 11:51:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33882) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYr4O-00073G-RI for qemu-devel@nongnu.org; Thu, 15 Sep 2022 11:46:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:37578) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oYr4N-00005f-1U for qemu-devel@nongnu.org; Thu, 15 Sep 2022 11:46:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1663256786; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=w5RBMOxzc5mMBaNvYMPTh8nSepORyNQcYsVpzQqIhlM=; b=Rh/gbneigyBI1JH4c8rT26L6Vc3SAyBabRakJn/xYZJ/ZlZu8L0Xu7dbmyIgiUdEVLaDBb QftVWPBfLXmJ55CzWTuNwssAFy0gil6wu43CHgX8tWNFpItdf3VRb0nm/wzcCiO2DPza0w 95h454LDWKfd3uoniTFI/Q1tiEZFh+g= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-166-gN0QjukaN2C2--FXow-08w-1; Thu, 15 Sep 2022 11:46:23 -0400 X-MC-Unique: gN0QjukaN2C2--FXow-08w-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C227188B7AC; Thu, 15 Sep 2022 15:46:22 +0000 (UTC) Received: from dgilbert-t580.localhost (unknown [10.33.36.164]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8142C492B04; Thu, 15 Sep 2022 15:46:20 +0000 (UTC) From: "Dr. David Alan Gilbert (git)" To: qemu-devel@nongnu.org, pizhenwei@bytedance.com, dongli.zhang@oracle.com Cc: armbru@redhat.com Subject: [PULL 3/3] hmp: Fix ordering of text Date: Thu, 15 Sep 2022 16:46:06 +0100 Message-Id: <20220915154606.124713-4-dgilbert@redhat.com> In-Reply-To: <20220915154606.124713-1-dgilbert@redhat.com> References: <20220915154606.124713-1-dgilbert@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 Received-SPF: pass client-ip=170.10.133.124; envelope-from=dgilbert@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: "Dr. David Alan Gilbert" Fix the ordering of the help text so it's always after the commands being defined. A few had got out of order. Keep 'info' at the end. Signed-off-by: Dr. David Alan Gilbert Reviewed-by: Daniel P. Berrangé --- hmp-commands.hx | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index 182e639d14..8ab8000acd 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -1742,23 +1742,6 @@ SRST *icount* for the reference may be observed with ``info replay`` command. ERST - { - .name = "info", - .args_type = "item:s?", - .params = "[subcommand]", - .help = "show various information about the system state", - .cmd = hmp_info_help, - .sub_table = hmp_info_cmds, - .flags = "p", - }, - -SRST -``calc_dirty_rate`` *second* - Start a round of dirty rate measurement with the period specified in *second*. - The result of the dirty rate measurement may be observed with ``info - dirty_rate`` command. -ERST - { .name = "calc_dirty_rate", .args_type = "dirty_ring:-r,dirty_bitmap:-b,second:l,sample_pages_per_GB:l?", @@ -1770,10 +1753,10 @@ ERST }, SRST -``set_vcpu_dirty_limit`` - Set dirty page rate limit on virtual CPU, the information about all the - virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit`` - command. +``calc_dirty_rate`` *second* + Start a round of dirty rate measurement with the period specified in *second*. + The result of the dirty rate measurement may be observed with ``info + dirty_rate`` command. ERST { @@ -1786,8 +1769,8 @@ ERST }, SRST -``cancel_vcpu_dirty_limit`` - Cancel dirty page rate limit on virtual CPU, the information about all the +``set_vcpu_dirty_limit`` + Set dirty page rate limit on virtual CPU, the information about all the virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit`` command. ERST @@ -1800,3 +1783,20 @@ ERST "\n\t\t\t\t\t limit on a specified virtual cpu", .cmd = hmp_cancel_vcpu_dirty_limit, }, + +SRST +``cancel_vcpu_dirty_limit`` + Cancel dirty page rate limit on virtual CPU, the information about all the + virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit`` + command. +ERST + + { + .name = "info", + .args_type = "item:s?", + .params = "[subcommand]", + .help = "show various information about the system state", + .cmd = hmp_info_help, + .sub_table = hmp_info_cmds, + .flags = "p", + },