[PATCH v15 00/10] TCG code quality tracking

Fei Wu posted 10 patches 11 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
MAINTAINERS                   |   1 +
accel/tcg/cpu-exec.c          |   6 +
accel/tcg/meson.build         |   1 +
accel/tcg/monitor.c           | 184 +++++++++++++++--
accel/tcg/tb-context.h        |   1 +
accel/tcg/tb-hash.h           |   7 +
accel/tcg/tb-maint.c          |  20 ++
accel/tcg/tb-stats.c          | 365 ++++++++++++++++++++++++++++++++++
accel/tcg/tcg-accel-ops.c     |  10 -
accel/tcg/tcg-runtime.c       |   1 +
accel/tcg/translate-all.c     | 110 ++++++----
accel/tcg/translator.c        |  30 +++
disas/disas.c                 |   2 +
docs/devel/tcg-tbstats.rst    |  97 +++++++++
hmp-commands-info.hx          |  31 +--
hmp-commands.hx               |  16 ++
include/exec/exec-all.h       |   3 +
include/exec/gen-icount.h     |   1 +
include/exec/tb-stats-dump.h  |  21 ++
include/exec/tb-stats-flags.h |  29 +++
include/exec/tb-stats.h       | 130 ++++++++++++
include/monitor/hmp.h         |   3 +
include/qemu/log.h            |   1 +
include/qemu/timer.h          |   9 -
include/tcg/tcg.h             |  26 +--
linux-user/exit.c             |   2 +
meson.build                   |   2 -
meson_options.txt             |   2 -
qapi/machine.json             |  18 --
scripts/meson-buildoptions.sh |   3 -
softmmu/runstate.c            |  11 +-
stubs/meson.build             |   1 +
stubs/tb-stats.c              |  36 ++++
tcg/tcg.c                     | 237 +++-------------------
tests/qtest/qmp-cmd-test.c    |   3 -
util/log.c                    |  26 +++
36 files changed, 1093 insertions(+), 353 deletions(-)
create mode 100644 accel/tcg/tb-stats.c
create mode 100644 docs/devel/tcg-tbstats.rst
create mode 100644 include/exec/tb-stats-dump.h
create mode 100644 include/exec/tb-stats-flags.h
create mode 100644 include/exec/tb-stats.h
create mode 100644 stubs/tb-stats.c
[PATCH v15 00/10] TCG code quality tracking
Posted by Fei Wu 11 months ago
v15
---
This is a large change:
* remove all time related stuffs, including cmd 'info profile'
* remove the per-TB flag, use global flag instead
* remove tb_stats pause/filter, but add status
* remove qemu_log changes, and use monitor_printf
* use array instead of list for sorting
* remove async_safe_run_on_cpu for cmd info tb-list & tb
* use monitor_disas instead of regenerate TB, but **doesn't work yet**
* other cleanups


Alex Bennée (1):
  tb-stats: reset the tracked TBs on a tb_flush

Fei Wu (5):
  accel/tcg: remove CONFIG_PROFILER
  accel/tcg: add jit stats to TBStatistics
  debug: add -d tb_stats to control TBStatistics
  tb-stats: dump hot TBs at the end of the execution
  docs: add tb-stats how to

Vanderson M. do Rosario (4):
  accel/tcg: introduce TBStatistics structure
  accel: collecting TB execution count
  monitor: adding tb_stats hmp command
  tb-stats: Adding info [tb-list|tb] commands to HMP (WIP)

 MAINTAINERS                   |   1 +
 accel/tcg/cpu-exec.c          |   6 +
 accel/tcg/meson.build         |   1 +
 accel/tcg/monitor.c           | 184 +++++++++++++++--
 accel/tcg/tb-context.h        |   1 +
 accel/tcg/tb-hash.h           |   7 +
 accel/tcg/tb-maint.c          |  20 ++
 accel/tcg/tb-stats.c          | 365 ++++++++++++++++++++++++++++++++++
 accel/tcg/tcg-accel-ops.c     |  10 -
 accel/tcg/tcg-runtime.c       |   1 +
 accel/tcg/translate-all.c     | 110 ++++++----
 accel/tcg/translator.c        |  30 +++
 disas/disas.c                 |   2 +
 docs/devel/tcg-tbstats.rst    |  97 +++++++++
 hmp-commands-info.hx          |  31 +--
 hmp-commands.hx               |  16 ++
 include/exec/exec-all.h       |   3 +
 include/exec/gen-icount.h     |   1 +
 include/exec/tb-stats-dump.h  |  21 ++
 include/exec/tb-stats-flags.h |  29 +++
 include/exec/tb-stats.h       | 130 ++++++++++++
 include/monitor/hmp.h         |   3 +
 include/qemu/log.h            |   1 +
 include/qemu/timer.h          |   9 -
 include/tcg/tcg.h             |  26 +--
 linux-user/exit.c             |   2 +
 meson.build                   |   2 -
 meson_options.txt             |   2 -
 qapi/machine.json             |  18 --
 scripts/meson-buildoptions.sh |   3 -
 softmmu/runstate.c            |  11 +-
 stubs/meson.build             |   1 +
 stubs/tb-stats.c              |  36 ++++
 tcg/tcg.c                     | 237 +++-------------------
 tests/qtest/qmp-cmd-test.c    |   3 -
 util/log.c                    |  26 +++
 36 files changed, 1093 insertions(+), 353 deletions(-)
 create mode 100644 accel/tcg/tb-stats.c
 create mode 100644 docs/devel/tcg-tbstats.rst
 create mode 100644 include/exec/tb-stats-dump.h
 create mode 100644 include/exec/tb-stats-flags.h
 create mode 100644 include/exec/tb-stats.h
 create mode 100644 stubs/tb-stats.c

