Hi, Adam.
Adam Lackorzynski 쓴 글:
Can you reproduce this? If you can please start with showpfexc=1 on the kernel command line. This will print you all pagefaults and exceptions the kernel itself is seeing. Additionally please build your kernel with debugging symbols enabled so that we can see where the EIPs are actually. Then, 10.02 isn't causing the page fault, it's some other thread. You'll see the thread number of this thread when running with showpfexc=1.
First, these are printed messages with showpfexc=1 ---------------------------------------------------------------------------------------------- l4lx | PF: 10.03: pfaddr = 210e0002 pc = 004fef5f (rw) l4lx | PF: 10.03: pfaddr = 005f8743 pc = 004e49ee (rw, T) l4lx | PF: 10.03: pfaddr = b04fe002 pc = a00ab110 (rw) l4lx | PF: 10.03: pfaddr = b04ff002 pc = a00ab110 (rw) l4lx | l4lx_thread_create: Created thread 10.08 (IRQ14) l4lx | PF: 10.03: pfaddr = b05fe002 pc = a00ab110 (rw) l4lx | PF: 10.03: pfaddr = b05ff002 pc = a00ab110 (rw) l4lx | l4lx_thread_create: Created thread 10.09 (IRQ15) l4lx | PF: 10.03: pfaddr = b06fe002 pc = a00ab110 (rw) l4lx | PF: 10.03: pfaddr = b06ff002 pc = a00ab110 (rw) l4lx | l4lx_thread_create: Created thread 10.0a (IRQ5) l4lx | PF: 10.04: pfaddr = 689c4112 pc = 00446f79 (rw) l4lx | L4RM: [PF] write at 0x689c4110, ip 00446f79, src 10.02 l4lx | [10.0] l4rm/lib/src/pagefault.c:78:__unknown_pf(): l4lx | unhandled page fault ---------------------------------------------------------------------------------------------- 10.02 is l4lx.main, 10.03 is l4lx.server and 10.04 is l4lx.timer.i0. PC 0x00446f79 is kmem_cache_free (in mm/slab.c). As I know, that function is called by only arch_setup_additional_pages (in kernel/arch-i386/sysenter.c) at the L4 architecture specific parts (arch/l4). I cannot build my fiasco kernel with debugging symbols. How can I do that? My kernel configuration is attached.
Regards, -- Jugwan Eom
# # Automatically generated, don't edit # # Generated on: ubuntu # At: Thu, 07 Dec 2006 12:39:07 +0000 # Linux version 2.6.17-10-generic (root@vernadsky) (gcc version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)) #2 SMP Fri Oct 13 18:45:35 UTC 2006 (Ubuntu 2.6.17-10.33-generic)
# # Main menu # CONFIG_EXPERIMENTAL=y
# # Target System Options #
# # Target Platform # CONFIG_PF_PC=y CONFIG_PF_UX=n CONFIG_PF_SA1100=n CONFIG_PF_XSCALE=n CONFIG_PF_ISG=n CONFIG_PF_INTEGRATOR=n CONFIG_PF_REALVIEW=n
# # Target CPU Family # CONFIG_IA32=y CONFIG_ARM=n CONFIG_AMD64=n
# # Target processor # CONFIG_IA32_486=n CONFIG_IA32_586=n CONFIG_IA32_686=n CONFIG_IA32_P2=n CONFIG_IA32_P3=n CONFIG_IA32_P4=y CONFIG_IA32_PM=n CONFIG_IA32_K6=n CONFIG_IA32_K7=n CONFIG_IA32_K8=n
CONFIG_REGPARM3=y CONFIG_WORKAROUND_AMD_FPU_LEAK=n
# # Kernel Options #
# # Kernel ABI Version # CONFIG_ABI_V2=y CONFIG_ABI_X0=n
# # ABI Extensions # CONFIG_DECEIT_BIT_DISABLES_SWITCH=y CONFIG_EXCEPTION_IPC=y CONFIG_HANDLE_SEGMENTS=y CONFIG_PL0_HACK=n CONFIG_TASK_CAPS=n
CONFIG_ASSEMBLER_IPC_SHORTCUT=n CONFIG_SMALL_SPACES=n CONFIG_CONTEXT_4K=n
# # Scheduling Timer # CONFIG_SCHED_PIT=n CONFIG_SCHED_RTC=n CONFIG_SCHED_APIC=y
CONFIG_SLOW_RTC=n CONFIG_ONE_SHOT=n CONFIG_SYNC_TSC=n CONFIG_FINE_GRAINED_CPUTIME=n CONFIG_IO_PROT=n CONFIG_UX_CON=n CONFIG_UX_NET=n
# # Kernel Debugging # CONFIG_INLINE=y CONFIG_NDEBUG=n CONFIG_PROFILE=n CONFIG_NO_FRAME_PTR=n CONFIG_STACK_DEPTH=n CONFIG_LIST_ALLOC_SANITY=n CONFIG_BEFORE_IRET_SANITY=n CONFIG_GSTABS=y CONFIG_POWERSAVE_GETCHAR=y CONFIG_SERIAL=y CONFIG_KDB=n CONFIG_JDB=y CONFIG_JDB_LOGGING=n CONFIG_JDB_ACCOUNTING=n CONFIG_JDB_MISC=n CONFIG_WATCHDOG=y
# # Runtime warning level # CONFIG_WARN_NONE=n CONFIG_WARN_ANY=y
# # Compiling and Building # CONFIG_CC="gcc-3.4" CONFIG_CXX="g++-3.4" CONFIG_HOST_CXX="g++-3.4" CONFIG_VERBOSE=n CONFIG_MAINTAINER_MODE=y
# # Derived symbols # CONFIG_BIT32=y CONFIG_XARCH="ia32" CONFIG_IA32_TARGET="Intel Pentium 4" CONFIG_WARN_LEVEL=2 CONFIG_BIT64=n CONFIG_PERF_CNT=y CONFIG_ABI="v2" # # That's all, folks!