mbox series

[0/5] KVM: x86: Clean up redundant macro definitions

Message ID 20210809093410.59304-1-likexu@tencent.com (mailing list archive)
Headers show
Series KVM: x86: Clean up redundant macro definitions | expand

Message

Like Xu Aug. 9, 2021, 9:34 a.m. UTC
In KVM/x86 code, there are macros with the same name that are
defined and used separately in the evolving code, and if the scope
of the code review is only on iterations of the patch set, it can be
difficult to spot these fragmented macros being defined repeatedly.

IMO, it's necessary to clean this up to improve the consistency and
readability of the code, and it also helps to avoid software defects
caused by inconsistencies in the scope of influence of macros.

Like Xu (5):
  KVM: x86: Clean up redundant mod_64(x, y) macro definition
  KVM: x86: Clean up redundant CC macro definition
  KVM: x86: Clean up redundant ROL16(val, n) macro definition
  KVM: x86: Clean up redundant __ex(x) macro definition
  KVM: x86: Clean up redundant pr_fmt(fmt) macro definition for svm

 arch/x86/include/asm/kvm_host.h | 2 ++
 arch/x86/kvm/i8254.c            | 6 ------
 arch/x86/kvm/lapic.c            | 6 ------
 arch/x86/kvm/svm/avic.c         | 2 --
 arch/x86/kvm/svm/nested.c       | 4 ----
 arch/x86/kvm/svm/sev.c          | 2 --
 arch/x86/kvm/svm/svm.c          | 4 ----
 arch/x86/kvm/svm/svm.h          | 3 +++
 arch/x86/kvm/vmx/evmcs.c        | 1 -
 arch/x86/kvm/vmx/evmcs.h        | 4 ----
 arch/x86/kvm/vmx/nested.c       | 2 --
 arch/x86/kvm/vmx/vmcs.h         | 2 ++
 arch/x86/kvm/vmx/vmcs12.c       | 1 -
 arch/x86/kvm/vmx/vmcs12.h       | 4 ----
 arch/x86/kvm/vmx/vmx_ops.h      | 2 --
 arch/x86/kvm/x86.h              | 8 ++++++++
 16 files changed, 15 insertions(+), 38 deletions(-)

Comments

Sean Christopherson Aug. 9, 2021, 3:08 p.m. UTC | #1
On Mon, Aug 09, 2021, Like Xu wrote:
> In KVM/x86 code, there are macros with the same name that are
> defined and used separately in the evolving code, and if the scope
> of the code review is only on iterations of the patch set, it can be
> difficult to spot these fragmented macros being defined repeatedly.
> 
> IMO, it's necessary to clean this up to improve the consistency and

Please use more specific shortlogs.  "Clean up" is too ambiguous, e.g. I would
expect it to mean "clean up the macro itself".

> readability of the code, and it also helps to avoid software defects
> caused by inconsistencies in the scope of influence of macros.
> 
> Like Xu (5):

>   KVM: x86: Clean up redundant mod_64(x, y) macro definition

Feels like we should find a home outside of KVM for mod_64(), it's a full generic
and straightforward macro.

>   KVM: x86: Clean up redundant CC macro definition

CC() should be kept where it is.  It should never be used outside of nested code
and is far too generic of a name to be exposed to the world at large.  It was
deliberately defined only in the nested.c files.

>   KVM: x86: Clean up redundant ROL16(val, n) macro definition

Moving ROL16 seems ok, though it scares me a bit that someone went through the
trouble of #undef'ing the macros.

>   KVM: x86: Clean up redundant __ex(x) macro definition

__ex() and __kvm_handle_fault_on_reboot() were supposed to have been removed.
The last two patches [8][9] of this series[*] got lost; I'll repost them as they
no longer apply cleanly.

>   KVM: x86: Clean up redundant pr_fmt(fmt) macro definition for svm

NAK, this breaks sev.c's formatting.  Arguably, nested.c and avic.c should use
more specific print messages, though that gets tricky with nested code as it's
not wholly contained in nested.c.