-- 
2.25.1


Re: [PATCH v15 00/10] TCG code quality tracking
Posted by Wu, Fei 10 months, 3 weeks ago
On 6/7/2023 8:24 PM, Fei Wu wrote:
> v15
> ---
> This is a large change:
> * remove all time related stuffs, including cmd 'info profile'
> * remove the per-TB flag, use global flag instead
> * remove tb_stats pause/filter, but add status
> * remove qemu_log changes, and use monitor_printf
> * use array instead of list for sorting
> * remove async_safe_run_on_cpu for cmd info tb-list & tb

I didn't realize async_safe_run_on_cpu has such a strong semantics,
I will add it back if it's necessary.

Thanks,
Fei.

> * use monitor_disas instead of regenerate TB, but **doesn't work yet**
> * other cleanups
> 
> 
> Alex Bennée (1):
>   tb-stats: reset the tracked TBs on a tb_flush
> 
> Fei Wu (5):
>   accel/tcg: remove CONFIG_PROFILER
>   accel/tcg: add jit stats to TBStatistics
>   debug: add -d tb_stats to control TBStatistics
>   tb-stats: dump hot TBs at the end of the execution
>   docs: add tb-stats how to
> 
> Vanderson M. do Rosario (4):
>   accel/tcg: introduce TBStatistics structure
>   accel: collecting TB execution count
>   monitor: adding tb_stats hmp command
>   tb-stats: Adding info [tb-list|tb] commands to HMP (WIP)
> 
>  MAINTAINERS                   |   1 +
>  accel/tcg/cpu-exec.c          |   6 +
>  accel/tcg/meson.build         |   1 +
>  accel/tcg/monitor.c           | 184 +++++++++++++++--
>  accel/tcg/tb-context.h        |   1 +
>  accel/tcg/tb-hash.h           |   7 +
>  accel/tcg/tb-maint.c          |  20 ++
>  accel/tcg/tb-stats.c          | 365 ++++++++++++++++++++++++++++++++++
>  accel/tcg/tcg-accel-ops.c     |  10 -
>  accel/tcg/tcg-runtime.c       |   1 +
>  accel/tcg/translate-all.c     | 110 ++++++----
>  accel/tcg/translator.c        |  30 +++
>  disas/disas.c                 |   2 +
>  docs/devel/tcg-tbstats.rst    |  97 +++++++++
>  hmp-commands-info.hx          |  31 +--
>  hmp-commands.hx               |  16 ++
>  include/exec/exec-all.h       |   3 +
>  include/exec/gen-icount.h     |   1 +
>  include/exec/tb-stats-dump.h  |  21 ++
>  include/exec/tb-stats-flags.h |  29 +++
>  include/exec/tb-stats.h       | 130 ++++++++++++
>  include/monitor/hmp.h         |   3 +
>  include/qemu/log.h            |   1 +
>  include/qemu/timer.h          |   9 -
>  include/tcg/tcg.h             |  26 +--
>  linux-user/exit.c             |   2 +
>  meson.build                   |   2 -
>  meson_options.txt             |   2 -
>  qapi/machine.json             |  18 --
>  scripts/meson-buildoptions.sh |   3 -
>  softmmu/runstate.c            |  11 +-
>  stubs/meson.build             |   1 +
>  stubs/tb-stats.c              |  36 ++++
>  tcg/tcg.c                     | 237 +++-------------------
>  tests/qtest/qmp-cmd-test.c    |   3 -
>  util/log.c                    |  26 +++
>  36 files changed, 1093 insertions(+), 353 deletions(-)
>  create mode 100644 accel/tcg/tb-stats.c
>  create mode 100644 docs/devel/tcg-tbstats.rst
>  create mode 100644 include/exec/tb-stats-dump.h
>  create mode 100644 include/exec/tb-stats-flags.h
>  create mode 100644 include/exec/tb-stats.h
>  create mode 100644 stubs/tb-stats.c
> 


