!14 Automatically generate code patches with openeuler

From: @zhendongchen
Reviewed-by: @yorifang
Signed-off-by: @yorifang
This commit is contained in:
openeuler-ci-bot 2020-12-08 17:31:47 +08:00 committed by Gitee
commit 31f67fb95c
3 changed files with 185 additions and 1 deletions

View File

@ -0,0 +1,49 @@
From c1083be42e3ad71971193e025c95a866a6207e7f Mon Sep 17 00:00:00 2001
From: Jiajun Chen <1250062498@qq.com>
Date: Wed, 28 Oct 2020 16:38:12 +0800
Subject: [PATCH] display: modify filter display to support more display fields
items
If display fields items is more than screen rows, some of fields items
can't be displayed in screen.
So, start another col to show fields items if screen can't show all content in one col.
Signed-off-by: Jiajun Chen <1250062498@qq.com>
---
src/vmtop.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/vmtop.c b/src/vmtop.c
index 12b073d..501cea9 100644
--- a/src/vmtop.c
+++ b/src/vmtop.c
@@ -287,11 +287,24 @@ static void show_domains(struct domain_list *list)
*/
static void print_field(int high_light)
{
- int x = 3; /* display x local */
- int y = 4; /* display y local */
+ int x, y, x_local, y_local;
unsigned int attr_flag;
+ getyx(stdscr, y_local, x_local); /* get cursor coordinates */
+ y = y_local;
+ x = x_local + 3; /* leave 3 spaces in the beginning for beauty */
+
for (int i = 0; i < FD_END; i++) {
+ /*
+ * if y local is more than scr_row_size, fields list display will
+ * out of screen range. So start another col to show fields list
+ * with 20 intervals.
+ */
+ if (y >= scr_row_size) {
+ y = y_local;
+ x = x + 20;
+ }
+
attr_flag = A_NORMAL;
if (i == high_light) {
attr_flag |= A_REVERSE; /* high light chosen field */
--
2.23.0

View File

@ -0,0 +1,127 @@
From 9ce07679bec0796af03f79c28aae7fb178ff7fa2 Mon Sep 17 00:00:00 2001
From: Jiajun Chen <1250062498@qq.com>
Date: Wed, 28 Oct 2020 15:58:04 +0800
Subject: [PATCH] vcpu_stat: add remaining kvm exits items to display
Add remaining kvm exits items to display, include:
EXTerr, EXTukn, EXTcp153, EXTcp156, EXTcp14m,
EXTcp14l, EXTcp146, EXTsmc, EXTsve, EXTdbg, EXTfail
Set dafault width to 10 space, and set these items default hidden.
Signed-off-by: Jiajun Chen <1250062498@qq.com>
---
src/field.c | 49 ++++++++++++++++++++++++++++++-------------------
src/field.h | 11 +++++++++++
src/vmtop.c | 13 ++++++++++++-
3 files changed, 53 insertions(+), 20 deletions(-)
diff --git a/src/field.c b/src/field.c
index 1fc2fee..8793977 100644
--- a/src/field.c
+++ b/src/field.c
@@ -38,25 +38,36 @@ FID fields[] = {
#define GDF(f) (void *)GET_DELTA_NAME(f)
#define GF(f) (void *)GET_NAME(f)
/* name . flag . align */
- {"DID", FIELDS_DISPLAY, 5, NULL },
- {"VM/task-name", FIELDS_DISPLAY, 14, NULL },
- {"PID", FIELDS_DISPLAY, 8, NULL },
- {"%CPU", FIELDS_DISPLAY, 8, NULL },
- {"EXThvc", FIELDS_DISPLAY, 10, GDF(hvc_exit_stat) },
- {"EXTwfe", FIELDS_DISPLAY, 10, GDF(wfe_exit_stat) },
- {"EXTwfi", FIELDS_DISPLAY, 10, GDF(wfi_exit_stat) },
- {"EXTmmioU", FIELDS_DISPLAY, 10, GDF(mmio_exit_user) },
- {"EXTmmioK", FIELDS_DISPLAY, 10, GDF(mmio_exit_kernel) },
- {"EXTfp", FIELDS_DISPLAY, 10, GDF(fp_asimd_exit_stat)},
- {"EXTirq", FIELDS_DISPLAY, 10, GDF(irq_exit_stat) },
- {"EXTsys64", FIELDS_DISPLAY, 10, GDF(sys64_exit_stat) },
- {"EXTmabt", FIELDS_DISPLAY, 10, GDF(mabt_exit_stat) },
- {"EXTsum", FIELDS_DISPLAY, 10, GDF(exits) },
- {"S", FIELDS_DISPLAY, 5, GF(state) },
- {"P", FIELDS_DISPLAY, 5, GF(processor) },
- {"%ST", FIELDS_DISPLAY, 8, GDF(steal) },
- {"%GUE", FIELDS_DISPLAY, 8, GDF(gtime) },
- {"%HYP", FIELDS_DISPLAY, 8, NULL}
+ {"DID", FIELDS_DISPLAY, 5, NULL },
+ {"VM/task-name", FIELDS_DISPLAY, 14, NULL },
+ {"PID", FIELDS_DISPLAY, 8, NULL },
+ {"%CPU", FIELDS_DISPLAY, 8, NULL },
+ {"EXThvc", FIELDS_DISPLAY, 10, GDF(hvc_exit_stat) },
+ {"EXTwfe", FIELDS_DISPLAY, 10, GDF(wfe_exit_stat) },
+ {"EXTwfi", FIELDS_DISPLAY, 10, GDF(wfi_exit_stat) },
+ {"EXTmmioU", FIELDS_DISPLAY, 10, GDF(mmio_exit_user) },
+ {"EXTmmioK", FIELDS_DISPLAY, 10, GDF(mmio_exit_kernel) },
+ {"EXTfp", FIELDS_DISPLAY, 10, GDF(fp_asimd_exit_stat) },
+ {"EXTirq", FIELDS_DISPLAY, 10, GDF(irq_exit_stat) },
+ {"EXTsys64", FIELDS_DISPLAY, 10, GDF(sys64_exit_stat) },
+ {"EXTmabt", FIELDS_DISPLAY, 10, GDF(mabt_exit_stat) },
+ {"EXTsum", FIELDS_DISPLAY, 10, GDF(exits) },
+ {"EXTerr", FIELDS_HIDDEN, 10, GDF(internal_error_exit_stat)},
+ {"EXTukn", FIELDS_HIDDEN, 10, GDF(unknown_ec_exit_stat) },
+ {"EXTcp153", FIELDS_HIDDEN, 10, GDF(cp15_32_exit_stat) },
+ {"EXTcp156", FIELDS_HIDDEN, 10, GDF(cp15_64_exit_stat) },
+ {"EXT14m", FIELDS_HIDDEN, 10, GDF(cp14_mr_exit_stat) },
+ {"EXT14l", FIELDS_HIDDEN, 10, GDF(cp14_ls_exit_stat) },
+ {"EXT146", FIELDS_HIDDEN, 10, GDF(cp14_64_exit_stat) },
+ {"EXTsmc", FIELDS_HIDDEN, 10, GDF(smc_exit_stat) },
+ {"EXTsve", FIELDS_HIDDEN, 10, GDF(sve_exit_stat) },
+ {"EXTdbg", FIELDS_HIDDEN, 10, GDF(debug_exit_stat) },
+ {"EXTfail", FIELDS_HIDDEN, 10, GDF(fail_entry_exit_stat) },
+ {"S", FIELDS_DISPLAY, 5, GF(state) },
+ {"P", FIELDS_DISPLAY, 5, GF(processor) },
+ {"%ST", FIELDS_DISPLAY, 8, GDF(steal) },
+ {"%GUE", FIELDS_DISPLAY, 8, GDF(gtime) },
+ {"%HYP", FIELDS_DISPLAY, 8, NULL }
#undef GDF
};
diff --git a/src/field.h b/src/field.h
index 88808e7..1fc7182 100644
--- a/src/field.h
+++ b/src/field.h
@@ -31,6 +31,17 @@ enum fields_type {
FD_EXTSYS64,
FD_EXTMABT,
FD_EXTSUM,
+ FD_EXTERR,
+ FD_EXTUKN,
+ FD_EXTCP153,
+ FD_EXTCP156,
+ FD_EXTCP14M,
+ FD_EXTCP14L,
+ FD_EXTCP146,
+ FD_EXTSMC,
+ FD_EXTSVE,
+ FD_EXTDBG,
+ FD_EXTFAIL,
FD_STATE,
FD_P,
FD_ST,
diff --git a/src/vmtop.c b/src/vmtop.c
index 12b073d..d22ddfd 100644
--- a/src/vmtop.c
+++ b/src/vmtop.c
@@ -195,7 +195,18 @@ static void print_domain_field(struct domain *dom, int field)
case FD_EXTIRQ:
case FD_EXTSYS64:
case FD_EXTMABT:
- case FD_EXTSUM: {
+ case FD_EXTSUM:
+ case FD_EXTERR:
+ case FD_EXTUKN:
+ case FD_EXTCP153:
+ case FD_EXTCP156:
+ case FD_EXTCP14M:
+ case FD_EXTCP14L:
+ case FD_EXTCP146:
+ case FD_EXTSMC:
+ case FD_EXTSVE:
+ case FD_EXTDBG:
+ case FD_EXTFAIL: {
print_scr("%*llu", fields[i].align, *(u64 *)(*fields[i].get_fun)(dom));
break;
}
--
2.23.0

View File

@ -1,6 +1,6 @@
Name: vmtop
Version: 1.1
Release: 0
Release: 1
Summary: A tool for collecting and analyzing data of virtual machine
License: Mulan PSL V2
Group: Application/System
@ -17,6 +17,8 @@ Patch0006: vcpustat-modify-vcpu-info-acquirement-from-debugfs.patch
Patch0007: display-expand-CPU-display.patch
Patch0008: display-add-limit-to-usage-display.patch
Patch0009: vmtop-simplify-print_domain_field.patch
Patch0010: vcpu_stat-add-remaining-kvm-exits-items-to-display.patch
Patch0011: display-modify-filter-display-to-support-more-displa.patch
Requires: libvirt, ncurses
@ -57,6 +59,12 @@ install -m 550 vmtop ${RPM_BUILD_ROOT}/usr/bin/%{name}
%{_bindir}/vmtop
%changelog
* Wed Oct 28 2020 Huawei Technologies Co., Ltd <alex.chen@huawei.com>
- display: modify filter display to support more display fields items
* Wed Oct 28 2020 Huawei Technologies Co., Ltd <alex.chen@huawei.com>
- vcpu_stat: add remaining kvm exits items to display
* Sat Oct 10 2020 Jiajun Chen <1250062498@qq.com> -1.1-0
- spec: modify source url