On Tue, May 07, 2019 at 02:37:33PM +0800, Yi Wang wrote: > There are many functions invoke apic_debug(), which is defined > as a null function by default, and that's incovenient for debuging > lapic. > > This patch allows setting apic debug according to add a apic_dbg > parameter of kvm. > > Signed-off-by: Yi Wang <wang.yi59@xxxxxxxxxx> > --- > arch/x86/kvm/lapic.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > index 9bf70cf..4d8f10f 100644 > --- a/arch/x86/kvm/lapic.c > +++ b/arch/x86/kvm/lapic.c > @@ -54,8 +54,13 @@ > #define PRIu64 "u" > #define PRIo64 "o" > > +static int apic_dbg; s/int/bool to get this to compile. And module params of this nature should be tagged __read_mostly. > +module_param(apic_dbg, bool, 0644); > + > /* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */ > -#define apic_debug(fmt, arg...) do {} while (0) > +#define apic_debug(fmt, arg...) do { if (apic_dbg) \ > + printk(KERN_DEBUG fmt, ##arg); \ > +} while (0) I don't think we want to do this unless there is a very, very strong argument to do so. The reason debug messages like this are #ifdef'd out is because they add conditional branches all over the place and measurably increase the code size. E.g.: this patch would increase KVM's code footprint by 1100+ bytes: [Nr] Name Type Address Off Size ES Flg Lk Inf Al [ 2] .text PROGBITS 0000000000000000 000070 04c282 00 AX 0 0 16 vs. [ 2] .text PROGBITS 0000000000000000 000070 04c6d2 00 AX 0 0 16 > > /* 14 is the version for Xeon and Pentium 8.4.8*/ > #define APIC_VERSION (0x14UL | ((KVM_APIC_LVT_NUM - 1) << 16)) > -- > 1.8.3.1 >