diff mbox

[v5] hmp: add info iothreads command

Message ID 1435306033-58372-1-git-send-email-kathy.wangting@huawei.com
State New
Headers show

Commit Message

Wangting (Kathy) June 26, 2015, 8:07 a.m. UTC
Make "info iothreads" available on the HMP monitor.

For example, the results are as follows when executing qemu
command with "-object iothread,id=iothread-1 -object 
iothread,id=iothread-2".
(qemu) info iothreads
iothread-1: thread_id=123
iothread-2: thread_id=456

Signed-off-by: Ting Wang <kathy.wangting@huawei.com>
---
v5: use "for" instead of "while"
---
 hmp-commands.hx |  2 ++
 hmp.c           | 13 +++++++++++++
 hmp.h           |  1 +
 monitor.c       |  7 +++++++
 4 files changed, 23 insertions(+)execute

Comments

Markus Armbruster July 3, 2015, 12:43 p.m. UTC | #1
Copying the HMP maintainer Luiz.  You can feed your patch to
scripts/get_maintainer to find people to cc yourself.

Ting Wang <kathy.wangting@huawei.com> writes:

> Make "info iothreads" available on the HMP monitor.
>
> For example, the results are as follows when executing qemu
> command with "-object iothread,id=iothread-1 -object 
> iothread,id=iothread-2".
> (qemu) info iothreads
> iothread-1: thread_id=123
> iothread-2: thread_id=456
>
> Signed-off-by: Ting Wang <kathy.wangting@huawei.com>

Reviewed-by: Markus Armbruster <armbru@redhat.com>
Wangting (Kathy) July 6, 2015, 2:24 a.m. UTC | #2
On 2015-7-3 20:43, Markus Armbruster wrote:
> Copying the HMP maintainer Luiz.  You can feed your patch to
> scripts/get_maintainer to find people to cc yourself.
OK, thanks.

Ting
>
> Ting Wang <kathy.wangting@huawei.com> writes:
>
>> Make "info iothreads" available on the HMP monitor.
>>
>> For example, the results are as follows when executing qemu
>> command with "-object iothread,id=iothread-1 -object 
>> iothread,id=iothread-2".
>> (qemu) info iothreads
>> iothread-1: thread_id=123
>> iothread-2: thread_id=456
>>
>> Signed-off-by: Ting Wang <kathy.wangting@huawei.com>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>
>
Luiz Capitulino July 30, 2015, 4:05 p.m. UTC | #3
On Fri, 26 Jun 2015 16:07:13 +0800
Ting Wang <kathy.wangting@huawei.com> wrote:

> Make "info iothreads" available on the HMP monitor.
> 
> For example, the results are as follows when executing qemu
> command with "-object iothread,id=iothread-1 -object 
> iothread,id=iothread-2".
> (qemu) info iothreads
> iothread-1: thread_id=123
> iothread-2: thread_id=456
> 
> Signed-off-by: Ting Wang <kathy.wangting@huawei.com>

Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>

Markus will take this patch via his tree.

