Message ID | 87zjpf4w0j.fsf@rustcorp.com.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Nov 8, 2013 at 7:44 AM, Rusty Russell <rusty@rustcorp.com.au> wrote: > Axel Lin <axel.lin@ingics.com> writes: >> 2013/11/7 Ming Lei <tom.leiming@gmail.com>: >>> Hi, >>> >>> On Thu, Nov 7, 2013 at 10:47 AM, Axel Lin <axel.lin@ingics.com> wrote: >>>> >>>> hi Ming, >>>> Seems CONFIG_PAGE_OFFSET is not configurabe in "make menuconfig". >>>> And I found CONFIG_PAGE_OFFSET=0xC0000000 for all below configs... >>>> $ make at91_dt_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make ep93xx_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make imx_v4_v5_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make mxs_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make omap2plus_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make s3c6400_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make at91x40_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> ( at91x40_defconfig is also arm7tdmi ) >>> >>> Firstly it can be configured via VMSPLIT_3GVMSPLIT_2G/VMSPLIT_1G. >>> >>> Secondly, configurable or not isn't the point, and maybe some uclinux >>> platforms do not use CONFIG_PAGE_OFFSET at all, but they should >>> set it as a reasonable value or at least be below than the start link >>> address of vmlinux. >> >> Hi Ming, >> >> I found in arch/arm/include/asm/memory.h: >> CONFIG_PAGE_OFFSET is not used if !CONFIG_MMU. >> So looks like setting CONFIG_PAGE_OFFSET to other value still won't work. > > This seems like the simplest solution, but it may mean you still have > crap in /proc/kallsyms. > > Does it work for you? Yes, it should work, but I am wondering if perf can work on uClinux. Axel, could you post your .config? Thanks,
2013/11/8 Rusty Russell <rusty@rustcorp.com.au>: > Axel Lin <axel.lin@ingics.com> writes: >> 2013/11/7 Ming Lei <tom.leiming@gmail.com>: >>> Hi, >>> >>> On Thu, Nov 7, 2013 at 10:47 AM, Axel Lin <axel.lin@ingics.com> wrote: >>>> >>>> hi Ming, >>>> Seems CONFIG_PAGE_OFFSET is not configurabe in "make menuconfig". >>>> And I found CONFIG_PAGE_OFFSET=0xC0000000 for all below configs... >>>> $ make at91_dt_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make ep93xx_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make imx_v4_v5_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make mxs_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make omap2plus_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make s3c6400_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> $ make at91x40_defconfig; grep CONFIG_PAGE_OFFSET .config >>>> ( at91x40_defconfig is also arm7tdmi ) >>> >>> Firstly it can be configured via VMSPLIT_3GVMSPLIT_2G/VMSPLIT_1G. >>> >>> Secondly, configurable or not isn't the point, and maybe some uclinux >>> platforms do not use CONFIG_PAGE_OFFSET at all, but they should >>> set it as a reasonable value or at least be below than the start link >>> address of vmlinux. >> >> Hi Ming, >> >> I found in arch/arm/include/asm/memory.h: >> CONFIG_PAGE_OFFSET is not used if !CONFIG_MMU. >> So looks like setting CONFIG_PAGE_OFFSET to other value still won't work. > > This seems like the simplest solution, but it may mean you still have > crap in /proc/kallsyms. > > Does it work for you? Yes, it works. Thanks, Axel
>>> Hi Ming, >>> >>> I found in arch/arm/include/asm/memory.h: >>> CONFIG_PAGE_OFFSET is not used if !CONFIG_MMU. >>> So looks like setting CONFIG_PAGE_OFFSET to other value still won't work. >> >> This seems like the simplest solution, but it may mean you still have >> crap in /proc/kallsyms. >> >> Does it work for you? > > Yes, it should work, but I am wondering if perf can work on uClinux. > > Axel, could you post your .config? Hi Ming, I have patches on top of 3.12 to support gpl32700 SoC. So you cannot find this platform on mainline kernel. I havn't tried perf, below is my config for your reference: (to make the config smaller, I grep out disabled config entries.) # # Automatically generated file; DO NOT EDIT. # Linux/arm 3.12.0 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0x00000000 CONFIG_PHYS_OFFSET=0x00000000 CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y # # General setup # CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y CONFIG_DEFAULT_HOSTNAME="(none)" # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_KTIME_SCALAR=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y # # Timers subsystem # CONFIG_HZ_PERIODIC=y # # CPU/Task time and stats accounting # CONFIG_TICK_CPU_ACCOUNTING=y # # RCU Subsystem # CONFIG_TINY_RCU=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_BASE_FULL=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_EVENTFD=y CONFIG_AIO=y CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y # # Kernel Performance Events And Counters # CONFIG_COMPAT_BRK=y CONFIG_SLAB=y CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_REL=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y # # GCOV-based kernel profiling # CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_BASE_SMALL=0 CONFIG_BLOCK=y # # Partition Types # CONFIG_MSDOS_PARTITION=y CONFIG_EFI_PARTITION=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_DEFAULT_NOOP=y CONFIG_DEFAULT_IOSCHED="noop" CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # # System Type # CONFIG_ARCH_GPL327XX=y # # GPL327XX Implementations # CONFIG_ARCH_GPL32700=y # # Processor Type # CONFIG_CPU_ARM7TDMI=y CONFIG_CPU_32v4T=y CONFIG_CPU_ABRT_LV4T=y CONFIG_CPU_PABRT_LEGACY=y CONFIG_CPU_CACHE_V4=y # # Processor Features # CONFIG_TLS_REG_EMUL=y CONFIG_NEED_KUSER_HELPERS=y CONFIG_KUSER_HELPERS=y CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_NR_BANKS=8 CONFIG_MULTI_IRQ_HANDLER=y CONFIG_SET_MEM_PARAM=y CONFIG_DRAM_BASE=0x00000000 CONFIG_DRAM_SIZE=0x02000000 CONFIG_FLASH_MEM_BASE=0x20000000 CONFIG_FLASH_SIZE=0x00400000 CONFIG_PROCESSOR_ID=0x41807700 # # Bus support # # # Kernel Features # CONFIG_VMSPLIT_3G=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_ARCH_NR_GPIO=0 CONFIG_PREEMPT_NONE=y CONFIG_HZ_FIXED=0 CONFIG_HZ_100=y CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=999999 CONFIG_ZONE_DMA_FLAG=0 CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 CONFIG_NEED_PER_CPU_KM=y CONFIG_FORCE_MAX_ZONEORDER=11 # # Boot options # CONFIG_USE_OF=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="" CONFIG_AUTO_ZRELADDR=y # # CPU Power Management # # # CPU Idle # # # Floating point emulation # # # At least one emulation must be selected # # # Userspace binary formats # CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y CONFIG_BINFMT_SCRIPT=y CONFIG_BINFMT_FLAT=y CONFIG_COREDUMP=y # # Power management options # CONFIG_NET=y # # Networking options # CONFIG_XFRM=y CONFIG_INET=y CONFIG_NET_IP_TUNNEL=y CONFIG_INET_TUNNEL=y CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_IPV6=y CONFIG_INET6_XFRM_MODE_TRANSPORT=y CONFIG_INET6_XFRM_MODE_TUNNEL=y CONFIG_INET6_XFRM_MODE_BEET=y CONFIG_IPV6_SIT=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y # # Network testing # CONFIG_WIRELESS=y CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_DEFAULT_PS=y CONFIG_MAC80211=y CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_HAVE_BPF_JIT=y # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y # # Bus devices # CONFIG_MTD=y CONFIG_MTD_OF_PARTS=y # # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y # # RAM/ROM/Flash chip drivers # CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y CONFIG_MTD_RAM=y CONFIG_MTD_ROM=y # # Mapping drivers for chip access # # # Self-contained MTD device drivers # CONFIG_MTD_M25P80=y # # Disk-On-Chip Device Drivers # # # LPDDR flash memory drivers # CONFIG_DTC=y CONFIG_OF=y # # Device Tree and Open Firmware support # CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MTD=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 # # Misc devices # # # EEPROM support # # # Texas Instruments shared transport line discipline # # # Altera FPGA firmware download module # # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_NETDEVICES=y CONFIG_NET_CORE=y # # CAIF transport drivers # # # Distributed Switch Architecture drivers # CONFIG_WLAN=y # # Enable WiMAX (Networking options) to see the WiMAX drivers # # # Input device support # CONFIG_INPUT=y # # Userland interfaces # # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_SERPORT=y CONFIG_SERIO_LIBPS2=y # # Character devices # CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # # Serial drivers # # # Non-8250 serial port support # CONFIG_SERIAL_GPL327XX=y CONFIG_SERIAL_GPL327XX_UART_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SPI=y CONFIG_SPI_MASTER=y # # SPI Master Controller Drivers # CONFIG_SPI_GPL327XX=y # # SPI Protocol Masters # # # PPS support # # # PPS generators support # # # PTP clock support # # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # CONFIG_PINCTRL=y # # Pin controllers # CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y CONFIG_PINCTRL_GPL327XX=y CONFIG_PINCTRL_GPL32700=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIO_DEVRES=y CONFIG_GPIOLIB=y CONFIG_OF_GPIO=y # # Memory mapped GPIO drivers: # # # I2C GPIO expanders: # # # PCI GPIO expanders: # # # SPI GPIO expanders: # # # AC97 GPIO expanders: # # # LPC GPIO expanders: # # # MODULbus GPIO expanders: # # # USB GPIO expanders: # CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # # # Multifunction device drivers # CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y # # Graphics support # # # Console display driver support # CONFIG_DUMMY_CONSOLE=y # # HID support # CONFIG_HID=y CONFIG_HID_GENERIC=y # # Special HID drivers # CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_MMC=y CONFIG_MMC_DEBUG=y # # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y # # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_GPL327XX=y CONFIG_RTC_LIB=y CONFIG_DMADEVICES=y # # DMA Devices # CONFIG_DMA_OF=y # # Virtio drivers # # # Microsoft Hyper-V guest support # CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # # Common Clock Framework # # # Hardware Spinlock drivers # CONFIG_CLKSRC_OF=y CONFIG_CLKSRC_MMIO=y # # Remoteproc drivers # # # Rpmsg drivers # CONFIG_IRQCHIP=y # # File systems # CONFIG_EXT2_FS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_INOTIFY_USER=y # # Caches # # # CD-ROM/DVD Filesystems # # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_MISC_FILESYSTEMS=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=2 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y CONFIG_ROMFS_FS=y CONFIG_ROMFS_BACKED_BY_BLOCK=y CONFIG_ROMFS_ON_BLOCK=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y # # Kernel hacking # # # printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_FRAME_WARN=1024 CONFIG_DEBUG_KERNEL=y # # Memory Debugging # CONFIG_HAVE_DEBUG_KMEMLEAK=y # # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1 CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_ON_OOPS_VALUE=1 # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_DEBUG_BUGVERBOSE=y # # RCU Debugging # CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # # Runtime Testing # CONFIG_HAVE_ARCH_KGDB=y CONFIG_ARM_UNWIND=y CONFIG_DEBUG_USER=y CONFIG_DEBUG_LL=y CONFIG_DEBUG_GPL327XX_UART=y CONFIG_DEBUG_LL_INCLUDE="debug/gpl327xx.S" CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h" CONFIG_EARLY_PRINTK=y # # Security options # CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_WORKQUEUE=y # # Authenticated Encryption with Associated Data # # # Block modes # CONFIG_CRYPTO_CBC=y # # Hash modes # # # Digest # CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=y # # Ciphers # CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_DES=y # # Compression # CONFIG_CRYPTO_DEFLATE=y # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_CRYPTO_HW=y # # Library routines # CONFIG_BITREVERSE=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IO=y CONFIG_CRC32=y CONFIG_CRC32_SLICEBY8=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_DECOMPRESS_GZIP=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_AVERAGE=y
Hi Axel, On Fri, Nov 8, 2013 at 12:20 PM, Axel Lin <axel.lin@ingics.com> wrote: > > > Hi Ming, > > I have patches on top of 3.12 to support gpl32700 SoC. > So you cannot find this platform on mainline kernel. OK, I see. > I havn't tried perf, below is my config for your reference: > (to make the config smaller, I grep out disabled config entries.) I doubt CONFIG_VMSPLIT_3G/CONFIG_PAGE_OFFSET isn't used at all in your unmerged patchset, also your link script should be different with in-tree arch/arm/kernel/vmlinux.lds.S, otherwise you may put all your kernel symbols after 0xC00000000. Maybe you need to not define PAGE_OFFSET and let it be PHYS_OFFSET at default, also VMSPLIT_3G shouldn't have been there on non-MMU linux. Thanks,
Ming Lei <tom.leiming@gmail.com> writes: > Hi Axel, > > On Fri, Nov 8, 2013 at 12:20 PM, Axel Lin <axel.lin@ingics.com> wrote: >> >> >> Hi Ming, >> >> I have patches on top of 3.12 to support gpl32700 SoC. >> So you cannot find this platform on mainline kernel. > > OK, I see. > >> I havn't tried perf, below is my config for your reference: >> (to make the config smaller, I grep out disabled config entries.) > > I doubt CONFIG_VMSPLIT_3G/CONFIG_PAGE_OFFSET isn't > used at all in your unmerged patchset, also your link script should > be different with in-tree arch/arm/kernel/vmlinux.lds.S, otherwise > you may put all your kernel symbols after 0xC00000000. > > Maybe you need to not define PAGE_OFFSET and let it be > PHYS_OFFSET at default, also VMSPLIT_3G shouldn't have > been there on non-MMU linux. OK, unless there are other platforms which have this issue, I'll leave it with you to hold this patch for merge with your SoC. Cheers, Rusty.
2013/11/11 Rusty Russell <rusty@rustcorp.com.au>: > Ming Lei <tom.leiming@gmail.com> writes: >> Hi Axel, >> >> On Fri, Nov 8, 2013 at 12:20 PM, Axel Lin <axel.lin@ingics.com> wrote: >>> >>> >>> Hi Ming, >>> >>> I have patches on top of 3.12 to support gpl32700 SoC. >>> So you cannot find this platform on mainline kernel. >> >> OK, I see. >> >>> I havn't tried perf, below is my config for your reference: >>> (to make the config smaller, I grep out disabled config entries.) >> >> I doubt CONFIG_VMSPLIT_3G/CONFIG_PAGE_OFFSET isn't >> used at all in your unmerged patchset, also your link script should >> be different with in-tree arch/arm/kernel/vmlinux.lds.S, otherwise >> you may put all your kernel symbols after 0xC00000000. >> >> Maybe you need to not define PAGE_OFFSET and let it be >> PHYS_OFFSET at default, also VMSPLIT_3G shouldn't have >> been there on non-MMU linux. > > OK, unless there are other platforms which have this issue, I'll > leave it with you to hold this patch for merge with your SoC. Hi Rusty, I don't have other noMMU platform to test. But I think this issue impacts various !CONFIG_MMU platforms: We have CONFIG_PAGE_OFFSET=0xC0000000 in various default configs. For !CONFIG_MMU case, it just don't use the CONFIG_PAGE_OFFSET setting. So use CONFIG_PAGE_OFFSET to filter symbols looks wrong to me for all !CONFIG_MMU cases. Below is PAGE_OFFSET setting for !CONFIG_MMU case: (arch/arm/include/asm/memory.h) #ifndef PHYS_OFFSET #define PHYS_OFFSET UL(CONFIG_DRAM_BASE) #endif #ifndef END_MEM #define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE) #endif #ifndef PAGE_OFFSET #define PAGE_OFFSET (PHYS_OFFSET) #endif My patchs for gpl327xx SoC is still in very early stage. I think you should send your fix upstream because I think it impacts other noMMU platforms (for above reason). Thanks, Axel
Hi, On Mon, Nov 11, 2013 at 2:43 PM, Axel Lin <axel.lin@ingics.com> wrote: > 2013/11/11 Rusty Russell <rusty@rustcorp.com.au>: > > Hi Rusty, > > I don't have other noMMU platform to test. > But I think this issue impacts various !CONFIG_MMU platforms: > We have CONFIG_PAGE_OFFSET=0xC0000000 in various default configs. > For !CONFIG_MMU case, it just don't use the CONFIG_PAGE_OFFSET setting. > So use CONFIG_PAGE_OFFSET to filter symbols looks wrong to me for all > !CONFIG_MMU cases. > > Below is PAGE_OFFSET setting for !CONFIG_MMU case: > (arch/arm/include/asm/memory.h) > > #ifndef PHYS_OFFSET > #define PHYS_OFFSET UL(CONFIG_DRAM_BASE) > #endif > > #ifndef END_MEM > #define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE) > #endif > > #ifndef PAGE_OFFSET > #define PAGE_OFFSET (PHYS_OFFSET) > #endif > > My patchs for gpl327xx SoC is still in very early stage. > I think you should send your fix upstream because I think it impacts other > noMMU platforms (for above reason). I suggest to do it when we are clear behind the break. As I mentioned, no matter what PAGE_OFFSET is, if you link vmlinux from the address of PAGE_OFFSET(that is what arm's link script in tree does), the filter won't break anything. Thanks,
Hello, On Mon, Nov 11, 2013 at 02:43:28PM +0800, Axel Lin wrote: > 2013/11/11 Rusty Russell <rusty@rustcorp.com.au>: > > Ming Lei <tom.leiming@gmail.com> writes: > I don't have other noMMU platform to test. > But I think this issue impacts various !CONFIG_MMU platforms: > We have CONFIG_PAGE_OFFSET=0xC0000000 in various default configs. > For !CONFIG_MMU case, it just don't use the CONFIG_PAGE_OFFSET setting. > So use CONFIG_PAGE_OFFSET to filter symbols looks wrong to me for all > !CONFIG_MMU cases. I don't know what the original problem is, but for my Cortex-M3 machine (ie. !MMU) I also have CONFIG_PAGE_OFFSET=0xC0000000. Didn't see this resulting in any problems although the value looks bogus. (The range 0x90000000-0xdfffffff is reserved on my SoC. Trying to read from there with the debugger fails with a message "Could not read memory.") Best regards Uwe
2013/11/11 Ming Lei <tom.leiming@gmail.com>: > Hi, > > On Mon, Nov 11, 2013 at 2:43 PM, Axel Lin <axel.lin@ingics.com> wrote: >> 2013/11/11 Rusty Russell <rusty@rustcorp.com.au>: >> >> Hi Rusty, >> >> I don't have other noMMU platform to test. >> But I think this issue impacts various !CONFIG_MMU platforms: >> We have CONFIG_PAGE_OFFSET=0xC0000000 in various default configs. >> For !CONFIG_MMU case, it just don't use the CONFIG_PAGE_OFFSET setting. >> So use CONFIG_PAGE_OFFSET to filter symbols looks wrong to me for all >> !CONFIG_MMU cases. >> >> Below is PAGE_OFFSET setting for !CONFIG_MMU case: >> (arch/arm/include/asm/memory.h) >> >> #ifndef PHYS_OFFSET >> #define PHYS_OFFSET UL(CONFIG_DRAM_BASE) >> #endif >> >> #ifndef END_MEM >> #define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE) >> #endif >> >> #ifndef PAGE_OFFSET >> #define PAGE_OFFSET (PHYS_OFFSET) >> #endif >> >> My patchs for gpl327xx SoC is still in very early stage. >> I think you should send your fix upstream because I think it impacts other >> noMMU platforms (for above reason). > > I suggest to do it when we are clear behind the break. > > As I mentioned, no matter what PAGE_OFFSET is, if you link vmlinux > from the address of PAGE_OFFSET(that is what arm's link script in tree > does), the filter won't break anything. Hi Ming, commit f6537f2f "scripts/kallsyms: filter symbols not in kernel address space", uses CONFIG_PAGE_OFFSET as kernel_start_addr. However, for !CONFIG_MMU case we have : PAGE_OFFSET != CONFIG_PAGE_OFFSET. That is why I think the filter breaks !MMU platforms. Regards, Axel
Hi, On Mon, Nov 11, 2013 at 4:37 PM, Axel Lin <axel.lin@ingics.com> wrote: > 2013/11/11 Ming Lei <tom.leiming@gmail.com>: > > Hi Ming, > > commit f6537f2f "scripts/kallsyms: filter symbols not in kernel address space", > uses CONFIG_PAGE_OFFSET as kernel_start_addr. > However, for !CONFIG_MMU case we have : > PAGE_OFFSET != CONFIG_PAGE_OFFSET. Yes, it is the cause, and strictly speaking, commit f6537f2f is wrong, but triggered with bogus CONFIG_PAGE_OFFSET if !CONFIG_MMU. We can fix it either by Rusty's patch or removing the bogus CONFIG_PAGE_OFFSET for !CONFIG_MMU. Thanks,
Hi, On Mon, Nov 11, 2013 at 5:57 PM, Ming Lei <tom.leiming@gmail.com> wrote: > Hi, > > On Mon, Nov 11, 2013 at 4:37 PM, Axel Lin <axel.lin@ingics.com> wrote: >> 2013/11/11 Ming Lei <tom.leiming@gmail.com>: >> >> Hi Ming, >> >> commit f6537f2f "scripts/kallsyms: filter symbols not in kernel address space", >> uses CONFIG_PAGE_OFFSET as kernel_start_addr. >> However, for !CONFIG_MMU case we have : >> PAGE_OFFSET != CONFIG_PAGE_OFFSET. > > Yes, it is the cause, and strictly speaking, commit f6537f2f is wrong, > but triggered with bogus CONFIG_PAGE_OFFSET if !CONFIG_MMU. > > We can fix it either by Rusty's patch or removing the bogus > CONFIG_PAGE_OFFSET for !CONFIG_MMU. Rusty, maybe we need revert commit f6537f2f "scripts/kallsyms: filter symbols not in kernel address space", since CONFIG_PAGE_OFFSET may be bogus on !MMU or not defined on ARCHs(most of 64bit arch, no regression report because scripts/kallsyms may get zero kernel_start_addr) As I thought of, another way for fixing original problem is to define a RO global variable in kernel and set its value as PAGE_OFFSET, then let scripts/kallsyms use it as kernel start address, or do you other suggestions? Thanks,
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index 32b10f53d0b4..c3bd3efec4cc 100644 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -82,7 +82,9 @@ kallsyms() kallsymopt="${kallsymopt} --all-symbols" fi - kallsymopt="${kallsymopt} --page-offset=$CONFIG_PAGE_OFFSET" + if [ -n "${CONFIG_MMU}" ]; then + kallsymopt="${kallsymopt} --page-offset=$CONFIG_PAGE_OFFSET" + fi local aflags="${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \ ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS}"