Skip to contentSkip to conversation

no-omit-frame-pointer for sched.c in 2.4-i386

DISCUSSION J.A. Magallon 3 participants 3 messages Jun 3, 2003

lore
Share & tools
lore
#0 lore raw

Hi all...

Any body knows if this still applies:

kernel/Makefile

ifneq ($(CONFIG_IA64),y)
# According to Alan Modra <[email protected]>, the -fno-omit-frame-pointer is

# needed for x86 only.  Why this used to be enabled for all architectures is beyond
# me.  I suspect most platforms don't need this, but until we know that for sure
# I turn this off for IA-64 only.  Andreas Schwab says it's also needed on m68k
# to get a correct value for the wait-channel (WCHAN in ps). --davidm
CFLAGS_sched.o := $(PROFILING) -fno-omit-frame-pointer
endif
Signature · 4 lines
J.A. Magallon <[email protected]>      \                 Software is like sex:
werewolf.able.es                         \           It's better when it's free
Mandrake Linux release 9.2 (Cooker) for i586
Linux 2.4.21-rc6-jam1 (gcc 3.2.3 (Mandrake Linux 9.2 3.2.3-1mdk))
#1 lore raw
Quoted 6 lines · J.A. Magallon

Hi all...

Any body knows if this still applies:

kernel/Makefile

Quoted 8 lines

ifneq ($(CONFIG_IA64),y)
# According to Alan Modra <[email protected]>, the -fno-omit-frame-pointer is

# needed for x86 only.  Why this used to be enabled for all architectures is beyond
# me.  I suspect most platforms don't need this, but until we know that for sure
# I turn this off for IA-64 only.  Andreas Schwab says it's also needed on m68k
# to get a correct value for the wait-channel (WCHAN in ps). --davidm
CFLAGS_sched.o := $(PROFILING) -fno-omit-frame-pointer
endif

This comment is not accurate. It's also needed for ARM so that it can use the framepointer to walk up the frame pointer list to discovered where we called schedule from (excluding such stuff as the semaphore implementation.)

Actually, come to think of it, I suspect its buggy today anyway; GCC 3 has some interesting "features" in that -fno-omit-frame-pointer does not mean it will not omit it. Certainly on ARM, we need extra options to ensure that GCC outputs the frame in a parseable manner.

So yes, something _like_ this is needed. Maybe the right solution would be to do something like:

	CFLAGS_sched.o	:= $(EXTRA_CALLTRACE_FLAGS)

and architectures can define EXTRA_CALLTRACE_FLAGS appropriately.

Signature · 2 lines
Russell King ([email protected])                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html
#2 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Russell King

Russell> Maybe the right solution would be to do something like:

  Russell> CFLAGS_sched.o	:= $(EXTRA_CALLTRACE_FLAGS)

Russell> and architectures can define EXTRA_CALLTRACE_FLAGS appropriately.

That would work for me.

	--david