Re: [PATCH v15 00/10] TCG code quality tracking
Posted by Wu, Fei 10 months, 3 weeks ago
On 6/7/2023 8:24 PM, Fei Wu wrote:
> v15
> ---
> This is a large change:
> * remove all time related stuffs, including cmd 'info profile'
> * remove the per-TB flag, use global flag instead
> * remove tb_stats pause/filter, but add status
> * remove qemu_log changes, and use monitor_printf
> * use array instead of list for sorting
> * remove async_safe_run_on_cpu for cmd info tb-list & tb
> * use monitor_disas instead of regenerate TB, but **doesn't work yet**
> * other cleanups
> 
Hi Richard,

Could you please take a look at this series? I hope most of the comments
on v14 have been addressed.

Next revision I will change:
* add async_safe_run_on_cpu back in case of any concurrency issue
* add tbs->gpa_pc for monitor_disas, which requires
get_page_addr_code_hostp() return both ram_addr_t and gpa
* finalize the commit logs and documents

Thanks,
Fei.

> 
> Alex Bennée (1):
>   tb-stats: reset the tracked TBs on a tb_flush
> 
> Fei Wu (5):
>   accel/tcg: remove CONFIG_PROFILER
>   accel/tcg: add jit stats to TBStatistics
>   debug: add -d tb_stats to control TBStatistics
>   tb-stats: dump hot TBs at the end of the execution
>   docs: add tb-stats how to
> 
> Vanderson M. do Rosario (4):
>   accel/tcg: introduce TBStatistics structure
>   accel: collecting TB execution count
>   monitor: adding tb_stats hmp command
>   tb-stats: Adding info [tb-list|tb] commands to HMP (WIP)
> 
>  MAINTAINERS                   |   1 +
>  accel/tcg/cpu-exec.c          |   6 +
>  accel/tcg/meson.build         |   1 +
>  accel/tcg/monitor.c           | 184 +++++++++++++++--
>  accel/tcg/tb-context.h        |   1 +
>  accel/tcg/tb-hash.h           |   7 +
>  accel/tcg/tb-maint.c          |  20 ++
>  accel/tcg/tb-stats.c          | 365 ++++++++++++++++++++++++++++++++++
>  accel/tcg/tcg-accel-ops.c     |  10 -
>  accel/tcg/tcg-runtime.c       |   1 +
>  accel/tcg/translate-all.c     | 110 ++++++----
>  accel/tcg/translator.c        |  30 +++
>  disas/disas.c                 |   2 +
>  docs/devel/tcg-tbstats.rst    |  97 +++++++++
>  hmp-commands-info.hx          |  31 +--
>  hmp-commands.hx               |  16 ++
>  include/exec/exec-all.h       |   3 +
>  include/exec/gen-icount.h     |   1 +
>  include/exec/tb-stats-dump.h  |  21 ++
>  include/exec/tb-stats-flags.h |  29 +++
>  include/exec/tb-stats.h       | 130 ++++++++++++
>  include/monitor/hmp.h         |   3 +
>  include/qemu/log.h            |   1 +
>  include/qemu/timer.h          |   9 -
>  include/tcg/tcg.h             |  26 +--
>  linux-user/exit.c             |   2 +
>  meson.build                   |   2 -
>  meson_options.txt             |   2 -
>  qapi/machine.json             |  18 --
>  scripts/meson-buildoptions.sh |   3 -
>  softmmu/runstate.c            |  11 +-
>  stubs/meson.build             |   1 +
>  stubs/tb-stats.c              |  36 ++++
>  tcg/tcg.c                     | 237 +++-------------------
>  tests/qtest/qmp-cmd-test.c    |   3 -
>  util/log.c                    |  26 +++
>  36 files changed, 1093 insertions(+), 353 deletions(-)
>  create mode 100644 accel/tcg/tb-stats.c
>  create mode 100644 docs/devel/tcg-tbstats.rst
>  create mode 100644 include/exec/tb-stats-dump.h
>  create mode 100644 include/exec/tb-stats-flags.h
>  create mode 100644 include/exec/tb-stats.h
>  create mode 100644 stubs/tb-stats.c
> 


