On 7/28/20 11:56 AM, Philippe Mathieu-Daudé wrote: > On 7/28/20 11:53 AM, Peter Maydell wrote: >> On Tue, 28 Jul 2020 at 10:51, Philippe Mathieu-Daudé <phi...@redhat.com> >> wrote: >>> I'd rather uninline xen_enabled() but I'm not sure this has perf >>> penalties. Paolo is that OK to uninline it? > > I suppose no because it is in various hot paths: > > exec.c:588: if (xen_enabled() && memory_access_is_direct(mr, is_write)) { > exec.c:2243: if (xen_enabled()) { > exec.c:2326: if (xen_enabled()) { > exec.c:2478: } else if (xen_enabled()) { > exec.c:2525: } else if (xen_enabled()) { > exec.c:2576: if (xen_enabled() && block->host == NULL) { > exec.c:2609: if (xen_enabled() && block->host == NULL) { > exec.c:2657: if (xen_enabled()) { > exec.c:3625: if (xen_enabled()) { > exec.c:3717: if (xen_enabled()) { > include/exec/ram_addr.h:295: if (!mask && !xen_enabled()) { > >> >> Can we just follow the same working pattern we already have >> for kvm_enabled() etc ? > > This was the idea... I'll look at what I missed.
Apparently kvm_enabled() checks CONFIG_KVM_IS_POSSIBLE instead of CONFIG_KVM, I suppose to bypass this limitation (from osdep.h): 21 #ifdef NEED_CPU_H 22 # ifdef CONFIG_KVM 24 # define CONFIG_KVM_IS_POSSIBLE 25 # endif 26 #else 27 # define CONFIG_KVM_IS_POSSIBLE 28 #endif 29 30 #ifdef CONFIG_KVM_IS_POSSIBLE ... Paolo do you confirm this is the reason? I'll prepare a similar patch. > > Phil. >