From: Ingo M. <mi...@el...> - 2003-12-17 21:41:46
|
the simple patch below fixes 2.6.0-test11+uml-patch-2.6.0-test9-1 compilation if TT mode is disabled. Ingo --- linux/arch/um/sys-i386/semaphore.c.orig +++ linux/arch/um/sys-i386/semaphore.c @@ -14,6 +14,7 @@ */ #include <linux/config.h> #include <linux/sched.h> +#include <linux/errno.h> #include <asm/semaphore.h> /* |
From: Ingo M. <mi...@el...> - 2003-12-17 21:55:46
|
the attached .config produces an UML binary that segfaults much the same way as before the ALIGN fixes. The thing that seems to cause it is the CONFIG_STATIC_LINK=y option. The kernel is 2.6.0-test11 + uml-patch-2.6.0-test9-1 + align_fix. Program received signal SIGSEGV, Segmentation fault. 0xa0174578 in _dl_non_dynamic_init () (gdb) bt #0 0xa0174578 in _dl_non_dynamic_init () #1 0xa0174746 in __libc_init_first () #2 0xa0164a1d in __libc_start_main () Ingo # # Automatically generated make config: don't edit # CONFIG_USERMODE=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y # # UML-specific options # # CONFIG_MODE_TT is not set CONFIG_STATIC_LINK=y CONFIG_MODE_SKAS=y CONFIG_NET=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=y CONFIG_HOSTFS=y # CONFIG_HPPFS is not set CONFIG_MCONSOLE=y CONFIG_MAGIC_SYSRQ=y # CONFIG_HOST_2G_2G is not set # CONFIG_UML_SMP is not set # CONFIG_SMP is not set CONFIG_NEST_LEVEL=0 CONFIG_KERNEL_HALF_GIGS=1 # CONFIG_HIGHMEM is not set # CONFIG_PROC_MM is not set CONFIG_KERNEL_STACK_ORDER=2 # # Code maturity level options # CONFIG_EXPERIMENTAL=y # CONFIG_CLEAN_COMPILE is not set # CONFIG_STANDALONE is not set CONFIG_BROKEN=y CONFIG_BROKEN_ON_SMP=y # # General setup # CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_SYSCTL=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y # # Loadable module support # # CONFIG_MODULES is not set # # Generic Driver Options # # # Character Devices # CONFIG_STDIO_CONSOLE=y CONFIG_SSL=y CONFIG_FD_CHAN=y CONFIG_NULL_CHAN=y CONFIG_PORT_CHAN=y CONFIG_PTY_CHAN=y CONFIG_TTY_CHAN=y CONFIG_XTERM_CHAN=y CONFIG_CON_ZERO_CHAN="fd:0,fd:1" CONFIG_CON_CHAN="xterm" CONFIG_SSL_CHAN="pty" CONFIG_UNIX98_PTYS=y CONFIG_UNIX98_PTY_COUNT=256 # CONFIG_WATCHDOG is not set CONFIG_UML_SOUND=y CONFIG_SOUND=y CONFIG_HOSTAUDIO=y # # Block Devices # 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_NBD=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_INITRD=y # CONFIG_MMAPPER is not set CONFIG_NETDEVICES=y # # UML Network Devices # CONFIG_UML_NET=y CONFIG_UML_NET_ETHERTAP=y CONFIG_UML_NET_TUNTAP=y CONFIG_UML_NET_SLIP=y CONFIG_UML_NET_DAEMON=y CONFIG_UML_NET_MCAST=y # CONFIG_UML_NET_PCAP is not set CONFIG_UML_NET_SLIRP=y # # Networking support # # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y # CONFIG_NETLINK_DEV is not set CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set # CONFIG_INET_ECN 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_IPV6 is not set # CONFIG_DECNET is not set # CONFIG_BRIDGE is not set # CONFIG_NETFILTER is not set # # SCTP Configuration (EXPERIMENTAL) # CONFIG_IPV6_SCTP__=y # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set # CONFIG_VLAN_8021Q 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_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_FASTROUTE is not set # CONFIG_NET_HW_FLOWCONTROL is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set # # Network testing # # CONFIG_NET_PKTGEN is not set CONFIG_DUMMY=y # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=y # # Ethernet (10 or 100Mbit) # # CONFIG_NET_ETHERNET is not set # # Ethernet (1000 Mbit) # # # Ethernet (10000 Mbit) # CONFIG_PPP=y # CONFIG_PPP_MULTILINK is not set # CONFIG_PPP_FILTER is not set # CONFIG_PPP_ASYNC is not set # CONFIG_PPP_SYNC_TTY is not set # CONFIG_PPP_DEFLATE is not set # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPPOE is not set CONFIG_SLIP=y # CONFIG_SLIP_COMPRESSED is not set # CONFIG_SLIP_SMART is not set # CONFIG_SLIP_MODE_SLIP6 is not set # # Wireless LAN (non-hamradio) # # CONFIG_NET_RADIO is not set # # Token Ring devices # # CONFIG_SHAPER is not set # # Wan interfaces # # CONFIG_WAN is not set # # Amateur Radio support # # CONFIG_HAMRADIO is not set # # IrDA (infrared) support # # CONFIG_IRDA is not set # # Bluetooth support # # CONFIG_BT is not set # # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT3_FS is not set # CONFIG_JBD is not set CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_JFS_FS is not set # CONFIG_XFS_FS is not set CONFIG_MINIX_FS=y # CONFIG_ROMFS_FS is not set CONFIG_QUOTA=y # CONFIG_QFMT_V1 is not set # CONFIG_QFMT_V2 is not set CONFIG_QUOTACTL=y CONFIG_AUTOFS_FS=y CONFIG_AUTOFS4_FS=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set # CONFIG_ZISOFS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_DEVFS_FS=y CONFIG_DEVFS_MOUNT=y # CONFIG_DEVFS_DEBUG is not set CONFIG_DEVPTS_FS=y # CONFIG_DEVPTS_FS_XATTR is not set # CONFIG_TMPFS is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_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_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # # Network File Systems # # CONFIG_NFS_FS is not set # CONFIG_NFSD is not set # CONFIG_EXPORTFS 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_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y CONFIG_NLS=y # # Native Language Support # CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_UTF8 is not set # # Security options # # CONFIG_SECURITY is not set # # Cryptographic options # # CONFIG_CRYPTO is not set # # Library routines # # CONFIG_CRC32 is not set # # SCSI support # # CONFIG_SCSI is not set # # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # # Memory Technology Devices (MTD) # # CONFIG_MTD is not set # # Kernel hacking # # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_INFO is not set |
From: Jeff D. <jd...@ad...> - 2003-12-18 01:30:48
|
mi...@el... said: > the attached .config produces an UML binary that segfaults much the > same way as before the ALIGN fixes. HAHAHA, there is justice in this world :-) This one is your fault, I think. See this patch and see if it fixes the problem: http://marc.theaimsgroup.com/?l=user-mode-linux-devel&m=106867347801038&w=2 Jeff |
From: M A Y. <m.a...@du...> - 2003-12-18 09:31:24
|
On Wed, 17 Dec 2003, Jeff Dike wrote: > mi...@el... said: > > the attached .config produces an UML binary that segfaults much the > > same way as before the ALIGN fixes. > > HAHAHA, there is justice in this world :-) > > This one is your fault, I think. > > See this patch and see if it fixes the problem: > http://marc.theaimsgroup.com/?l=user-mode-linux-devel&m=106867347801038&w=2 Though that isn't a complete solution, as the same issue causes a random amount less memory, averaging about 16M, to be allocated to the UML process, potentially causing out of memory problems, including a failure to boot at all. For some other bugs you might see in FC1, see http://toast.debian.net/~may/umlproject/bugs.html Michael Young |
From: Ingo M. <mi...@el...> - 2003-12-18 09:43:41
|
On Wed, 17 Dec 2003, Jeff Dike wrote: > > the attached .config produces an UML binary that segfaults much the > > same way as before the ALIGN fixes. > > HAHAHA, there is justice in this world :-) > > This one is your fault, I think. i might be at fault for the FC1 problems :-) [*], but this one doesnt seem to be my doing: $ uname -a Linux asia 2.6.0-test11 #1 Wed Dec 17 21:52:45 CET 2003 i686 i686 i386 $ ./linux Segmentation fault i tried various other, non-Fedora kernels too, and it segfaults everywhere. Ingo [*] wrt. FC1, running "i386 ./linux" should solve all problems - no need to disable randomization. (this command reverts to the stock VM layout.) Alternatively, the UML build process could strip out the PT_GNU_STACK ELF section - that triggers the 'stock layout' too. |
From: Ingo M. <mi...@el...> - 2003-12-18 10:28:48
|
the patch below (against the 2.4 host-skas patch) fixes a bug in the PTRACE_LDT logic: when modifying the LDT of another MM, the new LDT must not be loaded. Ingo --- linux/arch/i386/kernel/ldt.c.orig +++ linux/arch/i386/kernel/ldt.c @@ -104,7 +104,8 @@ static int write_ldt(struct task_struct wmb(); mm->context.segments = segments; mm->context.cpuvalid = 1UL << smp_processor_id(); - load_LDT(mm); + if (current->active_mm == mm) + load_LDT(mm); } lp = (__u32 *) ((ldt_info.entry_number << 3) + (char *) mm->context.segments); |
From: Ingo M. <mi...@el...> - 2003-12-18 11:23:28
Attachments:
uml-host-skas-2.6.0-A0
|
Jeff, i've ported host-skas support to the 2.6.0 kernel. (patch attached.) The patching order is: - create the 2.6.0 tree, - apply user-mode-linux.org/mirror/uml-patch-2.6.0-test9-1.bz2, - apply the attached uml-host-skas-2.6.0-A0 patch other changes: - cleaned up the LDT changes (pass around mm not task) - fixed LDT flush bug (similar to the 2.4.23 one) as an additional speedup, on 2.6.0 it's not necessary to copy the segments (LDTs) explicitly anymore, so the MM_COPY_SEGMENTS call is not needed. I've removed the code from UM architecture too, but kept a 0 return value for /proc/mm, so that older UML binaries keep working. i've tested the resulting host kernel and UML kernel as well, works as expected. (Ran some LDT testcode too - that works fine as well.) Ingo |
From: Ingo M. <mi...@el...> - 2003-12-18 11:57:09
|
the attached patch is necessary in addition to the previous ones, to get a unified 2.6.0 UML tree: both UML and the host-kernel can be compiled cleanly from the same tree. To 'replicate' an existing tree, i use the following method: cd linux-host make mrproper cd .. cp -rl linux-host linux-UML this creates a hard-linked clone of the kernel tree. Now the linux-host kernel and the linux-UML kernels can be configured & compiled independently. Any change to an existing source file in one tree will affect the other tree too. Ingo --- linux/arch/um/kernel/ptrace.c.orig +++ linux/arch/um/kernel/ptrace.c @@ -24,11 +24,6 @@ void ptrace_disable(struct task_struct * { } -extern long do_mmap2(struct task_struct *task, unsigned long addr, - unsigned long len, unsigned long prot, - unsigned long flags, unsigned long fd, - unsigned long pgoff); - int sys_ptrace(long request, long pid, long addr, long data) { struct task_struct *child; --- linux/arch/um/include/skas_ptrace.h.orig +++ linux/arch/um/include/skas_ptrace.h @@ -6,6 +6,10 @@ #ifndef __SKAS_PTRACE_H #define __SKAS_PTRACE_H + +#ifndef _LINUX_PTRACE_STRUCT_DEF +#define _LINUX_PTRACE_STRUCT_DEF + struct ptrace_faultinfo { int is_write; unsigned long addr; @@ -17,6 +21,8 @@ struct ptrace_ldt { unsigned long bytecount; }; +#endif + #define PTRACE_FAULTINFO 52 #define PTRACE_SIGPENDING 53 #define PTRACE_LDT 54 --- linux/include/linux/ptrace.h.orig +++ linux/include/linux/ptrace.h @@ -26,6 +26,10 @@ #define PTRACE_LDT 54 #define PTRACE_SWITCH_MM 55 + +#ifndef _LINUX_PTRACE_STRUCT_DEF +#define _LINUX_PTRACE_STRUCT_DEF + struct ptrace_faultinfo { int is_write; unsigned long addr; @@ -37,6 +41,8 @@ struct ptrace_ldt { unsigned long bytecount; }; +#endif + /* 0x4200-0x4300 are reserved for architecture-independent additions. */ #define PTRACE_SETOPTIONS 0x4200 #define PTRACE_GETEVENTMSG 0x4201 |
From: BlaisorBlade <bla...@ya...> - 2003-12-21 15:25:06
|
Alle 12:56, gioved=EC 18 dicembre 2003, Ingo Molnar ha scritto: > To 'replicate' an existing tree, i use the following method: > > cd linux-host > make mrproper > cd .. > cp -rl linux-host linux-UML > this creates a hard-linked clone of the kernel tree. Now the linux-host > kernel and the linux-UML kernels can be configured & compiled > independently. Since some time(a very little one) the build directory can be distinct from= =20 the source one; wouldn't this feature be fine for this purpose, with two=20 different build dirs? > Any change to an existing source file in one tree will > affect the other tree too. =46or users(Ingo knows this, obviously): note that this is not true with pa= tch:=20 when you patch one tree, the other tree remains unpatched. This happens sin= ce=20 patch doesn't modify a file, but replaces it with another file(which is no= =20 more an hard link) containing the new version. Bye =2D-=20 cat <<EOSIGN Paolo Giarrusso, aka Blaisorblade Linux Kernel 2.4.21/2.6.0-test on an i686; Linux registered user n. 292729 EOSIGN |
From: BlaisorBlade <bla...@ya...> - 2003-12-19 18:58:21
|
Alle 12:17, gioved=EC 18 dicembre 2003, Ingo Molnar ha scritto: > Jeff, > > i've ported host-skas support to the 2.6.0 kernel. (patch attached.) The > patching order is: > > - create the 2.6.0 tree, > - apply user-mode-linux.org/mirror/uml-patch-2.6.0-test9-1.bz2, > - apply the attached uml-host-skas-2.6.0-A0 patch > > other changes: > > - cleaned up the LDT changes (pass around mm not task) Some other ports of the SKAS3 patch to 2.6 did also this: rename the new=20 version of do_mmap_pgoff as __do_mmap_pgoff, and put this new definition in= =20 the header: static inline unsigned long do_mmap_pgoff(struct file * file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long pgoff) { __do_mmap_pgoff(current->mm, file, addr, len, prot, flags, pgoff); } so we avoid breaking compatibility for possible other patches/other code. Bye =2D-=20 cat <<EOSIGN Paolo Giarrusso, aka Blaisorblade Linux Kernel 2.4.21/2.6.0-test on an i686; Linux registered user n. 292729 EOSIGN |
From: BlaisorBlade <bla...@ya...> - 2003-12-19 19:23:20
|
Alle 11:27, gioved=EC 18 dicembre 2003, Ingo Molnar ha scritto: > the patch below (against the 2.4 host-skas patch) fixes a bug in the > PTRACE_LDT logic: when modifying the LDT of another MM, the new LDT must > not be loaded. A previous thread(just above this one) is about a SKAS-caused panic; would = you=20 check if it can be anyhow related to this bug, or try finding the problem? Bye =2D-=20 cat <<EOSIGN Paolo Giarrusso, aka Blaisorblade Linux Kernel 2.4.21/2.6.0-test on an i686; Linux registered user n. 292729 EOSIGN |
From: Ingo M. <mi...@el...> - 2003-12-18 12:16:26
|
for the lazy, i've distilled a combo patch that can be applied to a vanilla 2.6.0 kernel: redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A1 and will compile both as a working 2.6.0 UML kernel and as a working host-skas 2.6.0 kernel. Older UML kernels should work on this host-kernel too. WARNING: this is an experimental patch, UML kernels compiled with this patch wont work in skas mode on older host-skas patched kernels. TT mode should work on older kernels, and so should this UML kernel work on all non-host-skas-patched host kernels. (this patch consists of Jeff's uml-patch-2.6.0-test9-1 port, plus the host-skas fixes & compilation improvement patches.) Ingo |
From: Ingo M. <mi...@el...> - 2004-01-01 19:15:45
|
here's a new combo all-in-one UML patch against the vanilla 2.6.0 kernel: redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A7 i've merged the various fixes collected by Paolo, plus fixed a bug in the __do_mmap_pgoff() change that caused host kernel bootup hangs. The usual disclaimers wrt. devel patches apply. Ingo |
From: Ingo M. <mi...@el...> - 2003-12-18 14:25:36
|
the attached patch makes the combo 2.6.0 patch compile for the !CONFIG_PROC_MM case. (necessary if forcing TT mode by disabling skas.) This is also a small cleanup as it moves the architecture-independent ptrace functions into the generic kernel/ptrace.c file. i've also uploaded a new combo patch with the alignment fix plus these changes included: redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 Ingo --- linux/arch/i386/kernel/ptrace.c.orig +++ linux/arch/i386/kernel/ptrace.c @@ -521,12 +521,6 @@ asmlinkage int sys_ptrace(long request, break; } - case PTRACE_SIGPENDING: - ret = copy_to_user((unsigned long *) data, - &child->pending.signal, - sizeof(child->pending.signal)); - break; - case PTRACE_LDT: { struct ptrace_ldt ldt; @@ -539,23 +533,6 @@ asmlinkage int sys_ptrace(long request, break; } - case PTRACE_SWITCH_MM: { - struct mm_struct *old = child->mm; - struct mm_struct *new = proc_mm_get_mm(data); - - if(IS_ERR(new)){ - ret = PTR_ERR(new); - break; - } - - atomic_inc(&new->mm_users); - child->mm = new; - child->active_mm = new; - mmput(old); - ret = 0; - break; - } - default: ret = ptrace_request(child, request, addr, data); break; --- linux/kernel/ptrace.c.orig +++ linux/kernel/ptrace.c @@ -316,6 +316,32 @@ int ptrace_request(struct task_struct *c case PTRACE_SETSIGINFO: ret = ptrace_setsiginfo(child, (siginfo_t __user *) data); break; + case PTRACE_SIGPENDING: + ret = copy_to_user((unsigned long *) data, + &child->pending.signal, + sizeof(child->pending.signal)); + break; + +#ifdef CONFIG_PROC_MM + case PTRACE_SWITCH_MM: + { + struct mm_struct *old = child->mm; + struct mm_struct *new = proc_mm_get_mm(data); + + if (IS_ERR(new)) { + ret = PTR_ERR(new); + break; + } + + atomic_inc(&new->mm_users); + child->mm = new; + child->active_mm = new; + mmput(old); + ret = 0; + break; + } +#endif + default: break; } |
From: roland <for...@gm...> - 2003-12-18 16:23:36
|
hi! i need the following additional patch (see below) to sucessfully compile uml on a suse9 box. another candidate for your patchset, ingo? (or should we blame gcc 3.1.1 ?) regards roland >with mode=tt the kernel runs. Then i tried another kernel from >kernels.usermodelinux.org: >linux-2.4.23-rc3-djc3-6um (nomods) >and: it works. >I talked to david and he said the kernel builds without problems >which is not the case on my host. I get this error: >bugs.c: In function `disable_lcall': >bugs.c:111: error: storage size of `ldt' isn't known >bugs.c:118: warning: implicit declaration of function `modify_ldt' >bugs.c:111: warning: unused variable `ldt' > >which is fixed with a patch from: >http://people.0x63.nu/~andersg/uml-minor-fixes.diff > >so, for now, i don't have more ideas to solve this Problem. If someone >of you has an idea or fix, please commit ;) ----- Original Message ----- From: "Ingo Molnar" <mi...@el...> To: "UML devel list" <use...@li...> Cc: "Jeff Dike" <jd...@ad...> Sent: Thursday, December 18, 2003 3:24 PM Subject: [uml-devel] [UML patch] fixes for !CONFIG_PROC_MM, 2.6.0 > > the attached patch makes the combo 2.6.0 patch compile for the > !CONFIG_PROC_MM case. (necessary if forcing TT mode by disabling skas.) > > This is also a small cleanup as it moves the architecture-independent > ptrace functions into the generic kernel/ptrace.c file. > > i've also uploaded a new combo patch with the alignment fix plus these > changes included: > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 > > Ingo > > --- linux/arch/i386/kernel/ptrace.c.orig > +++ linux/arch/i386/kernel/ptrace.c > @@ -521,12 +521,6 @@ asmlinkage int sys_ptrace(long request, > break; > } > > - case PTRACE_SIGPENDING: > - ret = copy_to_user((unsigned long *) data, > - &child->pending.signal, > - sizeof(child->pending.signal)); > - break; > - > case PTRACE_LDT: { > struct ptrace_ldt ldt; > > @@ -539,23 +533,6 @@ asmlinkage int sys_ptrace(long request, > break; > } > > - case PTRACE_SWITCH_MM: { > - struct mm_struct *old = child->mm; > - struct mm_struct *new = proc_mm_get_mm(data); > - > - if(IS_ERR(new)){ > - ret = PTR_ERR(new); > - break; > - } > - > - atomic_inc(&new->mm_users); > - child->mm = new; > - child->active_mm = new; > - mmput(old); > - ret = 0; > - break; > - } > - > default: > ret = ptrace_request(child, request, addr, data); > break; > --- linux/kernel/ptrace.c.orig > +++ linux/kernel/ptrace.c > @@ -316,6 +316,32 @@ int ptrace_request(struct task_struct *c > case PTRACE_SETSIGINFO: > ret = ptrace_setsiginfo(child, (siginfo_t __user *) data); > break; > + case PTRACE_SIGPENDING: > + ret = copy_to_user((unsigned long *) data, > + &child->pending.signal, > + sizeof(child->pending.signal)); > + break; > + > +#ifdef CONFIG_PROC_MM > + case PTRACE_SWITCH_MM: > + { > + struct mm_struct *old = child->mm; > + struct mm_struct *new = proc_mm_get_mm(data); > + > + if (IS_ERR(new)) { > + ret = PTR_ERR(new); > + break; > + } > + > + atomic_inc(&new->mm_users); > + child->mm = new; > + child->active_mm = new; > + mmput(old); > + ret = 0; > + break; > + } > +#endif > + > default: > break; > } > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > User-mode-linux-devel mailing list > Use...@li... > https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel > |
From: Sven 'D. M. <sv...@da...> - 2003-12-18 18:53:08
|
roland wrote: > hi! > i need the following additional patch (see below) to sucessfully compile uml on a suse9 box. > another candidate for your patchset, ingo? > (or should we blame gcc 3.1.1 ?) did you get the kernel running? I was able to compile on 9.0 but the kernel immedially segfaults after mounting /dev (its like a deadlock loop where it segfaults endless). I copied the sourcetree to another box (8.1) and compiled it there, works. Even with newer gcc's etc. the uml runs just fine, only compiled on 9.0 doesn't work. |
From: roland <for...@gm...> - 2003-12-18 19:36:59
|
hi sven, do you use skas or tt mode? i use skas - and the kernel works for me. regards roland ----- Original Message ----- From: "Sven 'Darkman' Michels" <sv...@da...> To: "UML devel list" <use...@li...> Sent: Thursday, December 18, 2003 7:53 PM Subject: Re: [uml-devel] [UML patch] fixes for !CONFIG_PROC_MM, 2.6.0 > roland wrote: > > hi! > > i need the following additional patch (see below) to sucessfully compile uml on a suse9 box. > > another candidate for your patchset, ingo? > > (or should we blame gcc 3.1.1 ?) > > did you get the kernel running? I was able to compile on 9.0 but > the kernel immedially segfaults after mounting /dev (its like > a deadlock loop where it segfaults endless). I copied the > sourcetree to another box (8.1) and compiled it there, works. > Even with newer gcc's etc. the uml runs just fine, only compiled > on 9.0 doesn't work. > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > User-mode-linux-devel mailing list > Use...@li... > https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel > |
From: Jeff C. <jc...@fe...> - 2003-12-19 04:54:16
|
On Thu, 18 Dec 2003, Ingo Molnar wrote: > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 Can't compile. Got the following error ... my .config has these ... # CONFIG_MODE_TT is not set # CONFIG_STATIC_LINK is not set CONFIG_MODE_SKAS=y Also, Reiser4 patch linux-2.6.0-test9-reiser4.diff.gz can't be used with uml-combo-2.6.0-A2. Thanks, Jeff make -f scripts/Makefile.build obj=arch/um/util gcc -o arch/um/util/mk_task_user.o -c arch/um/util/mk_task_user.c CC arch/um/util/mk_task_kern.o In file included from include/asm/thread_info.h:13, from include/linux/thread_info.h:21, from include/linux/spinlock.h:12, from include/linux/capability.h:45, from include/linux/sched.h:7, from arch/um/util/mk_task_kern.c:1: include/asm/processor.h:66: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function) include/asm/processor.h:66: requested alignment is not a constant arch/um/util/mk_task_kern.c: In function `main': arch/um/util/mk_task_kern.c:13: structure has no member named `regs' make[1]: *** [arch/um/util/mk_task_kern.o] Error 1 make: *** [arch/um/util] Error 2 |
From: Ingo M. <mi...@el...> - 2003-12-19 08:23:49
|
On Fri, 19 Dec 2003, Jeff Chua wrote: > On Thu, 18 Dec 2003, Ingo Molnar wrote: > > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 > > Can't compile. Got the following error ... > make -f scripts/Makefile.build obj=arch/um/util > gcc -o arch/um/util/mk_task_user.o -c arch/um/util/mk_task_user.c > CC arch/um/util/mk_task_kern.o > In file included from include/asm/thread_info.h:13, > include/asm/processor.h:66: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here what does your include/asm link point to, isnt it asm-i386 by any chance? You need to do a 'make mrproper' when switching between architectures, otherwise stale stuff can be around. 'make clean' is not enough. Ingo |
From: BlaisorBlade <bla...@ya...> - 2003-12-24 17:34:26
|
Alle 05:35, venerd=EC 19 dicembre 2003, Jeff Chua ha scritto: > On Thu, 18 Dec 2003, Ingo Molnar wrote: > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 > > Can't compile. Got the following error ... This is known to be a problem with module support in 2.6. > include/asm/processor.h:66: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here > (not in a function) > include/asm/processor.h:66: requested alignment is not a constant > arch/um/util/mk_task_kern.c: In function `main': > arch/um/util/mk_task_kern.c:13: structure has no member named `regs' Onto plain -test9 patch(and even 2.6.0 kernel) or Ingo's combo, apply patch= es=20 number 1, 2 and 3 from here and disable CONFIG_MODVERSIONS if it's enabled: http://web.tiscali.it/no-redirect-tiscali/blaisorblade/linux/archives/UML/v= 1/index.html If you get any "unresolved symbol" message, post it here, so the appropriat= e,=20 straightforward fix(adding an EXPORT_SYMBOL(name_of_the_missing_symbol) in= =20 some .c file) will be included next time. Bye =2D-=20 cat <<EOSIGN Paolo Giarrusso, aka Blaisorblade Linux Kernel 2.4.21/2.6.0-test on an i686; Linux registered user n. 292729 EOSIGN |
From: Jason L. <lu...@fa...> - 2003-12-19 19:20:32
|
mi...@el... said: > the attached patch makes the combo 2.6.0 patch compile for the > !CONFIG_PROC_MM case. (necessary if forcing TT mode by disabling skas.) > > This is also a small cleanup as it moves the architecture-independent > ptrace functions into the generic kernel/ptrace.c file. > > i've also uploaded a new combo patch with the alignment fix plus these > changes included: > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 OK, I've complied a 2.6.0 host with this (and only this) -A2 patch for an SMP pentium III. The host is running debian unstable. I also compiled a 2.4.23 uml kernel using uml-patch-2.4.22-7.bz2 and the small ELF_PLAT_INIT fix. Using a very simple root_fs (it basically only contains a busybox /bin/sh and a statically compiled /bin/zsh4), the uml boots and detects skas3 and /proc/mm on the host. The problem is that on every process fork, I see $Subject appear one or more times on the console, and subjectively the uml seems to be running a little slowly. Is this normal? Jason |
From: BlaisorBlade <bla...@ya...> - 2003-12-19 19:35:31
|
Alle 20:09, venerd=EC 19 dicembre 2003, Jason Lunz ha scritto: > The problem is that on every process fork, I see $Subject appear one or > more times on the console, and subjectively the uml seems to be running > a little slowly. Is this normal? No, it's a little bug from the host patch; to fix it, edit mm/proc_mm.c and= =20 find this code inside write_proc_mm function: /* Not necessary anymore - for compatibility only */ case MM_COPY_SEGMENTS: ret =3D 0; then replace the line "ret =3D 0; " with "ret =3D count;" =46or Ingo: it's a write() call, after all, so it must return the count of= =20 "written" bytes... see the line above the switch(). Bye =2D-=20 cat <<EOSIGN Paolo Giarrusso, aka Blaisorblade Linux Kernel 2.4.21/2.6.0-test on an i686; Linux registered user n. 292729 EOSIGN |
From: M A Y. <m.a...@du...> - 2003-12-19 09:20:21
|
On Thu, 18 Dec 2003, Ingo Molnar wrote: > the attached patch makes the combo 2.6.0 patch compile for the > !CONFIG_PROC_MM case. (necessary if forcing TT mode by disabling skas.) > > This is also a small cleanup as it moves the architecture-independent > ptrace functions into the generic kernel/ptrace.c file. > > i've also uploaded a new combo patch with the alignment fix plus these > changes included: > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 I have one minor complaint with this patch, you hardwire ARCH=um into the bottom level Makefile, which is fine in a pure uml patch, but horribly confusing if you are using it to build a host kernel. Also somewhat off topic, what package is the i386 command in which you suggest as an alternate way to switch off exec-shield? I can't find it on my system. Michael Young |
From: Ingo M. <mi...@el...> - 2003-12-19 09:47:49
|
On Fri, 19 Dec 2003, M A Young wrote: > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A2 > > I have one minor complaint with this patch, you hardwire ARCH=um into > the bottom level Makefile, which is fine in a pure uml patch, but > horribly confusing if you are using it to build a host kernel. oops, didnt mean to let this get into the patch. Fixed patch is at: redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A3 also, this patch does not have a number of fixes Jeff has in his tree. It's just a temporary thing for 2.6.0 users. Works for me, but YMMV. > Also somewhat off topic, what package is the i386 command in which you > suggest as an alternate way to switch off exec-shield? I can't find it > on my system. it's an alias to 'setarch'. I use the one at: ftp://ftp.rpmfind.net/linux/rawhide/1.0/i386/Fedora/RPMS/setarch-1.0-1.i386.rpm You are right, it's not installed by default - it's used by the amd64 distros mostly. Ingo |
From: M A Y. <m.a...@du...> - 2003-12-19 11:38:09
|
On Fri, 19 Dec 2003, Ingo Molnar wrote: > oops, didnt mean to let this get into the patch. Fixed patch is at: > > redhat.com/~mingo/UML-patches/uml-combo-2.6.0-A3 > > also, this patch does not have a number of fixes Jeff has in his tree. > It's just a temporary thing for 2.6.0 users. Works for me, but YMMV. I realize that but a combined patch is useful if you want to build both host and uml kernels from the same rpm. I was actually trying the host part with arjan's 1.103 kernel (with some extra patching to your patch) and it seemed to be working until I ran of of diskspace. Incidentally, I am not sure doing the same thing with the uml kernel will quite work as I seem to recall that uml doesn't build if the exec-shield patch is applied. Michael Young |