> ---
> v5: use "for" instead of "while"
> ---
>  hmp-commands.hx |  2 ++
>  hmp.c           | 13 +++++++++++++
>  hmp.h           |  1 +
>  monitor.c       |  7 +++++++
>  4 files changed, 23 insertions(+)execute
> 
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index d3b7932..c8c8d79 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -1790,6 +1790,8 @@ show roms
>  show the TPM device
>  @item info memory-devices
>  show the memory devices
> +@item info iothreads
> +show iothreads
>  @end table
>  ETEXI
>  
> diff --git a/hmp.c b/hmp.c
> index 070aaf8..7192494 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -1963,6 +1963,19 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
>      qapi_free_MemoryDeviceInfoList(info_list);
>  }
>  
> +void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
> +{
> +    IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
> +    IOThreadInfoList *info;
> +
> +    for (info = info_list; info; info = info->next) {
> +        monitor_printf(mon, "%s: thread_id=%" PRId64 "\n",
> +                       info->value->id, info->value->thread_id);
> +    }
> +
> +    qapi_free_IOThreadInfoList(info_list);
> +}
> +
>  void hmp_qom_list(Monitor *mon, const QDict *qdict)
>  {
>      const char *path = qdict_get_try_str(qdict, "path");
> diff --git a/hmp.h b/hmp.h
> index 0cf4f2a..c139a97 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -39,6 +39,7 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict);
>  void hmp_info_pci(Monitor *mon, const QDict *qdict);
>  void hmp_info_block_jobs(Monitor *mon, const QDict *qdict);
>  void hmp_info_tpm(Monitor *mon, const QDict *qdict);
> +void hmp_info_iothreads(Monitor *mon, const QDict *qdict);
>  void hmp_quit(Monitor *mon, const QDict *qdict);
>  void hmp_stop(Monitor *mon, const QDict *qdict);
>  void hmp_system_reset(Monitor *mon, const QDict *qdict);
> diff --git a/monitor.c b/monitor.c
> index aeea2b5..917e827 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -2850,6 +2850,13 @@ static mon_cmd_t info_cmds[] = {
>          .mhandler.cmd = hmp_info_memory_devices,
>      },
>      {
> +        .name       = "iothreads",
> +        .args_type  = "",
> +        .params     = "",
> +        .help       = "show iothreads",
> +        .mhandler.cmd = hmp_info_iothreads,
> +    },
> +    {
>          .name       = "rocker",
>          .args_type  = "name:s",
>          .params     = "name",
Jianjun Kong July 30, 2015, 4:51 p.m. UTC | #4
On Fri, Jun 26, 2015 at 4:07 PM, Ting Wang <kathy.wangting@huawei.com> wrote:
> Make "info iothreads" available on the HMP monitor.
>
> For example, the results are as follows when executing qemu
> command with "-object iothread,id=iothread-1 -object
> iothread,id=iothread-2".
> (qemu) info iothreads
> iothread-1: thread_id=123
> iothread-2: thread_id=456
>
> Signed-off-by: Ting Wang <kathy.wangting@huawei.com>
> ---
> v5: use "for" instead of "while"
> ---
>  hmp-commands.hx |  2 ++
>  hmp.c           | 13 +++++++++++++
>  hmp.h           |  1 +
>  monitor.c       |  7 +++++++
>  4 files changed, 23 insertions(+)execute
>
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index d3b7932..c8c8d79 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -1790,6 +1790,8 @@ show roms
>  show the TPM device
>  @item info memory-devices
>  show the memory devices
> +@item info iothreads
> +show iothreads
>  @end table
>  ETEXI
>
> diff --git a/hmp.c b/hmp.c
> index 070aaf8..7192494 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -1963,6 +1963,19 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
>      qapi_free_MemoryDeviceInfoList(info_list);
>  }
>
> +void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
> +{
> +    IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
> +    IOThreadInfoList *info;
> +
> +    for (info = info_list; info; info = info->next) {
> +        monitor_printf(mon, "%s: thread_id=%" PRId64 "\n",

How about add a '\' at the beginning of each line? similar as the
output of 'info network'

> +                       info->value->id, info->value->thread_id);
> +    }
> +
> +    qapi_free_IOThreadInfoList(info_list);
> +}
> +
>  void hmp_qom_list(Monitor *mon, const QDict *qdict)
>  {
>      const char *path = qdict_get_try_str(qdict, "path");
> diff --git a/hmp.h b/hmp.h
> index 0cf4f2a..c139a97 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -39,6 +39,7 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict);
>  void hmp_info_pci(Monitor *mon, const QDict *qdict);
>  void hmp_info_block_jobs(Monitor *mon, const QDict *qdict);
>  void hmp_info_tpm(Monitor *mon, const QDict *qdict);
> +void hmp_info_iothreads(Monitor *mon, const QDict *qdict);
>  void hmp_quit(Monitor *mon, const QDict *qdict);
>  void hmp_stop(Monitor *mon, const QDict *qdict);
>  void hmp_system_reset(Monitor *mon, const QDict *qdict);
> diff --git a/monitor.c b/monitor.c
> index aeea2b5..917e827 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -2850,6 +2850,13 @@ static mon_cmd_t info_cmds[] = {
>          .mhandler.cmd = hmp_info_memory_devices,
>      },
>      {
> +        .name       = "iothreads",
> +        .args_type  = "",
> +        .params     = "",
> +        .help       = "show iothreads",
> +        .mhandler.cmd = hmp_info_iothreads,
> +    },
> +    {
>          .name       = "rocker",
>          .args_type  = "name:s",
>          .params     = "name",
> --
> 1.7.12.4
>
>
>
Paolo Bonzini July 30, 2015, 5:07 p.m. UTC | #5
On 30/07/2015 18:51, Amos Jianjun Kong wrote:
>> > +void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
>> > +{
>> > +    IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
>> > +    IOThreadInfoList *info;
>> > +
>> > +    for (info = info_list; info; info = info->next) {
>> > +        monitor_printf(mon, "%s: thread_id=%" PRId64 "\n",
> How about add a '\' at the beginning of each line? similar as the
> output of 'info network'
> 

For 'info network', the \ represents the peer relationship between e.g.
NIC and backend.  There is no such relationship for iothreads.

Paolo
Jianjun Kong July 30, 2015, 5:09 p.m. UTC | #6
On Fri, Jul 31, 2015 at 1:07 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>
> On 30/07/2015 18:51, Amos Jianjun Kong wrote:
>>> > +void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
>>> > +{
>>> > +    IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
>>> > +    IOThreadInfoList *info;
>>> > +
>>> > +    for (info = info_list; info; info = info->next) {
>>> > +        monitor_printf(mon, "%s: thread_id=%" PRId64 "\n",
>> How about add a '\' at the beginning of each line? similar as the
>> output of 'info network'
>>
>
> For 'info network', the \ represents the peer relationship between e.g.
> NIC and backend.  There is no such relationship for iothreads.

Got it.

Reviewed-by: Amos Jianjun Kong <kongjianjun@gmail.com>

> Paolo
Wangting (Kathy) July 31, 2015, 1:09 a.m. UTC | #7
On 2015-7-31 0:05, Luiz Capitulino wrote:
> On Fri, 26 Jun 2015 16:07:13 +0800
> Ting Wang <kathy.wangting@huawei.com> wrote:
>
>> Make "info iothreads" available on the HMP monitor.
>>
>> For example, the results are as follows when executing qemu
>> command with "-object iothread,id=iothread-1 -object 
>> iothread,id=iothread-2".
>> (qemu) info iothreads
>> iothread-1: thread_id=123
>> iothread-2: thread_id=456
>>
>> Signed-off-by: Ting Wang <kathy.wangting@huawei.com>
> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
>
> Markus will take this patch via his tree.

Thanks.

Ting
>> ---
>> v5: use "for" instead of "while"
>> ---
>>  hmp-commands.hx |  2 ++
>>  hmp.c           | 13 +++++++++++++
>>  hmp.h           |  1 +
>>  monitor.c       |  7 +++++++
>>  4 files changed, 23 insertions(+)execute
>>
>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>> index d3b7932..c8c8d79 100644
>> --- a/hmp-commands.hx
>> +++ b/hmp-commands.hx
>> @@ -1790,6 +1790,8 @@ show roms
>>  show the TPM device
>>  @item info memory-devices
>>  show the memory devices
>> +@item info iothreads
>> +show iothreads
>>  @end table
>>  ETEXI
>>  
>> diff --git a/hmp.c b/hmp.c
>> index 070aaf8..7192494 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -1963,6 +1963,19 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
>>      qapi_free_MemoryDeviceInfoList(info_list);
>>  }
>>  
>> +void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
>> +{
>> +    IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
>> +    IOThreadInfoList *info;
>> +
>> +    for (info = info_list; info; info = info->next) {
>> +        monitor_printf(mon, "%s: thread_id=%" PRId64 "\n",
>> +                       info->value->id, info->value->thread_id);
>> +    }
>> +
>> +    qapi_free_IOThreadInfoList(info_list);
>> +}
>> +
>>  void hmp_qom_list(Monitor *mon, const QDict *qdict)
>>  {
>>      const char *path = qdict_get_try_str(qdict, "path");
>> diff --git a/hmp.h b/hmp.h
>> index 0cf4f2a..c139a97 100644
>> --- a/hmp.h
>> +++ b/hmp.h
>> @@ -39,6 +39,7 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict);
>>  void hmp_info_pci(Monitor *mon, const QDict *qdict);
>>  void hmp_info_block_jobs(Monitor *mon, const QDict *qdict);
>>  void hmp_info_tpm(Monitor *mon, const QDict *qdict);
>> +void hmp_info_iothreads(Monitor *mon, const QDict *qdict);
>>  void hmp_quit(Monitor *mon, const QDict *qdict);
>>  void hmp_stop(Monitor *mon, const QDict *qdict);
>>  void hmp_system_reset(Monitor *mon, const QDict *qdict);
>> diff --git a/monitor.c b/monitor.c
>> index aeea2b5..917e827 100644
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -2850,6 +2850,13 @@ static mon_cmd_t info_cmds[] = {
>>          .mhandler.cmd = hmp_info_memory_devices,
>>      },
>>      {
>> +        .name       = "iothreads",
>> +        .args_type  = "",
>> +        .params     = "",
>> +        .help       = "show iothreads",
>> +        .mhandler.cmd = hmp_info_iothreads,
>> +    },
>> +    {
>>          .name       = "rocker",
>>          .args_type  = "name:s",
>>          .params     = "name",
>
> .
>
Markus Armbruster Aug. 5, 2015, 9:54 a.m. UTC | #8
Ting Wang <kathy.wangting@huawei.com> writes:

> Make "info iothreads" available on the HMP monitor.
>
> For example, the results are as follows when executing qemu
> command with "-object iothread,id=iothread-1 -object 
> iothread,id=iothread-2".
> (qemu) info iothreads
> iothread-1: thread_id=123
> iothread-2: thread_id=456
>
> Signed-off-by: Ting Wang <kathy.wangting@huawei.com>

Applied to my qapi-next[*] branch, thanks!

[*] Close enough --- can't be bothered to create a separate monitor-next
branch right now :)
diff mbox

Patch

diff --git a/hmp-commands.hx b/hmp-commands.hx
index d3b7932..c8c8d79 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1790,6 +1790,8 @@  show roms
 show the TPM device
 @item info memory-devices
 show the memory devices
+@item info iothreads
+show iothreads
 @end table
 ETEXI
 
diff --git a/hmp.c b/hmp.c
index 070aaf8..7192494 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1963,6 +1963,19 @@  void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
     qapi_free_MemoryDeviceInfoList(info_list);
 }
 
+void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
+{
+    IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
+    IOThreadInfoList *info;
+
+    for (info = info_list; info; info = info->next) {
+        monitor_printf(mon, "%s: thread_id=%" PRId64 "\n",
+                       info->value->id, info->value->thread_id);
+    }
+
+    qapi_free_IOThreadInfoList(info_list);
+}
+
 void hmp_qom_list(Monitor *mon, const QDict *qdict)
 {
     const char *path = qdict_get_try_str(qdict, "path");
diff --git a/hmp.h b/hmp.h
index 0cf4f2a..c139a97 100644
--- a/hmp.h
+++ b/hmp.h
@@ -39,6 +39,7 @@  void hmp_info_balloon(Monitor *mon, const QDict *qdict);
 void hmp_info_pci(Monitor *mon, const QDict *qdict);
 void hmp_info_block_jobs(Monitor *mon, const QDict *qdict);
 void hmp_info_tpm(Monitor *mon, const QDict *qdict);
+void hmp_info_iothreads(Monitor *mon, const QDict *qdict);
 void hmp_quit(Monitor *mon, const QDict *qdict);
 void hmp_stop(Monitor *mon, const QDict *qdict);
 void hmp_system_reset(Monitor *mon, const QDict *qdict);
diff --git a/monitor.c b/monitor.c
index aeea2b5..917e827 100644
--- a/monitor.c
+++ b/monitor.c
@@ -2850,6 +2850,13 @@  static mon_cmd_t info_cmds[] = {
         .mhandler.cmd = hmp_info_memory_devices,
     },
     {
+        .name       = "iothreads",
+        .args_type  = "",
+        .params     = "",
+        .help       = "show iothreads",
+        .mhandler.cmd = hmp_info_iothreads,
+    },
+    {
         .name       = "rocker",
         .args_type  = "name:s",
         .params     = "name",