Message ID | 1462162246-32413-5-git-send-email-cardoe@cardoe.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 <cardoe@cardoe.com> > --- > CC: Andrew Cooper <andrew.cooper3@citrix.com> > CC: George Dunlap <George.Dunlap@eu.citrix.com> > CC: Ian Jackson <ian.jackson@eu.citrix.com> > CC: Jan Beulich <jbeulich@suse.com> > CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Tim Deegan <tim@xen.org> > CC: Wei Liu <wei.liu2@citrix.com> > --- > 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 >
>>> On 02.05.16 at 17:25, <konrad.wilk@oracle.com> 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
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)
Converts the frame_pointer option to a Kconfig option. Signed-off-by: Doug Goldstein <cardoe@cardoe.com> --- CC: Andrew Cooper <andrew.cooper3@citrix.com> CC: George Dunlap <George.Dunlap@eu.citrix.com> CC: Ian Jackson <ian.jackson@eu.citrix.com> CC: Jan Beulich <jbeulich@suse.com> CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> CC: Stefano Stabellini <sstabellini@kernel.org> CC: Tim Deegan <tim@xen.org> CC: Wei Liu <wei.liu2@citrix.com> --- INSTALL | 1 - xen/Kconfig.debug | 8 ++++++++ xen/Rules.mk | 6 +----- 3 files changed, 9 insertions(+), 6 deletions(-)