Hi Paolo, On Thu, Jun 10, 2021 at 11:23 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > 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 > I just remember that the reason I used braces is due to following error from checkpatch.pl: ERROR: Macros with complex values should be enclosed in parentheses So, just keep it as it is? Thanks, Jing