Re: [Xen-devel] [RFC PATCH 4/7] build: convert frame_pointer to Kconfig

2016-05-02 Thread Jan Beulich
>>> On 02.05.16 at 17:25,  wrote:
> On Sun, May 01, 2016 at 11:10:43PM -0500, Doug Goldstein wrote:
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -15,6 +15,14 @@ config CRASH_DEBUG
>>If you want to be able to attach gdb to Xen to be able to debug
>>Xen if it crashes then say Y.
>>  
>> +config FRAME_POINTER
>> +bool "Compile Xen with frame pointers"
>> +default y
>> +---help---
>> +  If you say Y here the resulting Xen will be slightly larger and
>> +  maybe slower, but it gives very useful debugging information
> 
> The extra cost is:
> 
>  leaq  offs(%rsp),%rbp;
>  notq  %rbp   
> 
> On entry in hypervisor.

An higher register pressure.

> Perhaps just say two extra operations are added on every vmexit ?
> 
> Is there an use-case for _not_ having frame pointers?

Yes - having one more register available for the compiler to put
data in. That's why we build with frame pointers in debug mode
only by default.

Jan


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [RFC PATCH 4/7] build: convert frame_pointer to Kconfig

2016-05-02 Thread Konrad Rzeszutek Wilk
On Sun, May 01, 2016 at 11:10:43PM -0500, Doug Goldstein wrote:
> Converts the frame_pointer option to a Kconfig option.
> 
> Signed-off-by: Doug Goldstein 
> ---
> CC: Andrew Cooper 
> CC: George Dunlap 
> CC: Ian Jackson 
> CC: Jan Beulich 
> CC: Konrad Rzeszutek Wilk 
> CC: Stefano Stabellini 
> CC: Tim Deegan 
> CC: Wei Liu 
> ---
>  INSTALL   | 1 -
>  xen/Kconfig.debug | 8 
>  xen/Rules.mk  | 6 +-
>  3 files changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/INSTALL b/INSTALL
> index 35668bd..f55d42c 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -230,7 +230,6 @@ hypervisor build.
>  perfc=y
>  perfc_arrays=y
>  lock_profile=y
> -frame_pointer=y
>  lto=y
>  
>  During tools build external repos will be cloned into the source tree.
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index 94a6381..0b2ec50 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -15,6 +15,14 @@ config CRASH_DEBUG
> If you want to be able to attach gdb to Xen to be able to debug
> Xen if it crashes then say Y.
>  
> +config FRAME_POINTER
> + bool "Compile Xen with frame pointers"
> + default y
> + ---help---
> +   If you say Y here the resulting Xen will be slightly larger and
> +   maybe slower, but it gives very useful debugging information

The extra cost is:

 leaq  offs(%rsp),%rbp;
 notq  %rbp   

On entry in hypervisor.

Perhaps just say two extra operations are added on every vmexit ?

Is there an use-case for _not_ having frame pointers?


> +   in case of any Xen bugs.
> +
>  config VERBOSE_DEBUG
>   bool "Verbose debug messages"
>   default y
> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index b159451..84b9d81 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -6,7 +6,6 @@
>  perfc ?= n
>  perfc_arrays  ?= n
>  lock_profile  ?= n
> -frame_pointer ?= n
>  lto   ?= n
>  
>  -include $(BASEDIR)/include/config/auto.conf
> @@ -15,9 +14,6 @@ include $(XEN_ROOT)/Config.mk
>  
>  # Hardcoded configuration implications and dependencies.
>  # Do this is a neater way if it becomes unwieldy.
> -ifeq ($(debug),y)
> -frame_pointer := y
> -endif
>  ifeq ($(perfc_arrays),y)
>  perfc := y
>  endif
> @@ -58,7 +54,7 @@ endif
>  CFLAGS-$(perfc) += -DPERF_COUNTERS
>  CFLAGS-$(perfc_arrays)  += -DPERF_ARRAYS
>  CFLAGS-$(lock_profile)  += -DLOCK_PROFILE
> -CFLAGS-$(frame_pointer) += -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER
> +CFLAGS-$(CONFIG_FRAME_POINTER) += -fno-omit-frame-pointer
>  
>  ifneq ($(max_phys_irqs),)
>  CFLAGS-y+= -DMAX_PHYS_IRQS=$(max_phys_irqs)
> -- 
> 2.7.3
> 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[Xen-devel] [RFC PATCH 4/7] build: convert frame_pointer to Kconfig

2016-05-01 Thread Doug Goldstein
Converts the frame_pointer option to a Kconfig option.

Signed-off-by: Doug Goldstein 
---
CC: Andrew Cooper 
CC: George Dunlap 
CC: Ian Jackson 
CC: Jan Beulich 
CC: Konrad Rzeszutek Wilk 
CC: Stefano Stabellini 
CC: Tim Deegan 
CC: Wei Liu 
---
 INSTALL   | 1 -
 xen/Kconfig.debug | 8 
 xen/Rules.mk  | 6 +-
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/INSTALL b/INSTALL
index 35668bd..f55d42c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -230,7 +230,6 @@ hypervisor build.
 perfc=y
 perfc_arrays=y
 lock_profile=y
-frame_pointer=y
 lto=y
 
 During tools build external repos will be cloned into the source tree.
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index 94a6381..0b2ec50 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -15,6 +15,14 @@ config CRASH_DEBUG
  If you want to be able to attach gdb to Xen to be able to debug
  Xen if it crashes then say Y.
 
+config FRAME_POINTER
+   bool "Compile Xen with frame pointers"
+   default y
+   ---help---
+ If you say Y here the resulting Xen will be slightly larger and
+ maybe slower, but it gives very useful debugging information
+ in case of any Xen bugs.
+
 config VERBOSE_DEBUG
bool "Verbose debug messages"
default y
diff --git a/xen/Rules.mk b/xen/Rules.mk
index b159451..84b9d81 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -6,7 +6,6 @@
 perfc ?= n
 perfc_arrays  ?= n
 lock_profile  ?= n
-frame_pointer ?= n
 lto   ?= n
 
 -include $(BASEDIR)/include/config/auto.conf
@@ -15,9 +14,6 @@ include $(XEN_ROOT)/Config.mk
 
 # Hardcoded configuration implications and dependencies.
 # Do this is a neater way if it becomes unwieldy.
-ifeq ($(debug),y)
-frame_pointer := y
-endif
 ifeq ($(perfc_arrays),y)
 perfc := y
 endif
@@ -58,7 +54,7 @@ endif
 CFLAGS-$(perfc) += -DPERF_COUNTERS
 CFLAGS-$(perfc_arrays)  += -DPERF_ARRAYS
 CFLAGS-$(lock_profile)  += -DLOCK_PROFILE
-CFLAGS-$(frame_pointer) += -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER
+CFLAGS-$(CONFIG_FRAME_POINTER) += -fno-omit-frame-pointer
 
 ifneq ($(max_phys_irqs),)
 CFLAGS-y+= -DMAX_PHYS_IRQS=$(max_phys_irqs)
-- 
2.7.3


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel