* UML woes in 2.6.24-rc6-mm1 @ 2008-01-02 17:53 Miklos Szeredi 2008-01-02 20:06 ` [uml-devel] " Jeff Dike 0 siblings, 1 reply; 7+ messages in thread From: Miklos Szeredi @ 2008-01-02 17:53 UTC (permalink / raw) To: jdike; +Cc: akpm, user-mode-linux-devel, linux-kernel The below patch was needed to make UML compile in latest -mm. But sometimes it doesn't boot and does weird things (this is a sample with init=/bin/bash): [ 0.420000] EXT3-fs: mounted filesystem with ordered data mode. [ 0.420000] VFS: Mounted root (ext3 filesystem) readonly. (none):/# ls (none):/# ls -al total 70 drwxr-xr-x 23 root root 1024 May 4 2007 . drwxr-xr-x 23 root root 1024 May 4 2007 .. drwxr-xr-x 2 root root 2048 Feb 18 2007 bin drwxr-xr-x 2 root root 1024 May 16 2005 boot [...] (none):/# ls Segmentation fault (none):/# ls -l : : No such file or directory Miklos ---- Index: linux/arch/um/Kconfig =================================================================== --- linux.orig/arch/um/Kconfig 2008-01-02 14:54:04.000000000 +0100 +++ linux/arch/um/Kconfig 2008-01-02 17:01:36.000000000 +0100 @@ -223,6 +223,10 @@ config KERNEL_STACK_ORDER endmenu +config HZ + int + default 100 + source "init/Kconfig" source "drivers/block/Kconfig" Index: linux/include/asm-um/param.h =================================================================== --- linux.orig/include/asm-um/param.h 2007-10-09 22:31:38.000000000 +0200 +++ linux/include/asm-um/param.h 2008-01-02 17:02:31.000000000 +0100 @@ -10,7 +10,7 @@ #define MAXHOSTNAMELEN 64 /* max length of hostname */ #ifdef __KERNEL__ -#define HZ 100 +#define HZ CONFIG_HZ #define USER_HZ 100 /* .. some user interfaces are in "ticks" */ #define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */ #endif ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-devel] UML woes in 2.6.24-rc6-mm1 2008-01-02 17:53 UML woes in 2.6.24-rc6-mm1 Miklos Szeredi @ 2008-01-02 20:06 ` Jeff Dike 2008-01-02 20:52 ` Miklos Szeredi 0 siblings, 1 reply; 7+ messages in thread From: Jeff Dike @ 2008-01-02 20:06 UTC (permalink / raw) To: Miklos Szeredi; +Cc: akpm, linux-kernel, user-mode-linux-devel On Wed, Jan 02, 2008 at 06:53:00PM +0100, Miklos Szeredi wrote: > The below patch was needed to make UML compile in latest -mm. ACK on that - I've got the same patch on its way. > But sometimes it doesn't boot and does weird things (this is a sample > with init=/bin/bash): > (none):/# ls > Segmentation fault > (none):/# ls -l > : : No such file or directory Huh. No problems here - I've got rc6-mm1 happily doing kernel builds. Is this 32 or 64-bit? Can you double-check that you have a clean pool and a clean build, etc? Jeff -- Work email - jdike at linux dot intel dot com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-devel] UML woes in 2.6.24-rc6-mm1 2008-01-02 20:06 ` [uml-devel] " Jeff Dike @ 2008-01-02 20:52 ` Miklos Szeredi 2008-01-02 22:05 ` Jeff Dike 0 siblings, 1 reply; 7+ messages in thread From: Miklos Szeredi @ 2008-01-02 20:52 UTC (permalink / raw) To: jdike; +Cc: akpm, linux-kernel, user-mode-linux-devel > On Wed, Jan 02, 2008 at 06:53:00PM +0100, Miklos Szeredi wrote: > > The below patch was needed to make UML compile in latest -mm. > > ACK on that - I've got the same patch on its way. > > > But sometimes it doesn't boot and does weird things (this is a sample > > with init=/bin/bash): > > > (none):/# ls > > Segmentation fault > > (none):/# ls -l > > : : No such file or directory > > Huh. No problems here - I've got rc6-mm1 happily doing kernel builds. > > Is this 32 or 64-bit? 32bit UML, 64bit host, config attached. > Can you double-check that you have a clean pool and a clean build, etc? Double checked with fresh build from pristine sources. Sometimes it boots normally, sometimes not, it's all rather strange. Can't reproduce with plain -rc6. Miklos # # Automatically generated make config: don't edit # Linux kernel version: 2.6.24-rc6-mm1 # Wed Jan 2 18:31:36 2008 # CONFIG_DEFCONFIG_LIST="arch/$ARCH/defconfig" CONFIG_GENERIC_HARDIRQS=y CONFIG_UML=y CONFIG_MMU=y CONFIG_NO_IOMEM=y # CONFIG_TRACE_IRQFLAGS_SUPPORT is not set CONFIG_LOCKDEP_SUPPORT=y # CONFIG_STACKTRACE_SUPPORT is not set CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_IRQ_RELEASE_METHOD=y # # UML-specific options # # CONFIG_STATIC_LINK is not set # # Host processor type and features # # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set # CONFIG_MPENTIUM4 is not set # CONFIG_MK6 is not set # CONFIG_MK7 is not set CONFIG_MK8=y # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_GENERIC_CPU is not set # CONFIG_X86_GENERIC is not set CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 CONFIG_X86_DEBUGCTLMSR=y CONFIG_UML_X86=y CONFIG_X86_32=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y # CONFIG_64BIT is not set CONFIG_SEMAPHORE_SLEEPERS=y # CONFIG_3_LEVEL_PGTABLES is not set CONFIG_ARCH_HAS_SC_SIGNALS=y CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_SUPPORTS_AOUT=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y # CONFIG_TICK_ONESHOT is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_LD_SCRIPT_DYN=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set CONFIG_HOSTFS=y # CONFIG_HPPFS is not set CONFIG_MCONSOLE=y CONFIG_MAGIC_SYSRQ=y # CONFIG_HIGHMEM is not set CONFIG_KERNEL_STACK_ORDER=3 CONFIG_HZ=100 # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=128 CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y # CONFIG_SYSVIPC is not set # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_CGROUPS is not set CONFIG_FAIR_GROUP_SCHED=y CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_BLK_DEV_INITRD is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y # CONFIG_EMBEDDED is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_PROC_PAGE_MONITOR=y # CONFIG_PROFILING is not set # CONFIG_MARKERS is not set # CONFIG_HAVE_OPROFILE is not set # CONFIG_HAVE_KPROBES is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_KMOD is not set CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set # CONFIG_BLK_DEV_BSG is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set # CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set CONFIG_DEFAULT_NOOP=y CONFIG_DEFAULT_IOSCHED="noop" CONFIG_CLASSIC_RCU=y # CONFIG_PREEMPT_RCU is not set CONFIG_BLK_DEV=y CONFIG_BLK_DEV_UBD=y # CONFIG_BLK_DEV_UBD_SYNC is not set CONFIG_BLK_DEV_COW_COMMON=y CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_ATA_OVER_ETH is not set # # Character Devices # CONFIG_STDERR_CONSOLE=y CONFIG_STDIO_CONSOLE=y # CONFIG_SSL is not set # CONFIG_NULL_CHAN is not set # CONFIG_PORT_CHAN is not set # CONFIG_PTY_CHAN is not set # CONFIG_TTY_CHAN is not set CONFIG_XTERM_CHAN=y CONFIG_NOCONFIG_CHAN=y CONFIG_CON_ZERO_CHAN="fd:0,fd:1" CONFIG_CON_CHAN="xterm" CONFIG_SSL_CHAN="pty" CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set # CONFIG_RAW_DRIVER is not set # CONFIG_WATCHDOG is not set # CONFIG_UML_SOUND is not set # CONFIG_SOUND is not set # CONFIG_HOSTAUDIO is not set # CONFIG_HW_RANDOM is not set # CONFIG_UML_RANDOM is not set # CONFIG_MMAPPER is not set # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER is not set # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # # Networking # CONFIG_NET=y # # Networking options # # CONFIG_PACKET is not set CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y # CONFIG_INET_LRO is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set # CONFIG_NETFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_SCHED is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # # Wireless # # CONFIG_CFG80211 is not set # CONFIG_WIRELESS_EXT is not set # CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # # UML Network Devices # CONFIG_UML_NET=y # CONFIG_UML_NET_ETHERTAP is not set CONFIG_UML_NET_TUNTAP=y # CONFIG_UML_NET_SLIP is not set # CONFIG_UML_NET_DAEMON is not set # CONFIG_UML_NET_VDE is not set # CONFIG_UML_NET_MCAST is not set # CONFIG_UML_NET_PCAP is not set # CONFIG_UML_NET_SLIRP is not set # CONFIG_NETDEVICES is not set # CONFIG_CONNECTOR is not set # # File systems # CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y CONFIG_EXT2_FS_XIP=y CONFIG_FS_XIP=y CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y # CONFIG_EXT4DEV_FS is not set CONFIG_JBD=y CONFIG_FS_MBCACHE=y # CONFIG_REISER4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set CONFIG_FUSE_FS=y # # CD-ROM/DVD Filesystems # # CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # # CONFIG_MSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set # # Layered filesystems # # CONFIG_UNION_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y # CONFIG_NFS_FS is not set # CONFIG_NFSD is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y # CONFIG_NLS is not set # CONFIG_DLM is not set # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set # CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_CRYPTO is not set # # Library routines # # CONFIG_CRC_CCITT is not set # CONFIG_CRC16 is not set # CONFIG_CRC_ITU_T is not set # CONFIG_CRC32 is not set # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set CONFIG_PLIST=y CONFIG_HAS_DMA=y # # SCSI device support # # CONFIG_RAID_ATTRS is not set # CONFIG_SCSI is not set # CONFIG_SCSI_DMA is not set # CONFIG_SCSI_NETLINK is not set # CONFIG_MD is not set # CONFIG_INPUT is not set # # Kernel hacking # CONFIG_PRINTK_TIME=y # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_PAGE_OWNER is not set # CONFIG_DEBUG_FS is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_SPINLOCK_SLEEP=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_INFO=y # CONFIG_DEBUG_VM is not set CONFIG_DEBUG_LIST=y # CONFIG_DEBUG_SG is not set CONFIG_FRAME_POINTER=y # CONFIG_PROFILE_LIKELY is not set CONFIG_FORCED_INLINING=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_DEBUG_SYNCHRO_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_SAMPLES is not set # CONFIG_GPROF is not set # CONFIG_GCOV is not set # CONFIG_DEBUG_STACK_USAGE is not set ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-devel] UML woes in 2.6.24-rc6-mm1 2008-01-02 20:52 ` Miklos Szeredi @ 2008-01-02 22:05 ` Jeff Dike 2008-01-03 12:55 ` Miklos Szeredi 0 siblings, 1 reply; 7+ messages in thread From: Jeff Dike @ 2008-01-02 22:05 UTC (permalink / raw) To: Miklos Szeredi; +Cc: akpm, linux-kernel, user-mode-linux-devel On Wed, Jan 02, 2008 at 09:52:41PM +0100, Miklos Szeredi wrote: > 32bit UML, 64bit host, config attached. Hadn't tried that, but that works here too. I'll see if your config reproduces it. > Can't reproduce with plain -rc6. Feel like bisecting -mm1? Jeff -- Work email - jdike at linux dot intel dot com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-devel] UML woes in 2.6.24-rc6-mm1 2008-01-02 22:05 ` Jeff Dike @ 2008-01-03 12:55 ` Miklos Szeredi 2008-01-04 18:00 ` Jeff Dike 0 siblings, 1 reply; 7+ messages in thread From: Miklos Szeredi @ 2008-01-03 12:55 UTC (permalink / raw) To: jdike; +Cc: akpm, linux-kernel, user-mode-linux-devel > > 32bit UML, 64bit host, config attached. > > Hadn't tried that, but that works here too. > > I'll see if your config reproduces it. > > > Can't reproduce with plain -rc6. > > Feel like bisecting -mm1? This is the one: uml-runtime-detection-of-host-vmsplit-on-i386.patch The relevant log line (both for successful and failed boots): Locating the top of the address space ... 0xffc00000 Miklos ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-devel] UML woes in 2.6.24-rc6-mm1 2008-01-03 12:55 ` Miklos Szeredi @ 2008-01-04 18:00 ` Jeff Dike 2008-01-04 19:53 ` Miklos Szeredi 0 siblings, 1 reply; 7+ messages in thread From: Jeff Dike @ 2008-01-04 18:00 UTC (permalink / raw) To: Miklos Szeredi; +Cc: akpm, linux-kernel, user-mode-linux-devel On Thu, Jan 03, 2008 at 01:55:57PM +0100, Miklos Szeredi wrote: > This is the one: uml-runtime-detection-of-host-vmsplit-on-i386.patch > > The relevant log line (both for successful and failed boots): > > Locating the top of the address space ... 0xffc00000 Thanks for narrowing it down. It turns out I can reproduce it with a defconfig, but it reproduces much more easily with your config for some reason. Anyhow, try the patch below. Jeff -- Work email - jdike at linux dot intel dot com Index: linux-2.6.22/arch/um/include/as-layout.h =================================================================== --- linux-2.6.22.orig/arch/um/include/as-layout.h 2008-01-01 17:32:04.000000000 -0500 +++ linux-2.6.22/arch/um/include/as-layout.h 2008-01-04 12:27:21.000000000 -0500 @@ -57,6 +57,8 @@ extern unsigned long _stext, _etext, _sd extern unsigned long _unprotected_end; extern unsigned long brk_start; +extern unsigned long host_task_size; + extern int linux_main(int argc, char **argv); extern void (*sig_info[])(int, struct uml_pt_regs *); Index: linux-2.6.22/arch/um/kernel/exec.c =================================================================== --- linux-2.6.22.orig/arch/um/kernel/exec.c 2008-01-04 12:12:32.000000000 -0500 +++ linux-2.6.22/arch/um/kernel/exec.c 2008-01-04 12:27:48.000000000 -0500 @@ -25,7 +25,7 @@ void flush_thread(void) ret = unmap(¤t->mm->context.id, 0, STUB_START, 0, &data); ret = ret || unmap(¤t->mm->context.id, STUB_END, - TASK_SIZE - STUB_END, 1, &data); + host_task_size - STUB_END, 1, &data); if (ret) { printk(KERN_ERR "flush_thread - clearing address space failed, " "err = %d\n", ret); Index: linux-2.6.22/arch/um/kernel/um_arch.c =================================================================== --- linux-2.6.22.orig/arch/um/kernel/um_arch.c 2008-01-04 12:11:33.000000000 -0500 +++ linux-2.6.22/arch/um/kernel/um_arch.c 2008-01-04 12:53:53.000000000 -0500 @@ -244,6 +244,8 @@ static struct notifier_block panic_exit_ unsigned long task_size; EXPORT_SYMBOL(task_size); +unsigned long host_task_size; + unsigned long brk_start; unsigned long end_iomem; EXPORT_SYMBOL(end_iomem); @@ -270,11 +272,12 @@ int __init linux_main(int argc, char **a if (have_root == 0) add_arg(DEFAULT_COMMAND_LINE); + host_task_size = os_get_task_size(); /* * TASK_SIZE needs to be PGDIR_SIZE aligned or else exit_mmap craps * out */ - task_size = os_get_task_size(PGDIR_SHIFT); + task_size = host_task_size & PGDIR_MASK; /* OS sanity checks that need to happen before the kernel runs */ os_early_checks(); Index: linux-2.6.22/arch/um/os-Linux/sys-i386/task_size.c =================================================================== --- linux-2.6.22.orig/arch/um/os-Linux/sys-i386/task_size.c 2008-01-01 17:32:04.000000000 -0500 +++ linux-2.6.22/arch/um/os-Linux/sys-i386/task_size.c 2008-01-04 12:56:20.000000000 -0500 @@ -49,7 +49,7 @@ static int page_ok(unsigned long page) ok = 1; goto out; } else if (mprotect(address, UM_KERN_PAGE_SIZE, - PROT_READ | PROT_WRITE) != 0) + PROT_READ | PROT_WRITE) != 0) goto out; if (setjmp(buf) == 0) { @@ -63,13 +63,20 @@ static int page_ok(unsigned long page) return ok; } -unsigned long os_get_task_size(int shift) +unsigned long os_get_task_size(void) { struct sigaction sa, old; - unsigned long bottom = 0 >> shift; - unsigned long top = ~0UL >> shift; + unsigned long bottom = 0; + /* + * A 32-bit UML on a 64-bit host gets confused about the VDSO at + * 0xffffe000. It is mapped, is readable, can be reprotected writeable + * and written. However, exec discovers later that it can't be + * unmapped. So, just set the highest address to be checked to just + * below it. This might waste some address space on 4G/4G 32-bit + * hosts, but shouldn't hurt otherwise. + */ + unsigned long top = 0xffffd000 >> UM_KERN_PAGE_SHIFT; unsigned long test; - int to_page = shift - UM_KERN_PAGE_SHIFT; printf("Locating the top of the address space ... "); fflush(stdout); @@ -83,18 +90,19 @@ unsigned long os_get_task_size(int shift sa.sa_flags = SA_NODEFER; sigaction(SIGSEGV, &sa, &old); - if (!page_ok(bottom << to_page)) { - fprintf(stderr, "Address 0x%x no good?\n", bottom << shift); + if (!page_ok(bottom)) { + fprintf(stderr, "Address 0x%x no good?\n", + bottom << UM_KERN_PAGE_SHIFT); exit(1); } /* This could happen with a 4G/4G split */ - if (page_ok(top << to_page)) + if (page_ok(top)) goto out; do { test = bottom + (top - bottom) / 2; - if (page_ok(test << to_page)) + if (page_ok(test)) bottom = test; else top = test; @@ -104,7 +112,9 @@ out: /* Restore the old SIGSEGV handling */ sigaction(SIGSEGV, &old, NULL); - printf("0x%x\n", top << shift); + top <<= UM_KERN_PAGE_SHIFT; + printf("0x%x\n", top); fflush(stdout); - return top << shift; + + return top; } Index: linux-2.6.22/arch/um/include/os.h =================================================================== --- linux-2.6.22.orig/arch/um/include/os.h 2008-01-04 12:55:38.000000000 -0500 +++ linux-2.6.22/arch/um/include/os.h 2008-01-04 12:55:48.000000000 -0500 @@ -299,6 +299,6 @@ extern int os_arch_prctl(int pid, int co extern int get_pty(void); /* sys-$ARCH/task_size.c */ -extern unsigned long os_get_task_size(int shift); +extern unsigned long os_get_task_size(void); #endif ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [uml-devel] UML woes in 2.6.24-rc6-mm1 2008-01-04 18:00 ` Jeff Dike @ 2008-01-04 19:53 ` Miklos Szeredi 0 siblings, 0 replies; 7+ messages in thread From: Miklos Szeredi @ 2008-01-04 19:53 UTC (permalink / raw) To: jdike; +Cc: akpm, linux-kernel, user-mode-linux-devel > > This is the one: uml-runtime-detection-of-host-vmsplit-on-i386.patch > > > > The relevant log line (both for successful and failed boots): > > > > Locating the top of the address space ... 0xffc00000 > > Thanks for narrowing it down. It turns out I can reproduce it with a > defconfig, but it reproduces much more easily with your config for > some reason. > > Anyhow, try the patch below. Thanks, works for me. Miklos ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-01-04 19:53 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-01-02 17:53 UML woes in 2.6.24-rc6-mm1 Miklos Szeredi 2008-01-02 20:06 ` [uml-devel] " Jeff Dike 2008-01-02 20:52 ` Miklos Szeredi 2008-01-02 22:05 ` Jeff Dike 2008-01-03 12:55 ` Miklos Szeredi 2008-01-04 18:00 ` Jeff Dike 2008-01-04 19:53 ` Miklos Szeredi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox