On Tue, 2022-09-20 at 09:57 -0700, David Matlack wrote: > On Thu, Sep 1, 2022 at 9:47 AM David Matlack <dmatlack@xxxxxxxxxx> wrote: > > On Tue, Aug 30, 2022 at 3:12 AM Huang, Kai <kai.huang@xxxxxxxxx> wrote: > > > On Fri, 2022-08-26 at 16:12 -0700, David Matlack wrote: > [...] > > > > +#else > > > > +/* TDP MMU is not supported on 32-bit KVM. */ > > > > +const bool tdp_mmu_enabled; > > > > +#endif > > > > + > > > > > > I am not sure by using 'const bool' the compile will always omit the function > > > call? I did some experiment on my 64-bit system and it seems if we don't use > > > any -O option then the generated code still does function call. > > > > > > How about just (if it works): > > > > > > #define tdp_mmu_enabled false > > > > I can give it a try. By the way, I wonder if the existing code > > compiles without -O. The existing code relies on a static inline > > function returning false on 32-bit KVM, which doesn't seem like it > > would be any easier for the compiler to optimize out than a const > > bool. But who knows. > > Actually, how did you compile without -O and is that a supported use-case? I just wrote a very simple userspace application and built it w/o using the -O (mostly out of curiosity) . Sorry I didn't check whether currently KVM uses -O to build or not. If needed, I can try to test in real KVM build and report back, but I need to do that later :) > > I tried both CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE (-O2) and > CONFIG_CC_OPTIMIZE_FOR_SIZE (-Os) and did not encounter any issues > building 32-bit KVM with this series. Yes both -O2 and -Os will optimize the 'const bool' out to omit the function call, if I recall correctly. In fact in my experience -O1 can also omit the function call, if I recall correctly. -- Thanks, -Kai