On 03/06/21 23:14, Jing Zhang wrote:
+#define DEFINE_VM_STATS_DESC(...) { \ + STATS_DESC_COUNTER("remote_tlb_flush"), \ + ## __VA_ARGS__ \ +} + +#define DEFINE_VCPU_STATS_DESC(...) { \ + STATS_DESC_COUNTER("halt_successful_poll"), \ + STATS_DESC_COUNTER("halt_attempted_poll"), \ + STATS_DESC_COUNTER("halt_poll_invalid"), \ + STATS_DESC_COUNTER("halt_wakeup"), \ + STATS_DESC_TIME_NSEC("halt_poll_success_ns"), \ + STATS_DESC_TIME_NSEC("halt_poll_fail_ns"), \ + ## __VA_ARGS__ \
Let's instead put this (note it's without braces) in macros like these #define KVM_GENERIC_VM_STATS() \ STATS_DESC_COUNTER("remote_tlb_flush"), #define KVM_GENERIC_VCPU_STATS(...) \ STATS_DESC_COUNTER("halt_successful_poll"), \ STATS_DESC_COUNTER("halt_attempted_poll"), \ STATS_DESC_COUNTER("halt_poll_invalid"), \ STATS_DESC_COUNTER("halt_wakeup"), \ STATS_DESC_TIME_NSEC("halt_poll_success_ns"), \ STATS_DESC_TIME_NSEC("halt_poll_fail_ns"), and it can be used in the arch files. In fact it can even be added in patch 1 and switched to STATS_DESC_* here. Paolo