Re: [PATCH v15 00/10] TCG code quality tracking
Posted by Wu, Fei 10 months, 3 weeks ago
On 6/13/2023 11:29 AM, Wu, Fei wrote:
> On 6/7/2023 8:24 PM, Fei Wu wrote:
>> v15
>> ---
>> This is a large change:
>> * remove all time related stuffs, including cmd 'info profile'
>> * remove the per-TB flag, use global flag instead
>> * remove tb_stats pause/filter, but add status
>> * remove qemu_log changes, and use monitor_printf
>> * use array instead of list for sorting
>> * remove async_safe_run_on_cpu for cmd info tb-list & tb
>> * use monitor_disas instead of regenerate TB, but **doesn't work yet**
>> * other cleanups
>>
> Hi Richard,
> 
> Could you please take a look at this series? I hope most of the comments
> on v14 have been addressed.
> 
> Next revision I will change:
> * add async_safe_run_on_cpu back in case of any concurrency issue
> * add tbs->gpa_pc for monitor_disas, which requires
> get_page_addr_code_hostp() return both ram_addr_t and gpa
> * finalize the commit logs and documents
> 
Should I send the new revision with these changes, or you take a look
first then I address all of them together?

Thanks,
Fei.

> Thanks,
> Fei.
> 
>>
>> Alex Bennée (1):
>>   tb-stats: reset the tracked TBs on a tb_flush
>>
>> Fei Wu (5):
>>   accel/tcg: remove CONFIG_PROFILER
>>   accel/tcg: add jit stats to TBStatistics
>>   debug: add -d tb_stats to control TBStatistics
>>   tb-stats: dump hot TBs at the end of the execution
>>   docs: add tb-stats how to
>>
>> Vanderson M. do Rosario (4):
>>   accel/tcg: introduce TBStatistics structure
>>   accel: collecting TB execution count
>>   monitor: adding tb_stats hmp command
>>   tb-stats: Adding info [tb-list|tb] commands to HMP (WIP)
>>
>>  MAINTAINERS                   |   1 +
>>  accel/tcg/cpu-exec.c          |   6 +
>>  accel/tcg/meson.build         |   1 +
>>  accel/tcg/monitor.c           | 184 +++++++++++++++--
>>  accel/tcg/tb-context.h        |   1 +
>>  accel/tcg/tb-hash.h           |   7 +
>>  accel/tcg/tb-maint.c          |  20 ++
>>  accel/tcg/tb-stats.c          | 365 ++++++++++++++++++++++++++++++++++
>>  accel/tcg/tcg-accel-ops.c     |  10 -
>>  accel/tcg/tcg-runtime.c       |   1 +
>>  accel/tcg/translate-all.c     | 110 ++++++----
>>  accel/tcg/translator.c        |  30 +++
>>  disas/disas.c                 |   2 +
>>  docs/devel/tcg-tbstats.rst    |  97 +++++++++
>>  hmp-commands-info.hx          |  31 +--
>>  hmp-commands.hx               |  16 ++
>>  include/exec/exec-all.h       |   3 +
>>  include/exec/gen-icount.h     |   1 +
>>  include/exec/tb-stats-dump.h  |  21 ++
>>  include/exec/tb-stats-flags.h |  29 +++
>>  include/exec/tb-stats.h       | 130 ++++++++++++
>>  include/monitor/hmp.h         |   3 +
>>  include/qemu/log.h            |   1 +
>>  include/qemu/timer.h          |   9 -
>>  include/tcg/tcg.h             |  26 +--
>>  linux-user/exit.c             |   2 +
>>  meson.build                   |   2 -
>>  meson_options.txt             |   2 -
>>  qapi/machine.json             |  18 --
>>  scripts/meson-buildoptions.sh |   3 -
>>  softmmu/runstate.c            |  11 +-
>>  stubs/meson.build             |   1 +
>>  stubs/tb-stats.c              |  36 ++++
>>  tcg/tcg.c                     | 237 +++-------------------
>>  tests/qtest/qmp-cmd-test.c    |   3 -
>>  util/log.c                    |  26 +++
>>  36 files changed, 1093 insertions(+), 353 deletions(-)
>>  create mode 100644 accel/tcg/tb-stats.c
>>  create mode 100644 docs/devel/tcg-tbstats.rst
>>  create mode 100644 include/exec/tb-stats-dump.h
>>  create mode 100644 include/exec/tb-stats-flags.h
>>  create mode 100644 include/exec/tb-stats.h
>>  create mode 100644 stubs/tb-stats.c
>>
>