* [uml-devel] uml-patch-2.6.7-2
@ 2004-08-19 3:00 ` Jeff Dike
0 siblings, 0 replies; 24+ messages in thread
From: Jeff Dike @ 2004-08-19 3:00 UTC (permalink / raw)
To: linux-kernel, user-mode-linux-devel
I've released a second 2.6.7 UML patch. This is to push out the changes I
have in order to give me a clean slate for the 2.6.8.1 UML. These changes
sync up my 2.4 and 2.6 trees, and include
Build cleanups, including 'linux' is now the default target, an
updated defconfig, and Kconfig updates
Code cleanup, including removal of unused SMP code, removal of a
userspace file, more EINTR handling, more error checking
Time fixes, including switching from rdtsc to gettimeofday for the
real-time clock option and better handling of the host clock jumping backwards
Introduction of centralized file descriptor management, allowing
descriptors to be reclaimed if UML has hit the host's limit and the files
can be reopened to provide access to the same object on the host
Introduction of externfs, which allows host resources to be mounted
as UML filesystems. externfs handles the kernel interface and plug-ins to
it handle the host resources. There are two users, hostfs and humfs, both
of which provide access to host directory hierarchies. humfs stores metadata
separately, ala umsdos, which allows operations within the mount which would
require root privileges on the host with hostfs. hostfs and humfs are still
somewhat dodgy on 2.6.
UML can load at 0x8048000 like every other binary when MODE_SKAS
is enabled and MODE_TT is off. This makes valgrind happier, and also
allows UML to have more physical memory without resorting to highmem. With
STATIC_LINK disabled, the limit is ~750M, and with it enabled, the limit is
~2.75G.
A good number of bugs, including some crashes were also fixed.
For the full details, see
http://user-mode-linux.sourceforge.net/changelog-uml-patch-2.6.7-2.bz2.html
For the other UML mirrors and other downloads, see
http://user-mode-linux.sourceforge.net/dl-sf.html
Incremental patches between UML releases are available at
http://user-mode-linux.sourceforge.net/patches.html
Other links of interest:
The UML project home page : http://user-mode-linux.sourceforge.net
The UML Community site : http://usermodelinux.org
Jeff
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply [flat|nested] 24+ messages in thread* uml-patch-2.6.7-2 @ 2004-08-19 3:00 ` Jeff Dike 0 siblings, 0 replies; 24+ messages in thread From: Jeff Dike @ 2004-08-19 3:00 UTC (permalink / raw) To: linux-kernel, user-mode-linux-devel I've released a second 2.6.7 UML patch. This is to push out the changes I have in order to give me a clean slate for the 2.6.8.1 UML. These changes sync up my 2.4 and 2.6 trees, and include Build cleanups, including 'linux' is now the default target, an updated defconfig, and Kconfig updates Code cleanup, including removal of unused SMP code, removal of a userspace file, more EINTR handling, more error checking Time fixes, including switching from rdtsc to gettimeofday for the real-time clock option and better handling of the host clock jumping backwards Introduction of centralized file descriptor management, allowing descriptors to be reclaimed if UML has hit the host's limit and the files can be reopened to provide access to the same object on the host Introduction of externfs, which allows host resources to be mounted as UML filesystems. externfs handles the kernel interface and plug-ins to it handle the host resources. There are two users, hostfs and humfs, both of which provide access to host directory hierarchies. humfs stores metadata separately, ala umsdos, which allows operations within the mount which would require root privileges on the host with hostfs. hostfs and humfs are still somewhat dodgy on 2.6. UML can load at 0x8048000 like every other binary when MODE_SKAS is enabled and MODE_TT is off. This makes valgrind happier, and also allows UML to have more physical memory without resorting to highmem. With STATIC_LINK disabled, the limit is ~750M, and with it enabled, the limit is ~2.75G. A good number of bugs, including some crashes were also fixed. For the full details, see http://user-mode-linux.sourceforge.net/changelog-uml-patch-2.6.7-2.bz2.html For the other UML mirrors and other downloads, see http://user-mode-linux.sourceforge.net/dl-sf.html Incremental patches between UML releases are available at http://user-mode-linux.sourceforge.net/patches.html Other links of interest: The UML project home page : http://user-mode-linux.sourceforge.net The UML Community site : http://usermodelinux.org Jeff ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 2004-08-19 3:00 ` uml-patch-2.6.7-2 Jeff Dike (?) @ 2004-08-27 7:10 ` Werner Almesberger 2004-09-05 19:35 ` BlaisorBlade -1 siblings, 1 reply; 24+ messages in thread From: Werner Almesberger @ 2004-08-27 7:10 UTC (permalink / raw) To: Jeff Dike; +Cc: user-mode-linux-devel Jeff Dike wrote: > hostfs and humfs are still somewhat dodgy on 2.6. Opening files for writing even if we only want to read them causes a number of problems: first, if I fire up a UML system that shares root with the host, and I'm root, it will fail to load things like bash, because it can't open it for writing. This trivial patch works around that: --- linux-2.6.7/fs/hostfs/host_fs.c.orig Fri Aug 27 03:55:48 2004 +++ linux-2.6.7/fs/hostfs/host_fs.c Fri Aug 27 03:56:17 2004 @@ -175,7 +175,7 @@ if(err == -EISDIR) goto out; - if(err == -EACCES) + if(err == -EACCES || err == -ETXTBSY) err = host_open_file(path, 1, 0, &hf->fh); if(err) Unfortunately, the problem also happens in the opposite direction. E.g. if the UML kernel has opened an executable for writing, that executable is no longer executable on the host. Open file caching makes this even worse. In fact, it may be a bad idea to cache a file open for writing at all, if an execute bit gets set, or if it is already set. A possible, but IMHO not very nice, work-around would be to run as a user who isn't allowed to write to anything the host might want to execute. - Werner -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net / /_http://www.almesberger.net/____________________________________________/ ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 2004-08-27 7:10 ` [uml-devel] uml-patch-2.6.7-2 Werner Almesberger @ 2004-09-05 19:35 ` BlaisorBlade 2004-09-08 23:15 ` Jeff Dike 0 siblings, 1 reply; 24+ messages in thread From: BlaisorBlade @ 2004-09-05 19:35 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Werner Almesberger, Jeff Dike [-- Attachment #1: Type: text/plain, Size: 1829 bytes --] On Friday 27 August 2004 09:10, Werner Almesberger wrote: > Jeff Dike wrote: > > hostfs and humfs are still somewhat dodgy on 2.6. > > Opening files for writing even if we only want to read them causes > a number of problems: Well, that is simply not needed. The -ETXTBUSY check is not a fix, but a workaround. Old good hostfs didn't do this. Btw, I'm experiencing two more problems with 2.6.8.1: - ls /mnt/host/dev/mapper/control returns EPERM errors, when trying to stat files; on the host, as the same user, or with 2.6.7-1 this does not happen. Why? It seems like hostfs opens files even to just stat them. Or maybe, it implements a wrong permission check. In fact, I'm not able to see the opening with strace (don't ask me why - I attach to the kernel thread, but I don't get the opening of the file; I got it only once, maybe ), but externfs_lookup calls init_inode which calls host_open_file! That's simply brain-damaged! My guest searches for binaries on the host, and as a result I get file descriptors 0-1023 opened by UML! I'm not joking! - Also (maybe related with calling iget(..., 0) ) I get this message on every unmount: VFS: Busy inodes after unmount. Self-destruct in 5 seconds. Have a nice day... which also seems to mean that files are not closed when unmounting hostfs! -Finally, for some reasons, the dev and rdev field returned by stat are screwed; when listing a device node on hostfs, it prints always the maj and min of the device containing the filesystem; i.e., file->rdev = host_stat -> dev instead of rdev. And I'm not able to see where the exchange happens. Instead, my old fix for the same problem always worked flawlessly. I'm attaching it - it's for the old hostfs, but maybe it's better anyway. Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 [-- Attachment #2: uml-hostfs-fix-maj-min.patch --] [-- Type: text/x-diff, Size: 3229 bytes --] Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> --- uml-linux-2.6.7-paolo/fs/hostfs/hostfs.h | 2 +- uml-linux-2.6.7-paolo/fs/hostfs/hostfs_kern.c | 11 ++++++++--- uml-linux-2.6.7-paolo/fs/hostfs/hostfs_user.c | 10 +++++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff -puN fs/hostfs/hostfs_kern.c~uml-hostfs-fix-maj-min fs/hostfs/hostfs_kern.c --- uml-linux-2.6.7/fs/hostfs/hostfs_kern.c~uml-hostfs-fix-maj-min 2004-08-16 16:18:00.564794256 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/hostfs_kern.c 2004-08-16 16:35:36.759228296 +0200 @@ -18,6 +18,7 @@ #include <linux/buffer_head.h> #include <linux/root_dev.h> #include <linux/statfs.h> +#include <linux/kdev_t.h> #include <asm/uaccess.h> #include "hostfs.h" #include "kern_util.h" @@ -230,7 +231,7 @@ static int read_inode(struct inode *ino) if(name == NULL) goto out; - if(file_type(name, NULL) == OS_TYPE_SYMLINK){ + if(file_type(name, NULL, NULL) == OS_TYPE_SYMLINK){ name = follow_link(name); if(IS_ERR(name)){ err = PTR_ERR(name); @@ -523,13 +524,17 @@ static struct address_space_operations h static int init_inode(struct inode *inode, struct dentry *dentry) { char *name; - int type, err = -ENOMEM, rdev; + int type, err = -ENOMEM; + int maj, min; + dev_t rdev = 0; if(dentry){ name = dentry_name(dentry, 0); if(name == NULL) goto out; - type = file_type(name, &rdev); + type = file_type(name, &maj, &min); + /*Reencode maj and min with the kernel encoding.*/ + rdev = MKDEV(maj, min); kfree(name); } else type = OS_TYPE_DIR; diff -puN fs/hostfs/hostfs_user.c~uml-hostfs-fix-maj-min fs/hostfs/hostfs_user.c --- uml-linux-2.6.7/fs/hostfs/hostfs_user.c~uml-hostfs-fix-maj-min 2004-08-16 16:18:00.591790152 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/hostfs_user.c 2004-08-16 16:24:24.949358920 +0200 @@ -54,14 +54,18 @@ int stat_file(const char *path, unsigned return(0); } -int file_type(const char *path, int *rdev) +int file_type(const char *path, int *maj, int *min) { struct stat64 buf; if(lstat64(path, &buf) < 0) return(-errno); - if(rdev != NULL) - *rdev = buf.st_rdev; + /*We cannot pass rdev as is because glibc and the kernel disagree + *about its definition.*/ + if(maj != NULL) + *maj = major(buf.st_rdev); + if(min != NULL) + *min = minor(buf.st_rdev); if(S_ISDIR(buf.st_mode)) return(OS_TYPE_DIR); else if(S_ISLNK(buf.st_mode)) return(OS_TYPE_SYMLINK); diff -puN fs/hostfs/hostfs.h~uml-hostfs-fix-maj-min fs/hostfs/hostfs.h --- uml-linux-2.6.7/fs/hostfs/hostfs.h~uml-hostfs-fix-maj-min 2004-08-16 16:22:16.017959472 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/hostfs.h 2004-08-16 16:22:39.607373336 +0200 @@ -38,7 +38,7 @@ extern int stat_file(const char *path, u int *blksize_out, unsigned long long *blocks_out); extern int access_file(char *path, int r, int w, int x); extern int open_file(char *path, int r, int w, int append); -extern int file_type(const char *path, int *rdev); +extern int file_type(const char *path, int *maj, int *min); extern void *open_dir(char *path, int *err_out); extern char *read_dir(void *stream, unsigned long long *pos, unsigned long long *ino_out, int *len_out); _ ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 2004-09-05 19:35 ` BlaisorBlade @ 2004-09-08 23:15 ` Jeff Dike 0 siblings, 0 replies; 24+ messages in thread From: Jeff Dike @ 2004-09-08 23:15 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, Werner Almesberger blaisorblade_spam@yahoo.it said: > In fact, I'm not able to see the opening with strace (don't ask me why > - I attach to the kernel thread, but I don't get the opening of the > file; I got it only once, maybe ), but externfs_lookup calls > init_inode which calls host_open_file! That's simply brain-damaged! Maybe, but it's mighty useful in testing the file descriptor reclaiming code. > - Also (maybe related with calling iget(..., 0) ) I get this message > on every unmount: The iget(..., 0) thing has been fixed. > VFS: Busy inodes after unmount. Self-destruct in 5 seconds. Have a > nice day... I'm not seeing that any more. > -Finally, for some reasons, the dev and rdev field returned by stat > are screwed; when listing a device node on hostfs, it prints always > the maj and min of the device containing the filesystem; i.e., file-> > rdev = host_stat -> dev instead of rdev. And I'm not able to see > where the exchange happens. It's here - copy_stat: .ust_major = MAJOR(src->st_dev), /* device */ .ust_minor = MINOR(src->st_dev), do_stat_file: .rdev = MKDEV(buf.ust_major, buf.ust_minor), Now that I have externfs_inode_info, either it or uml_stat looks redundant. One more thing to clean up... Jeff ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 2004-08-19 3:00 ` uml-patch-2.6.7-2 Jeff Dike (?) (?) @ 2004-09-05 15:35 ` BlaisorBlade 2004-09-05 20:28 ` [uml-devel] Current state of UML Jeff Garzik 2004-09-09 0:35 ` Jeff Dike -1 siblings, 2 replies; 24+ messages in thread From: BlaisorBlade @ 2004-09-05 15:35 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Jeff Dike, linux-kernel [-- Attachment #1: Type: text/plain, Size: 2647 bytes --] Alle 05:00, giovedì 19 agosto 2004, Jeff Dike ha scritto: > I've released a second 2.6.7 UML patch. This is to push out the changes I > have in order to give me a clean slate for the 2.6.8.1 UML. About the patch (and even the 2.6.8.1-1 one), there are two problems: * First, please do a "make clean" before releasing the patch. There are some binaries included in it! And also semaphore.c, which is a symlink normally. * Second, why do you disable module support when compiling it, or anyhow how could you succeed to build it? Starting from this patch (this bug is not there in 2.6.7-1, and remains in 2.6.8.1-1) we have this line twice: EXPORT_SYMBOL(os_ioctl_generic); So it did not compile for me (I patched it, obviously). Patch attached - uml-dup-sym. Also, you must still export a tons of symbols, plus make hostfs depend on externfs. Also, to avoid linking against libgcc_s.so and exporting some of its symbols, which change, I made use of do_div for 64-bit division. For this, see uml-export-Symbols.patch. It's only for 2.6 - for 2.4 it's a bit more complex (a module export all its symbols in 2.4, but if you link statically the code you must export the symbol by hand inside an EXPORT_OBJ; and if you export a missing symbol you get a link time failure). Btw, about the ->statfs op: you are missing some unsigned-ness for some params, since sector_t, used in kstatfs, is unsigned. Do you want them fixed? * About filehandle_switch: you deleted a line (probably by mistake). Reread more carefully the separate patches you get with quilt: when you see the other attached patch (uml-restore-lost-code.patch), you'll agree with me. Also, what you say about the patch is not correct: filehandle_switch has almost just a cosmetic effect (there is a change from os_open_file to open_file for new_mm mode, and nothing else). I've attached the 2.4.26-2 part which is more actually the filehandle_switch part (it's not a perfect one, it contains some unrelated changes, but anyway you can fix it). However, IMHO, since you cannot close and reopen a pipe, it's braindead that the switch_pipe[] array is an array of filehandles. You must obviously use the make_pipe() API to call reclaim_fds() if needed, but making it return filehandles is useless. They are never added onto the list, also, so they never become reclaimable. But about the filehandle abstraction, I have a lot of doubts, for which I'll write a separate mail. I like the idea, but not the current implementation. -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 [-- Attachment #2: uml-dup-sym.patch --] [-- Type: text/x-diff, Size: 673 bytes --] Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> --- uml-linux-2.6.7-paolo/arch/um/kernel/ksyms.c | 1 - 1 files changed, 1 deletion(-) diff -puN arch/um/kernel/ksyms.c~uml-dup-sym arch/um/kernel/ksyms.c --- uml-linux-2.6.7/arch/um/kernel/ksyms.c~uml-dup-sym 2004-08-24 19:19:38.000000000 +0200 +++ uml-linux-2.6.7-paolo/arch/um/kernel/ksyms.c 2004-08-24 19:19:51.000000000 +0200 @@ -73,7 +73,6 @@ EXPORT_SYMBOL(os_read_file); EXPORT_SYMBOL(os_write_file); EXPORT_SYMBOL(os_seek_file); EXPORT_SYMBOL(os_lock_file); -EXPORT_SYMBOL(os_ioctl_generic); EXPORT_SYMBOL(os_pipe); EXPORT_SYMBOL(os_file_type); EXPORT_SYMBOL(os_file_mode); _ [-- Attachment #3: uml-restore-lost-code.patch --] [-- Type: text/x-diff, Size: 806 bytes --] This line of code was unbelievably lost somehow in the "filehandle_switch" patch. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> --- uml-linux-2.6.7-paolo/arch/um/kernel/smp.c | 1 + 1 files changed, 1 insertion(+) diff -puN arch/um/kernel/smp.c~uml-restore-lost-code arch/um/kernel/smp.c --- uml-linux-2.6.7/arch/um/kernel/smp.c~uml-restore-lost-code 2004-08-25 16:33:28.274244752 +0200 +++ uml-linux-2.6.7-paolo/arch/um/kernel/smp.c 2004-08-25 16:33:28.276244448 +0200 @@ -119,6 +119,7 @@ static struct task_struct *idle_thread(i idle_threads[cpu] = new_task; CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c, sizeof(c)), + ({ panic("skas mode doesn't support SMP"); })); wake_up_forked_process(new_task); return(new_task); } _ [-- Attachment #4: filehandle-expand-and-use-for-tt.patch --] [-- Type: text/x-diff, Size: 14099 bytes --] diff -u um/arch/um/include/filehandle.h um/arch/um/include/filehandle.h --- um/arch/um/include/filehandle.h 2004-05-06 22:10:45.000000000 -0400 +++ um/arch/um/include/filehandle.h 2004-07-16 10:58:27.000000000 -0400 @@ -21,6 +21,7 @@ extern struct file_handle bad_filehandle; extern int open_file(char *name, struct openflags flags, int mode); +extern void *open_dir(char *file); extern int open_filehandle(char *name, struct openflags flags, int mode, struct file_handle *fh); extern int read_file(struct file_handle *fh, unsigned long long offset, @@ -34,6 +35,7 @@ char *(name_proc)(struct inode *), struct inode *inode); extern int filehandle_fd(struct file_handle *fh); +extern int make_pipe(struct file_handle *fhs); #endif diff -u um/arch/um/include/os.h um/arch/um/include/os.h --- um/arch/um/include/os.h 2004-04-28 03:33:40.000000000 -0400 +++ um/arch/um/include/os.h 2004-06-29 08:42:03.000000000 -0400 @@ -175,7 +175,7 @@ extern int os_link_file(const char *to, const char *from); extern int os_make_dir(const char *dir, int mode); extern int os_remove_dir(const char *dir); -extern int os_make_dev(const char *name, int mode, int dev); +extern int os_make_dev(const char *name, int mode, int major, int minor); extern int os_shutdown_socket(int fd, int r, int w); extern void os_close_file(int fd); extern int os_rcv_fd(int fd, int *helper_pid_out); diff -u um/arch/um/include/user_util.h um/arch/um/include/user_util.h --- um/arch/um/include/user_util.h 2004-03-02 07:51:02.000000000 -0500 +++ um/arch/um/include/user_util.h 2004-06-30 22:33:58.000000000 -0400 @@ -73,7 +73,6 @@ extern void tracer_panic(char *msg, ...); extern char *get_umid(int only_if_set); extern void do_longjmp(void *p, int val); -extern void suspend_new_thread(int fd); extern int detach(int pid, int sig); extern int attach(int pid); extern void kill_child_dead(int pid); diff -u um/arch/um/kernel/filehandle.c um/arch/um/kernel/filehandle.c --- um/arch/um/kernel/filehandle.c 2004-05-08 19:56:34.000000000 -0400 +++ um/arch/um/kernel/filehandle.c 2004-07-16 10:49:54.000000000 -0400 @@ -46,6 +46,26 @@ return(fd); } +void *open_dir(char *file) +{ + void *dir; + int err; + + dir = os_open_dir(file, &err); + if(dir != NULL) + return(dir); + if(err != -EMFILE) + return(ERR_PTR(err)); + + reclaim_fds(); + + dir = os_open_dir(file, &err); + if(dir == NULL) + dir = ERR_PTR(err); + + return(dir); +} + void not_reclaimable(struct file_handle *fh) { char *name; @@ -103,6 +123,7 @@ return(fd); fh->fd = fd; + is_reclaimable(fh, fh->get_name, fh->inode); return(0); } @@ -118,6 +139,16 @@ return(fh->fd); } +static void init_fh(struct file_handle *fh, int fd, struct openflags flags) +{ + flags.c = 0; + *fh = ((struct file_handle) { .list = LIST_HEAD_INIT(fh->list), + .fd = fd, + .get_name = NULL, + .inode = NULL, + .flags = flags }); +} + int open_filehandle(char *name, struct openflags flags, int mode, struct file_handle *fh) { @@ -127,13 +158,7 @@ if(fd < 0) return(fd); - flags.c = 0; - *fh = ((struct file_handle) { .list = LIST_HEAD_INIT(fh->list), - .fd = fd, - .get_name = NULL, - .inode = NULL, - .flags = flags }); - + init_fh(fh, fd, flags); return(0); } @@ -174,7 +199,8 @@ if(err) return(err); - err = os_seek_file(fh->fd, offset); + if(offset != -1) + err = os_seek_file(fh->fd, offset); if(err) return(err); @@ -192,6 +218,26 @@ return(os_truncate_fd(fh->fd, size)); } +int make_pipe(struct file_handle *fhs) +{ + int fds[2], err; + + err = os_pipe(fds, 1, 1); + if(err && (err != -EMFILE)) + return(err); + + if(err){ + reclaim_fds(); + err = os_pipe(fds, 1, 1); + } + if(err) + return(err); + + init_fh(&fhs[0], fds[0], OPENFLAGS()); + init_fh(&fhs[1], fds[1], OPENFLAGS()); + return(0); +} + /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically diff -u um/arch/um/kernel/process.c um/arch/um/kernel/process.c --- um/arch/um/kernel/process.c 2004-04-05 20:01:08.000000000 -0400 +++ um/arch/um/kernel/process.c 2004-06-30 22:33:15.000000000 -0400 @@ -130,16 +130,6 @@ return(arg.pid); } -void suspend_new_thread(int fd) -{ - char c; - - os_stop_process(os_getpid()); - - if(os_read_file(fd, &c, sizeof(c)) != sizeof(c)) - panic("read failed in suspend_new_thread"); -} - static int ptrace_child(void *arg) { int pid = os_getpid(); diff -u um/arch/um/kernel/smp.c um/arch/um/kernel/smp.c --- um/arch/um/kernel/smp.c 2003-11-15 02:59:25.000000000 -0500 +++ um/arch/um/kernel/smp.c 2004-07-13 15:23:07.000000000 -0400 @@ -168,8 +168,9 @@ new_task->processor = cpu; new_task->cpus_allowed = 1 << cpu; new_task->cpus_runnable = new_task->cpus_allowed; - CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c, - sizeof(c)), + CHOOSE_MODE(({ struct file_handle *pipe; + pipe = new_task->thread.mode.tt.switch_pipe; + write_file(&pipe[1], -1, &c, sizeof(c)); }), ({ panic("skas mode doesn't support SMP"); })); return(new_task->thread.mode.tt.extern_pid); } diff -u um/arch/um/kernel/tt/process_kern.c um/arch/um/kernel/tt/process_kern.c --- um/arch/um/kernel/tt/process_kern.c 2004-04-04 19:15:42.000000000 -0400 +++ um/arch/um/kernel/tt/process_kern.c 2004-07-14 18:38:31.000000000 -0400 @@ -6,6 +6,7 @@ #include "linux/sched.h" #include "linux/signal.h" #include "linux/kernel.h" +#include "linux/slab.h" #include "asm/system.h" #include "asm/pgalloc.h" #include "asm/ptrace.h" @@ -22,10 +23,12 @@ #include "mode.h" #include "init.h" #include "tt.h" +#include "filehandle.h" void *_switch_to_tt(void *prev, void *next) { struct task_struct *from, *to; + struct file_handle *pipe; unsigned long flags; int err, vtalrm, alrm, prof, cpu; char c; @@ -55,7 +58,8 @@ set_current(to); reading = 0; - err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); + pipe = to->thread.mode.tt.switch_pipe; + err = write_file(&pipe[1], -1, &c, sizeof(c)); if(err != sizeof(c)) panic("write of switch_pipe failed, err = %d", -err); @@ -63,7 +67,8 @@ if(from->state == TASK_ZOMBIE) os_kill_process(os_getpid(), 0); - err = os_read_file(from->thread.mode.tt.switch_pipe[0], &c, sizeof(c)); + pipe = from->thread.mode.tt.switch_pipe; + err = read_file(&pipe[0], -1, &c, sizeof(c)); if(err != sizeof(c)) panic("read of switch_pipe failed, errno = %d", -err); @@ -104,14 +109,28 @@ void exit_thread_tt(void) { - os_close_file(current->thread.mode.tt.switch_pipe[0]); - os_close_file(current->thread.mode.tt.switch_pipe[1]); + struct file_handle *pipe = current->thread.mode.tt.switch_pipe; + + close_file(&pipe[0]); + close_file(&pipe[1]); + kfree(pipe); +} + +static void suspend_new_thread(struct file_handle *fh) +{ + char c; + + os_stop_process(os_getpid()); + + if(read_file(fh, -1, &c, sizeof(c)) != sizeof(c)) + panic("read failed in suspend_new_thread"); } extern void schedule_tail(struct task_struct *prev); static void new_thread_handler(int sig) { + struct file_handle *pipe; unsigned long disable; int (*fn)(void *); void *arg; @@ -124,7 +143,8 @@ (1 << (SIGIO - 1)) | (1 << (SIGPROF - 1)); SC_SIGMASK(UPT_SC(¤t->thread.regs.regs)) &= ~disable; - suspend_new_thread(current->thread.mode.tt.switch_pipe[0]); + pipe = current->thread.mode.tt.switch_pipe; + suspend_new_thread(&pipe[0]); init_new_thread_signals(1); enable_timer(); @@ -183,8 +203,10 @@ static void finish_fork_handler(int sig) { + struct file_handle *pipe = current->thread.mode.tt.switch_pipe; + UPT_SC(¤t->thread.regs.regs) = (void *) (&sig + 1); - suspend_new_thread(current->thread.mode.tt.switch_pipe[0]); + suspend_new_thread(&pipe[0]); init_new_thread_signals(1); enable_timer(); @@ -215,6 +237,30 @@ return(0); } +struct file_handle *make_switch_pipe(void) +{ + struct file_handle *pipe; + int err; + + pipe = kmalloc(sizeof(struct file_handle [2]), GFP_KERNEL); + if(pipe == NULL){ + pipe = ERR_PTR(-ENOMEM); + goto out; + } + + err = make_pipe(pipe); + if(err) + goto out_free; + + out: + return(pipe); + + out_free: + kfree(pipe); + pipe = ERR_PTR(err); + goto out; +} + int copy_thread_tt(int nr, unsigned long clone_flags, unsigned long sp, unsigned long stack_top, struct task_struct * p, struct pt_regs *regs) @@ -230,17 +276,18 @@ p->thread.request.u.thread = current->thread.request.u.thread; } - err = os_pipe(p->thread.mode.tt.switch_pipe, 1, 1); - if(err < 0){ - printk("copy_thread : pipe failed, err = %d\n", -err); - return(err); + p->thread.mode.tt.switch_pipe = make_switch_pipe(); + if(IS_ERR(p->thread.mode.tt.switch_pipe)){ + err = PTR_ERR(p->thread.mode.tt.switch_pipe); + goto out; } stack = alloc_stack(0, 0); if(stack == 0){ printk(KERN_ERR "copy_thread : failed to allocate " "temporary stack\n"); - return(-ENOMEM); + err = -ENOMEM; + goto out_close; } clone_flags &= CLONE_VM; @@ -250,7 +297,8 @@ if(new_pid < 0){ printk(KERN_ERR "copy_thread : clone failed - errno = %d\n", -new_pid); - return(new_pid); + err = new_pid; + goto out_stack; } if(current->thread.forking){ @@ -264,10 +312,25 @@ current->thread.request.op = OP_FORK; current->thread.request.u.fork.pid = new_pid; os_usr1_process(os_getpid()); + + /* Enable the signal and then disable it to ensure that it is handled + * here, and nowhere else. + */ change_sig(SIGUSR1, 1); change_sig(SIGUSR1, 0); - return(0); + err = 0; + + out: + return(err); + + out_stack: + free_stack(stack, 0); + out_close: + close_file(&((struct file_handle *) p->thread.mode.tt.switch_pipe)[0]); + close_file(&((struct file_handle *) p->thread.mode.tt.switch_pipe)[1]); + kfree(p->thread.mode.tt.switch_pipe); + goto out; } void reboot_tt(void) @@ -476,15 +539,22 @@ return(0); } +/* This is static rather than kmalloced because this happens before kmalloc + * is initialized. Also, it is always needed, so might as well be static on + * this ground. + */ +static struct file_handle init_switch_pipe[2]; + void set_init_pid(int pid) { int err; init_task.thread.mode.tt.extern_pid = pid; - err = os_pipe(init_task.thread.mode.tt.switch_pipe, 1, 1); - if(err) - panic("Can't create switch pipe for init_task, errno = %d", - -err); + + err = make_pipe(init_switch_pipe); + if(err) + panic("set_init_pid - make_pipe failed, errno = %d", err); + init_task.thread.mode.tt.switch_pipe = init_switch_pipe; } int singlestepping_tt(void *t) diff -u um/arch/um/os-Linux/file.c um/arch/um/os-Linux/file.c --- um/arch/um/os-Linux/file.c 2004-05-08 19:56:16.000000000 -0400 +++ um/arch/um/os-Linux/file.c 2004-07-16 11:15:52.000000000 -0400 @@ -10,6 +10,7 @@ #include <signal.h> #include <utime.h> #include <dirent.h> +#include <linux/kdev_t.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/socket.h> @@ -244,7 +245,8 @@ if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) || (fcntl(master, F_SETOWN, os_getpid()) < 0)){ - printk("fcntl F_SETFL or F_SETOWN failed, errno = %d\n", errno); + printk("fcntl F_SETFL or F_SETOWN failed, errno = %d\n", + errno); return(-errno); } @@ -341,7 +343,7 @@ void *dir; dir = opendir(path); - *err_out = errno; + *err_out = -errno; return(dir); } @@ -841,11 +843,11 @@ return(0); } -int os_make_dev(const char *name, int mode, int dev) +int os_make_dev(const char *name, int mode, int major, int minor) { int err; - err = mknod(name, mode, dev); + err = mknod(name, mode, MKDEV(major, minor)); if(err) return(-errno); diff -u um/arch/um/os-Linux/process.c um/arch/um/os-Linux/process.c --- um/arch/um/os-Linux/process.c 2004-01-10 06:53:44.000000000 -0500 +++ um/arch/um/os-Linux/process.c 2004-07-13 14:03:32.000000000 -0400 @@ -15,9 +15,12 @@ #define ARBITRARY_ADDR -1 #define FAILURE_PID -1 +#define STAT_PATH_LEN sizeof("/proc/#######/stat\0") +#define COMM_SCANF "%*[^)])" + unsigned long os_process_pc(int pid) { - char proc_stat[sizeof("/proc/#####/stat\0")], buf[256]; + char proc_stat[STAT_PATH_LEN], buf[256]; unsigned long pc; int fd, err; @@ -37,9 +40,9 @@ } os_close_file(fd); pc = ARBITRARY_ADDR; - if(sscanf(buf, "%*d %*s %*c %*d %*d %*d %*d %*d %*d %*d %*d " + if(sscanf(buf, "%*d " COMM_SCANF " %*c %*d %*d %*d %*d %*d %*d %*d " "%*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d " - "%*d %*d %*d %*d %ld", &pc) != 1){ + "%*d %*d %*d %*d %*d %lu", &pc) != 1){ printk("os_process_pc - couldn't find pc in '%s'\n", buf); } return(pc); @@ -47,7 +50,7 @@ int os_process_parent(int pid) { - char stat[sizeof("/proc/nnnnn/stat\0")]; + char stat[STAT_PATH_LEN]; char data[256]; int parent, n, fd; @@ -69,8 +72,7 @@ } parent = FAILURE_PID; - /* XXX This will break if there is a space in the command */ - n = sscanf(data, "%*d %*s %*c %d", &parent); + n = sscanf(data, "%*d " COMM_SCANF " %*c %d", &parent); if(n != 1) printk("Failed to scan '%s'\n", data); diff -u um/include/asm-um/processor-generic.h um/include/asm-um/processor-generic.h --- um/include/asm-um/processor-generic.h 2004-05-11 18:18:07.000000000 -0400 +++ um/include/asm-um/processor-generic.h 2004-07-13 15:05:30.000000000 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) + * Copyright (C) 2000 - 2004 Jeff Dike (jdike@addtoit.com) * Licensed under the GPL */ @@ -41,7 +41,14 @@ struct { int extern_pid; int tracing; - int switch_pipe[2]; + /* XXX This is really two filehandles, but they contain + * lists, and list.h includes processor.h through + * prefetch.h before defining struct list, so this + * makes the lists' sizes unknown at this point. + * So, this is a void *, and allocated separately. + * Check to see if this is fixed in 2.6. + */ + void *switch_pipe; int singlestep_syscall; int vm_seq; } tt; [-- Attachment #5: uml-export-Symbols.patch --] [-- Type: text/x-diff, Size: 13157 bytes --] Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> --- uml-linux-2.6.7-paolo/arch/um/Kconfig | 1 uml-linux-2.6.7-paolo/arch/um/kernel/filehandle.c | 10 ++++++++ uml-linux-2.6.7-paolo/arch/um/kernel/irq.c | 2 + uml-linux-2.6.7-paolo/arch/um/kernel/ksyms.c | 26 +++++++++++++++++++++- uml-linux-2.6.7-paolo/arch/um/kernel/physmem.c | 5 ++++ uml-linux-2.6.7-paolo/fs/hostfs/externfs.c | 7 +++++ uml-linux-2.6.7-paolo/fs/hostfs/host_file.c | 20 ++++++++++++++++ uml-linux-2.6.7-paolo/fs/hostfs/host_fs.c | 7 +---- uml-linux-2.6.7-paolo/fs/hostfs/humfs.c | 21 +++++++++++++---- uml-linux-2.6.7-paolo/fs/hostfs/meta_fs.c | 5 ++-- 10 files changed, 91 insertions(+), 13 deletions(-) diff -puN arch/um/kernel/ksyms.c~uml-export-Symbols arch/um/kernel/ksyms.c --- uml-linux-2.6.7/arch/um/kernel/ksyms.c~uml-export-Symbols 2004-08-26 22:35:34.435732872 +0200 +++ uml-linux-2.6.7-paolo/arch/um/kernel/ksyms.c 2004-08-26 22:35:34.467728008 +0200 @@ -21,6 +21,7 @@ #include "user_util.h" #include "mem_user.h" #include "os.h" +#include "aio.h" #include "helper.h" EXPORT_SYMBOL(stop); @@ -48,6 +49,7 @@ EXPORT_SYMBOL(to_virt); EXPORT_SYMBOL(mode_tt); EXPORT_SYMBOL(handle_page_fault); EXPORT_SYMBOL(find_iomem); +EXPORT_SYMBOL(uml_strdup); #ifdef CONFIG_MODE_TT EXPORT_SYMBOL(strncpy_from_user_tt); @@ -81,16 +83,38 @@ EXPORT_SYMBOL(os_flush_stdout); EXPORT_SYMBOL(os_close_file); EXPORT_SYMBOL(os_set_fd_async); EXPORT_SYMBOL(os_set_fd_block); -EXPORT_SYMBOL(helper_wait); +EXPORT_SYMBOL(os_remove_dir); +EXPORT_SYMBOL(os_remove_file); EXPORT_SYMBOL(os_shutdown_socket); EXPORT_SYMBOL(os_create_unix_socket); EXPORT_SYMBOL(os_connect_socket); EXPORT_SYMBOL(os_accept_connection); EXPORT_SYMBOL(os_ioctl_generic); EXPORT_SYMBOL(os_rcv_fd); +EXPORT_SYMBOL(os_truncate_fd); +EXPORT_SYMBOL(os_fd_size); +EXPORT_SYMBOL(os_close_dir); +EXPORT_SYMBOL(os_make_dev); +EXPORT_SYMBOL(os_stat_filesystem); +EXPORT_SYMBOL(os_move_file); +EXPORT_SYMBOL(os_read_symlink); +EXPORT_SYMBOL(os_link_file); +EXPORT_SYMBOL(os_make_dir); +EXPORT_SYMBOL(os_make_symlink); +EXPORT_SYMBOL(os_set_file_time); +EXPORT_SYMBOL(os_truncate_file); +EXPORT_SYMBOL(os_set_file_owner); +EXPORT_SYMBOL(os_set_file_perms); +EXPORT_SYMBOL(os_lstat_file); +EXPORT_SYMBOL(os_tell_dir); +EXPORT_SYMBOL(os_read_dir); +EXPORT_SYMBOL(os_seek_dir); +EXPORT_SYMBOL(submit_aio); + EXPORT_SYMBOL(run_helper); EXPORT_SYMBOL(start_thread); EXPORT_SYMBOL(dump_thread); +EXPORT_SYMBOL(helper_wait); EXPORT_SYMBOL(do_gettimeofday); EXPORT_SYMBOL(do_settimeofday); diff -puN arch/um/os-Linux/user_syms.c~uml-export-Symbols arch/um/os-Linux/user_syms.c diff -puN arch/um/os-Linux/aio.c~uml-export-Symbols arch/um/os-Linux/aio.c diff -puN arch/um/kernel/irq.c~uml-export-Symbols arch/um/kernel/irq.c --- uml-linux-2.6.7/arch/um/kernel/irq.c~uml-export-Symbols 2004-08-26 22:35:34.438732416 +0200 +++ uml-linux-2.6.7-paolo/arch/um/kernel/irq.c 2004-08-26 22:35:34.467728008 +0200 @@ -437,6 +437,8 @@ int um_request_irq(unsigned int irq, int err = activate_fd(irq, fd, type, dev_id); return(err); } +EXPORT_SYMBOL(um_request_irq); +EXPORT_SYMBOL(reactivate_fd); /* this was setup_x86_irq but it seems pretty generic */ int setup_irq(unsigned int irq, struct irqaction * new) diff -puN arch/um/kernel/physmem.c~uml-export-Symbols arch/um/kernel/physmem.c --- uml-linux-2.6.7/arch/um/kernel/physmem.c~uml-export-Symbols 2004-08-26 22:35:34.439732264 +0200 +++ uml-linux-2.6.7-paolo/arch/um/kernel/physmem.c 2004-08-26 22:35:34.468727856 +0200 @@ -8,6 +8,7 @@ #include "linux/slab.h" #include "linux/vmalloc.h" #include "linux/bootmem.h" +#include "linux/module.h" #include "asm/types.h" #include "asm/pgtable.h" #include "kern_util.h" @@ -229,6 +230,10 @@ void physmem_forget_descriptor(int fd) kfree(desc); } +EXPORT_SYMBOL(physmem_forget_descriptor); +EXPORT_SYMBOL(physmem_remove_mapping); +EXPORT_SYMBOL(physmem_subst_mapping); + void arch_free_page(struct page *page, int order) { void *virt; diff -puN fs/hostfs/externfs.c~uml-export-Symbols fs/hostfs/externfs.c --- uml-linux-2.6.7/fs/hostfs/externfs.c~uml-export-Symbols 2004-08-26 22:35:34.440732112 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/externfs.c 2004-08-26 22:35:34.468727856 +0200 @@ -1190,6 +1190,7 @@ char *host_root_filename(char *mount_arg return(uml_strdup(root)); } +EXPORT_SYMBOL(host_root_filename); static int externfs_fill_sb(struct super_block *sb, void *data, int silent) { @@ -1286,6 +1287,7 @@ int register_externfs(char *name, struct out: return(err); } +EXPORT_SYMBOL(register_externfs); void unregister_externfs(char *name) { @@ -1304,6 +1306,11 @@ void unregister_externfs(char *name) up(&externfs_sem); printk("Unregister_externfs - filesystem '%s' not found\n", name); } +EXPORT_SYMBOL(unregister_externfs); + +EXPORT_SYMBOL(init_externfs); +EXPORT_SYMBOL(inode_externfs_info); +EXPORT_SYMBOL(inode_name_prefix); /* * Overrides for Emacs so that we follow Linus's tabbing style. diff -puN fs/hostfs/humfs.c~uml-export-Symbols fs/hostfs/humfs.c --- uml-linux-2.6.7/fs/hostfs/humfs.c~uml-export-Symbols 2004-08-26 22:35:34.441731960 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/humfs.c 2004-08-26 22:35:34.469727704 +0200 @@ -12,9 +12,11 @@ #include <linux/errno.h> #include <linux/string.h> #include <linux/kdev_t.h> +#include <linux/module.h> #include "linux/init.h" #include "linux/workqueue.h" #include <asm/irq.h> +#include <asm/div64.h> #include "hostfs.h" #include "mem.h" #include "os.h" @@ -320,8 +322,6 @@ static int init_humfs_aio(void) return(0); } -__initcall(init_humfs_aio); - static int humfs_aio(enum aio_type type, int fd, unsigned long long offset, char *buf, int len, int real_len, void (*completion)(char *, int, void *), void *arg) @@ -669,6 +669,7 @@ struct humfs *inode_humfs_info(struct in { return(container_of(inode_externfs_info(inode), struct humfs, ext)); } +EXPORT_SYMBOL(inode_humfs_info); static int humfs_rename_file(char *from, char *to, struct externfs_data *ed) { @@ -705,9 +706,16 @@ static int humfs_stat_fs(long *bsize_out if(err) return(err); +#if 0 *blocks_out = mount->total / *bsize_out; *bfree_out = (mount->total - mount->used) / *bsize_out; - *bavail_out = (mount->total - mount->used) / *bsize_out; +#endif + *blocks_out = mount->total; + *bfree_out = (mount->total - mount->used); + do_div(blocks_out, *bsize_out); + do_div(bfree_out, *bsize_out); + + *bavail_out = *bfree_out; return(0); } @@ -766,6 +774,7 @@ void register_meta(struct humfs_meta_ops list_add(&ops->list, &metas); up(&meta_sem); } +EXPORT_SYMBOL(register_meta); void unregister_meta(struct humfs_meta_ops *ops) { @@ -773,6 +782,7 @@ void unregister_meta(struct humfs_meta_o list_del(&ops->list); up(&meta_sem); } +EXPORT_SYMBOL(unregister_meta); static struct humfs *read_superblock(char *root) { @@ -1003,6 +1013,7 @@ struct externfs_mount_ops humfs_mount_op static int __init init_humfs(void) { + init_humfs_aio(); return(register_externfs("humfs", &humfs_mount_ops)); } @@ -1011,8 +1022,8 @@ static void __exit exit_humfs(void) unregister_externfs("humfs"); } -__initcall(init_humfs); -__exitcall(exit_humfs); +module_init(init_humfs); +module_exit(exit_humfs); /* * Overrides for Emacs so that we follow Linus's tabbing style. diff -puN fs/hostfs/host_file.c~uml-export-Symbols fs/hostfs/host_file.c --- uml-linux-2.6.7/fs/hostfs/host_file.c~uml-export-Symbols 2004-08-26 22:35:34.442731808 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/host_file.c 2004-08-26 22:35:34.469727704 +0200 @@ -9,6 +9,7 @@ #include "linux/types.h" #include "linux/slab.h" #include "linux/fs.h" +#include "linux/module.h" #include "asm/fcntl.h" #include "hostfs.h" #include "filehandle.h" @@ -430,6 +431,25 @@ int generic_host_truncate_file(struct fi return(truncate_file(fh, size)); } +EXPORT_SYMBOL(free_path); +EXPORT_SYMBOL(generic_host_read_dir); +EXPORT_SYMBOL(get_path); +EXPORT_SYMBOL(host_create_file); +EXPORT_SYMBOL(host_file_type); +EXPORT_SYMBOL(host_link_file); +EXPORT_SYMBOL(host_make_dir); +EXPORT_SYMBOL(host_make_symlink); +EXPORT_SYMBOL(host_open_dir); +EXPORT_SYMBOL(host_open_file); +EXPORT_SYMBOL(host_read_link); +EXPORT_SYMBOL(host_remove_dir); +EXPORT_SYMBOL(host_rename_file); +EXPORT_SYMBOL(host_root_filename); +EXPORT_SYMBOL(host_set_attr); +EXPORT_SYMBOL(host_stat_file); +EXPORT_SYMBOL(host_stat_fs); +EXPORT_SYMBOL(host_unlink_file); + /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically diff -puN arch/um/kernel/filehandle.c~uml-export-Symbols arch/um/kernel/filehandle.c --- uml-linux-2.6.7/arch/um/kernel/filehandle.c~uml-export-Symbols 2004-08-26 22:35:34.443731656 +0200 +++ uml-linux-2.6.7-paolo/arch/um/kernel/filehandle.c 2004-08-26 22:35:34.470727552 +0200 @@ -8,6 +8,7 @@ #include "linux/spinlock.h" #include "linux/fs.h" #include "linux/errno.h" +#include "linux/module.h" #include "filehandle.h" #include "os.h" #include "kern_util.h" @@ -65,6 +66,7 @@ void *open_dir(char *file) return(dir); } +EXPORT_SYMBOL(open_dir); void not_reclaimable(struct file_handle *fh) { @@ -87,6 +89,7 @@ void not_reclaimable(struct file_handle spin_unlock(&open_files_lock); } } +EXPORT_SYMBOL(not_reclaimable); void is_reclaimable(struct file_handle *fh, char *(name_proc)(struct inode *), struct inode *inode) @@ -98,6 +101,7 @@ void is_reclaimable(struct file_handle * list_add(&fh->list, &open_files); spin_unlock(&open_files_lock); } +EXPORT_SYMBOL(is_reclaimable); static int active_handle(struct file_handle *fh) { @@ -138,6 +142,7 @@ int filehandle_fd(struct file_handle *fh return(fh->fd); } +EXPORT_SYMBOL(filehandle_fd); static void init_fh(struct file_handle *fh, int fd, struct openflags flags) { @@ -161,6 +166,7 @@ int open_filehandle(char *name, struct o init_fh(fh, fd, flags); return(0); } +EXPORT_SYMBOL(open_filehandle); int close_file(struct file_handle *fh) { @@ -173,6 +179,7 @@ int close_file(struct file_handle *fh) fh->fd = -1; return(0); } +EXPORT_SYMBOL(close_file); int read_file(struct file_handle *fh, unsigned long long offset, char *buf, int len) @@ -189,6 +196,7 @@ int read_file(struct file_handle *fh, un return(os_read_file(fh->fd, buf, len)); } +EXPORT_SYMBOL(read_file); int write_file(struct file_handle *fh, unsigned long long offset, const char *buf, int len) @@ -206,6 +214,7 @@ int write_file(struct file_handle *fh, u return(os_write_file(fh->fd, buf, len)); } +EXPORT_SYMBOL(write_file); int truncate_file(struct file_handle *fh, unsigned long long size) { @@ -217,6 +226,7 @@ int truncate_file(struct file_handle *fh return(os_truncate_fd(fh->fd, size)); } +EXPORT_SYMBOL(truncate_file); int make_pipe(struct file_handle *fhs) { diff -puN arch/um/Kconfig~uml-export-Symbols arch/um/Kconfig --- uml-linux-2.6.7/arch/um/Kconfig~uml-export-Symbols 2004-08-26 22:35:34.463728616 +0200 +++ uml-linux-2.6.7-paolo/arch/um/Kconfig 2004-08-26 22:35:34.470727552 +0200 @@ -83,6 +83,7 @@ config EXTERNFS config HOSTFS tristate "Host filesystem" + depends on EXTERNFS help While the User-Mode Linux port uses its own root file system for booting and normal file access, this module lets the UML user diff -puN fs/hostfs/host_fs.c~uml-export-Symbols fs/hostfs/host_fs.c --- uml-linux-2.6.7/fs/hostfs/host_fs.c~uml-export-Symbols 2004-08-26 22:35:34.464728464 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/host_fs.c 2004-08-26 22:35:34.470727552 +0200 @@ -11,6 +11,7 @@ #include "linux/init.h" #include "linux/fs.h" #include "linux/stat.h" +#include "linux/module.h" #include "hostfs.h" #include "kern.h" #include "init.h" @@ -21,6 +22,7 @@ /* Changed in hostfs_args before the kernel starts running */ static char *jail_dir = "/"; int append = 0; +EXPORT_SYMBOL(append); static int __init hostfs_args(char *options, int *add) { @@ -446,14 +448,9 @@ static void __exit exit_hostfs(void) unregister_externfs("hostfs"); } -__initcall(init_hostfs); -__exitcall(exit_hostfs); - -#if 0 module_init(init_hostfs) module_exit(exit_hostfs) MODULE_LICENSE("GPL"); -#endif /* * Overrides for Emacs so that we follow Linus's tabbing style. diff -puN fs/hostfs/meta_fs.c~uml-export-Symbols fs/hostfs/meta_fs.c --- uml-linux-2.6.7/fs/hostfs/meta_fs.c~uml-export-Symbols 2004-08-26 22:35:34.465728312 +0200 +++ uml-linux-2.6.7-paolo/fs/hostfs/meta_fs.c 2004-08-26 22:35:34.471727400 +0200 @@ -5,6 +5,7 @@ #include <linux/slab.h> #include <linux/init.h> +#include <linux/module.h> #include "hostfs.h" #include "metadata.h" #include "kern_util.h" @@ -505,8 +506,8 @@ static void __exit exit_meta_fs(void) unregister_meta(&hum_fs_meta_fs_ops); } -__initcall(init_meta_fs); -__exitcall(exit_meta_fs); +module_init(init_meta_fs); +module_exit(exit_meta_fs); /* * Overrides for Emacs so that we follow Linus's tabbing style. _ ^ permalink raw reply [flat|nested] 24+ messages in thread
* [uml-devel] Current state of UML 2004-09-05 15:35 ` BlaisorBlade @ 2004-09-05 20:28 ` Jeff Garzik 2004-09-06 17:56 ` BlaisorBlade 2004-09-08 20:40 ` [uml-devel] Re: Current state of UML Jeff Dike 2004-09-09 0:35 ` Jeff Dike 1 sibling, 2 replies; 24+ messages in thread From: Jeff Garzik @ 2004-09-05 20:28 UTC (permalink / raw) To: Jeff Dike; +Cc: user-mode-linux-devel Just a FWIW... Using the latest UML code in 2.6.x BitKeeper (2.6.9-rc1-bk), things are looking pretty darn good. I was able to boot a Fedora Core userland with "init=/bin/sh", set up networking easily [uml_net helper worked], and ssh into my virtual host. To problems, one major and two minor: (major) 1) Using standard Fedora Core SysvInit, rc.sysinit will proceed to completion, then the userland boot halts. ps shows the virtual host's /sbin/init process in constant run state, chewing CPU time like mad. Didn't investigate further, simply booted with init=/bin/sh and moved on. (minor) 2) The Makefiles appear to add "-um1" to the kernel version for some reason, and IMHO violates the Principle of Least Surprise. This breaks several of my scripts :( 3) The arch/um build is verbose, showing each gcc command line as it is executed. This is incorrect when KBUILD_VERBOSE or similar setting are not enabled. As a result, the arch/um is verbose, but the rest is not, by default. Overall I am really impressed. Like other arches in the Linux kernel, it is IMO very important to be able to work "out of the box", without patches. Jeff ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML 2004-09-05 20:28 ` [uml-devel] Current state of UML Jeff Garzik @ 2004-09-06 17:56 ` BlaisorBlade 2004-09-07 4:40 ` Jeff Garzik 2004-09-07 18:13 ` BlaisorBlade 2004-09-08 20:40 ` [uml-devel] Re: Current state of UML Jeff Dike 1 sibling, 2 replies; 24+ messages in thread From: BlaisorBlade @ 2004-09-06 17:56 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Jeff Garzik, Jeff Dike On Sunday 05 September 2004 22:28, Jeff Garzik wrote: > Just a FWIW... Thanks a lot anyway! We need eagerly mainline developer which help us, in any way (even comments). > Using the latest UML code in 2.6.x BitKeeper (2.6.9-rc1-bk), things are > looking pretty darn good. I was able to boot a Fedora Core userland > with "init=/bin/sh", set up networking easily [uml_net helper worked], > and ssh into my virtual host. > To problems, one major and two minor: > (major) > 1) Using standard Fedora Core SysvInit, rc.sysinit will proceed to > completion, then the userland boot halts. ps shows the virtual host's > /sbin/init process in constant run state, chewing CPU time like mad. > Didn't investigate further, simply booted with init=/bin/sh and moved on. > (minor) > 2) The Makefiles appear to add "-um1" to the kernel version for some > reason, and IMHO violates the Principle of Least Surprise. This breaks > several of my scripts :( Yes, this should not have gone in mainline (it made sense when releasing separate UML patches). I'm queueing the fix to Andrew Morton. I guess that future separate UML patches (just for updates) will have to insert their extraversion to Makefile rather than arch/um/Makefile. > 3) The arch/um build is verbose, showing each gcc command line as it is > executed. This is incorrect when KBUILD_VERBOSE or similar setting are > not enabled. As a result, the arch/um is verbose, but the rest is not, > by default. There is a ton of problems with kbuild in UML - actually it must build a lot of files against userspace headers, and there isn't a kbuild support for that. This means for instance that files are not rebuilt when CONFIG_* changes, when a header changes and so on. I've just implemented a patch which simply makes the output nice, but I'm not sure whether it should be included. Some time ago I implemented a rough version of a good patch (which fixed all the above problems, but in an unclean way), but nobody liked it, and moreover Jeff Dike said that: 1) he did not want to modify kbuild for UML only 2) he was going to build an abstraction layer, which would build with userspace includes and would be restricted to arch/um/os-*/, and then the Makefile hacks would have been done only for that folder. > Overall I am really impressed. Like other arches in the Linux kernel, > it is IMO very important to be able to work "out of the box", without > patches. -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML 2004-09-06 17:56 ` BlaisorBlade @ 2004-09-07 4:40 ` Jeff Garzik 2004-09-07 5:05 ` Adam Heath 2004-09-07 18:13 ` BlaisorBlade 1 sibling, 1 reply; 24+ messages in thread From: Jeff Garzik @ 2004-09-07 4:40 UTC (permalink / raw) To: BlaisorBlade, Jeff Dike; +Cc: user-mode-linux-devel [-- Attachment #1: Type: text/plain, Size: 790 bytes --] Well, after some fiddling, I am able to boot the current 2.6.9-rc1-bk UML on Fedora Core 2 userland. Networking comes up correctly, and everything works as expected except... syslog hangs on initialization. 765 pts/0 S 0:00 | \_ initlog -q -c syslogd -m 0 766 pts/0 S 0:00 | \_ syslogd -m 0 767 ? S 0:00 | \_ syslogd -m 0 If I run "chkconfig syslog off" then userland boots correctly, and I can ssh in or login using one of the many xterm consoles. My kernel config is attached, if someone is interested. Great work! I have no idea where my /sbin/init problem went, but aside from syslog userland is working great. Now to figure out how to get IPv6 automatically configuring itself... Jeff [-- Attachment #2: config.txt --] [-- Type: text/plain, Size: 12251 bytes --] # # Automatically generated make config: don't edit # Linux kernel version: 2.6.9-rc1 # Tue Sep 7 00:22:00 2004 # CONFIG_USERMODE=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_RWSEM_GENERIC_SPINLOCK=y # # UML-specific options # CONFIG_MODE_TT=y CONFIG_MODE_SKAS=y CONFIG_NET=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=y CONFIG_HOSTFS=m CONFIG_HPPFS=m CONFIG_MCONSOLE=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_KERNEL_STACK_ORDER=2 CONFIG_UML_REAL_TIME_CLOCK=y # # Code maturity level options # CONFIG_EXPERIMENTAL=y # CONFIG_CLEAN_COMPILE is not set CONFIG_BROKEN=y CONFIG_BROKEN_ON_SMP=y # # General setup # CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=17 # CONFIG_HOTPLUG is not set # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SHMEM=y # CONFIG_TINY_SHMEM is not set # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set CONFIG_KMOD=y # # Generic Driver Options # # CONFIG_STANDALONE is not set # CONFIG_PREVENT_FIRMWARE_BUILD is not set # CONFIG_DEBUG_DRIVER is not set # # 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_LEGACY_PTYS is not set # CONFIG_WATCHDOG is not set # CONFIG_UML_SOUND is not set # CONFIG_SOUND is not set # CONFIG_HOSTAUDIO is not set # # Block Devices # CONFIG_BLK_DEV_UBD=y CONFIG_BLK_DEV_UBD_SYNC=y CONFIG_BLK_DEV_COW_COMMON=y CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_MMAPPER is not set CONFIG_NETDEVICES=y # # 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_MCAST is not set # CONFIG_UML_NET_PCAP is not set # CONFIG_UML_NET_SLIRP is not set # # Networking support # # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_NETLINK_DEV=y CONFIG_UNIX=y CONFIG_NET_KEY=y CONFIG_INET=y CONFIG_IP_MULTICAST=y # 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_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set CONFIG_INET_AH=y CONFIG_INET_ESP=y CONFIG_INET_IPCOMP=y CONFIG_INET_TUNNEL=y # # IP: Virtual Server Configuration # # CONFIG_IP_VS is not set CONFIG_IPV6=y CONFIG_IPV6_PRIVACY=y CONFIG_INET6_AH=y CONFIG_INET6_ESP=y CONFIG_INET6_IPCOMP=y CONFIG_INET6_TUNNEL=y # CONFIG_IPV6_TUNNEL is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y # # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m # CONFIG_IP_NF_CT_ACCT is not set CONFIG_IP_NF_CT_PROTO_SCTP=m CONFIG_IP_NF_FTP=m CONFIG_IP_NF_IRC=m CONFIG_IP_NF_TFTP=m CONFIG_IP_NF_AMANDA=m CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_LIMIT=m CONFIG_IP_NF_MATCH_IPRANGE=m CONFIG_IP_NF_MATCH_MAC=m CONFIG_IP_NF_MATCH_PKTTYPE=m CONFIG_IP_NF_MATCH_MARK=m CONFIG_IP_NF_MATCH_MULTIPORT=m CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_DSCP=m CONFIG_IP_NF_MATCH_AH_ESP=m CONFIG_IP_NF_MATCH_LENGTH=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_TCPMSS=m CONFIG_IP_NF_MATCH_HELPER=m CONFIG_IP_NF_MATCH_STATE=m CONFIG_IP_NF_MATCH_CONNTRACK=m CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_MATCH_PHYSDEV=m CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_REALM=m CONFIG_IP_NF_MATCH_SCTP=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_IP_NF_TARGET_TCPMSS=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_SAME=m # CONFIG_IP_NF_NAT_LOCAL is not set CONFIG_IP_NF_NAT_SNMP_BASIC=m CONFIG_IP_NF_NAT_IRC=m CONFIG_IP_NF_NAT_FTP=m CONFIG_IP_NF_NAT_TFTP=m CONFIG_IP_NF_NAT_AMANDA=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_TOS=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_DSCP=m CONFIG_IP_NF_TARGET_MARK=m CONFIG_IP_NF_TARGET_CLASSIFY=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_TARGET_NOTRACK=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m CONFIG_IP_NF_COMPAT_IPCHAINS=m CONFIG_IP_NF_COMPAT_IPFWADM=m # # IPv6: Netfilter Configuration # CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_LIMIT=m CONFIG_IP6_NF_MATCH_MAC=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_MULTIPORT=m CONFIG_IP6_NF_MATCH_OWNER=m CONFIG_IP6_NF_MATCH_MARK=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_AHESP=m CONFIG_IP6_NF_MATCH_LENGTH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_TARGET_MARK=m CONFIG_IP6_NF_RAW=m # # Bridge: Netfilter Configuration # CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_XFRM=y CONFIG_XFRM_USER=y # # SCTP Configuration (EXPERIMENTAL) # CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_MSG is not set # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_HMAC_NONE is not set # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y # CONFIG_ATM is not set CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=y CONFIG_LLC2=y # 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_HW_FLOWCONTROL is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set CONFIG_NET_CLS_ROUTE=y # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set CONFIG_DUMMY=y # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=y # CONFIG_ETHERTAP is not set # # Ethernet (10 or 100Mbit) # # CONFIG_NET_ETHERNET is not set # # Ethernet (1000 Mbit) # # # Ethernet (10000 Mbit) # # # Token Ring devices # # # Wireless LAN (non-hamradio) # # CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set CONFIG_PPP=m CONFIG_PPP_MULTILINK=y CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPPOE is not set # CONFIG_SLIP is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # # File systems # CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y # CONFIG_EXT2_FS_SECURITY is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y # CONFIG_EXT3_FS_SECURITY is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_QUOTA is not set # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # # CD-ROM/DVD Filesystems # # CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="cp437" # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set CONFIG_DEVPTS_FS_XATTR=y # CONFIG_DEVPTS_FS_SECURITY is not set CONFIG_TMPFS=y # 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_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_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=y CONFIG_NFS_V3=y CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set CONFIG_NFSD=m CONFIG_NFSD_V3=y CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y CONFIG_RPCSEC_GSS_KRB5=y CONFIG_RPCSEC_GSS_SPKM3=y # 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 # # Native Language Support # CONFIG_NLS=y CONFIG_NLS_DEFAULT="cp437" CONFIG_NLS_CODEPAGE_437=y # 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_ASCII=y CONFIG_NLS_ISO8859_1=m # 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=m # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y # # Security options # # CONFIG_SECURITY is not set # # Cryptographic options # CONFIG_CRYPTO=y CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WHIRLPOOL is not set CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_ARC4 is not set # CONFIG_CRYPTO_KHAZAD is not set CONFIG_CRYPTO_DEFLATE=y # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC_CCITT=y CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y # # 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_KERNEL=y # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SPINLOCK is not set CONFIG_DEBUG_INFO=y CONFIG_FRAME_POINTER=y # CONFIG_PT_PROXY is not set # CONFIG_GPROF is not set # CONFIG_GCOV is not set ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML 2004-09-07 4:40 ` Jeff Garzik @ 2004-09-07 5:05 ` Adam Heath 2004-09-07 5:13 ` Jeff Garzik 0 siblings, 1 reply; 24+ messages in thread From: Adam Heath @ 2004-09-07 5:05 UTC (permalink / raw) To: Jeff Garzik; +Cc: BlaisorBlade, Jeff Dike, user-mode-linux-devel On Tue, 7 Sep 2004, Jeff Garzik wrote: > > Well, after some fiddling, I am able to boot the current 2.6.9-rc1-bk > UML on Fedora Core 2 userland. Networking comes up correctly, and > everything works as expected except... syslog hangs on initialization. > > 765 pts/0 S 0:00 | \_ initlog -q -c syslogd -m 0 > 766 pts/0 S 0:00 | \_ syslogd -m 0 > 767 ? S 0:00 | \_ syslogd -m 0 > > If I run "chkconfig syslog off" then userland boots correctly, and I can > ssh in or login using one of the many xterm consoles. > > My kernel config is attached, if someone is interested. > > Great work! I have no idea where my /sbin/init problem went, but aside > from syslog userland is working great. > > Now to figure out how to get IPv6 automatically configuring itself... Sounds like a syslog bug, that should have been fixed long ago. Syslog had a race condition at startup; under normal linux, the problem never occurred. However, under smp, or under uml, the scheduling is different enough that the race condition occurs. However, the symptoms of this I have seen have never been a lookup; just an annoying error message at startup. However, I've only got experience with Debian. ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML 2004-09-07 5:05 ` Adam Heath @ 2004-09-07 5:13 ` Jeff Garzik 2004-09-07 5:39 ` Adam Heath 0 siblings, 1 reply; 24+ messages in thread From: Jeff Garzik @ 2004-09-07 5:13 UTC (permalink / raw) To: Adam Heath; +Cc: BlaisorBlade, Jeff Dike, user-mode-linux-devel Adam Heath wrote: > Sounds like a syslog bug, that should have been fixed long ago. Perhaps... strace running inside UML host seems to stop at nanosleep, of all places: read(3, "676\n", 4096) = 4 close(3) = 0 munmap(0x40017000, 4096) = 0 kill(676, SIG_0) = -1 ESRCH (No such process) clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x4013d2e8) = 716 rt_sigaction(SIGTERM, {0x15559810, [TERM], SA_RESTORER|SA_RESTART, 0x40048f38}, {SIG_DFL}, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({300, 0}, ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML 2004-09-07 5:13 ` Jeff Garzik @ 2004-09-07 5:39 ` Adam Heath 0 siblings, 0 replies; 24+ messages in thread From: Adam Heath @ 2004-09-07 5:39 UTC (permalink / raw) To: Jeff Garzik; +Cc: BlaisorBlade, Jeff Dike, user-mode-linux-devel On Tue, 7 Sep 2004, Jeff Garzik wrote: > Adam Heath wrote: > > Sounds like a syslog bug, that should have been fixed long ago. > > Perhaps... strace running inside UML host seems to stop at nanosleep, > of all places: Oh, well that sounds like something else. Probably a uml problem. ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML - some help needed from mainline. 2004-09-06 17:56 ` BlaisorBlade @ 2004-09-07 18:13 ` BlaisorBlade 2004-09-07 18:13 ` BlaisorBlade 1 sibling, 0 replies; 24+ messages in thread From: BlaisorBlade @ 2004-09-07 18:13 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Jeff Garzik, Jeff Dike, linux-kernel For LKML: I'm not subscribed, so don't forget to CC me. On Monday 06 September 2004 19:56, BlaisorBlade wrote: > On Sunday 05 September 2004 22:28, Jeff Garzik wrote: > > Overall I am really impressed. Like other arches in the Linux kernel, > > it is IMO very important to be able to work "out of the box", without > > patches. Yes - especially when microAPI changes happen every day, as of 2.6. I've just downloaded a snapshot including the merge, so I'll be able to merge some little fixes which have happened since. Do you think that keeping a UML tree for new, experimental features is a good idea, or that this role should go to -mm? I ask this also because I don't know how much would help general review for new features. For instance, the "hostfs" feature is in the middle of a rewrite and the new code is still very broken (the current release says more or less "VFS: busy inodes after unmount - self destroying in 5 seconds. Have a nice day", but maybe this is fixed; plus has a number of other bugs). Also, SMP hasn't compiled for a while, so there is a number of locking problem - at least one straight deadlock in the ubd driver when passing ubd=sync. It's not a hard problem - just not yet fixed it. -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML - some help needed from mainline. @ 2004-09-07 18:13 ` BlaisorBlade 0 siblings, 0 replies; 24+ messages in thread From: BlaisorBlade @ 2004-09-07 18:13 UTC (permalink / raw) To: user-mode-linux-devel Cc: Jeff Garzik, Jeff Dike, user-mode-linux-devel, linux-kernel For LKML: I'm not subscribed, so don't forget to CC me. On Monday 06 September 2004 19:56, BlaisorBlade wrote: > On Sunday 05 September 2004 22:28, Jeff Garzik wrote: > > Overall I am really impressed. Like other arches in the Linux kernel, > > it is IMO very important to be able to work "out of the box", without > > patches. Yes - especially when microAPI changes happen every day, as of 2.6. I've just downloaded a snapshot including the merge, so I'll be able to merge some little fixes which have happened since. Do you think that keeping a UML tree for new, experimental features is a good idea, or that this role should go to -mm? I ask this also because I don't know how much would help general review for new features. For instance, the "hostfs" feature is in the middle of a rewrite and the new code is still very broken (the current release says more or less "VFS: busy inodes after unmount - self destroying in 5 seconds. Have a nice day", but maybe this is fixed; plus has a number of other bugs). Also, SMP hasn't compiled for a while, so there is a number of locking problem - at least one straight deadlock in the ubd driver when passing ubd=sync. It's not a hard problem - just not yet fixed it. -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML - some help needed from mainline. 2004-09-07 18:13 ` BlaisorBlade @ 2004-09-09 5:30 ` Jeff Garzik -1 siblings, 0 replies; 24+ messages in thread From: Jeff Garzik @ 2004-09-09 5:30 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, Jeff Dike, linux-kernel BlaisorBlade wrote: > For LKML: I'm not subscribed, so don't forget to CC me. > On Monday 06 September 2004 19:56, BlaisorBlade wrote: > >>On Sunday 05 September 2004 22:28, Jeff Garzik wrote: >> >>>Overall I am really impressed. Like other arches in the Linux kernel, >>>it is IMO very important to be able to work "out of the box", without >>>patches. > > Yes - especially when microAPI changes happen every day, as of 2.6. I've just > downloaded a snapshot including the merge, so I'll be able to merge some > little fixes which have happened since. > > Do you think that keeping a UML tree for new, experimental features is a good > idea, or that this role should go to -mm? > > I ask this also because I don't know how much would help general review for > new features. It's up to you. Andrew pulls several BitKeeper trees into his -mm tree, so you could do both if you wished. If you do that, though, just make sure that the code you push is in a state that's ready for review and testing :) > For instance, the "hostfs" feature is in the middle of a rewrite and the new > code is still very broken (the current release says more or less "VFS: busy > inodes after unmount - self destroying in 5 seconds. Have a nice day", but > maybe this is fixed; plus has a number of other bugs). I usually create a new "patch queue" for experimental features, to make sure that (a) it's seperated from the main testing branch but (b) it's easy to merge it back into the main testing branch when it's ready. If you use BitKeeper, this is accomplished simply by creating another cloned repository. Jeff ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Current state of UML - some help needed from mainline. @ 2004-09-09 5:30 ` Jeff Garzik 0 siblings, 0 replies; 24+ messages in thread From: Jeff Garzik @ 2004-09-09 5:30 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, Jeff Dike, linux-kernel BlaisorBlade wrote: > For LKML: I'm not subscribed, so don't forget to CC me. > On Monday 06 September 2004 19:56, BlaisorBlade wrote: > >>On Sunday 05 September 2004 22:28, Jeff Garzik wrote: >> >>>Overall I am really impressed. Like other arches in the Linux kernel, >>>it is IMO very important to be able to work "out of the box", without >>>patches. > > Yes - especially when microAPI changes happen every day, as of 2.6. I've just > downloaded a snapshot including the merge, so I'll be able to merge some > little fixes which have happened since. > > Do you think that keeping a UML tree for new, experimental features is a good > idea, or that this role should go to -mm? > > I ask this also because I don't know how much would help general review for > new features. It's up to you. Andrew pulls several BitKeeper trees into his -mm tree, so you could do both if you wished. If you do that, though, just make sure that the code you push is in a state that's ready for review and testing :) > For instance, the "hostfs" feature is in the middle of a rewrite and the new > code is still very broken (the current release says more or less "VFS: busy > inodes after unmount - self destroying in 5 seconds. Have a nice day", but > maybe this is fixed; plus has a number of other bugs). I usually create a new "patch queue" for experimental features, to make sure that (a) it's seperated from the main testing branch but (b) it's easy to merge it back into the main testing branch when it's ready. If you use BitKeeper, this is accomplished simply by creating another cloned repository. Jeff ^ permalink raw reply [flat|nested] 24+ messages in thread
* [uml-devel] Re: Current state of UML 2004-09-05 20:28 ` [uml-devel] Current state of UML Jeff Garzik 2004-09-06 17:56 ` BlaisorBlade @ 2004-09-08 20:40 ` Jeff Dike 1 sibling, 0 replies; 24+ messages in thread From: Jeff Dike @ 2004-09-08 20:40 UTC (permalink / raw) To: Jeff Garzik; +Cc: user-mode-linux-devel jgarzik@pobox.com said: > (minor) 2) The Makefiles appear to add "-um1" to the kernel version > for some reason, and IMHO violates the Principle of Least Surprise. > This breaks several of my scripts :( As BlaisorBlade already said, this wasn't intended to reach any major trees - it's just for my own patch numbering. I'll clean this up, along with a couple of other things. Jeff ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 2004-09-05 15:35 ` BlaisorBlade @ 2004-09-09 0:35 ` Jeff Dike 2004-09-09 0:35 ` Jeff Dike 1 sibling, 0 replies; 24+ messages in thread From: Jeff Dike @ 2004-09-09 0:35 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, linux-kernel blaisorblade_spam@yahoo.it said: > * First, please do a "make clean" before releasing the patch. There > are some binaries included in it! And also semaphore.c, which is a > symlink normally. I do. It's just that make clean didn't catch everything. > * About filehandle_switch: you deleted a line (probably by mistake). > Reread more carefully the separate patches you get with quilt: when > you see the other attached patch (uml-restore-lost-code.patch), > you'll agree with me. Yuck, I have no idea how that happened. > However, IMHO, since you cannot close and reopen a pipe, it's > braindead that the switch_pipe[] array is an array of filehandles. Yeah, this is fixed in my 2.6 tree now. Jeff ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 @ 2004-09-09 0:35 ` Jeff Dike 0 siblings, 0 replies; 24+ messages in thread From: Jeff Dike @ 2004-09-09 0:35 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, linux-kernel blaisorblade_spam@yahoo.it said: > * First, please do a "make clean" before releasing the patch. There > are some binaries included in it! And also semaphore.c, which is a > symlink normally. I do. It's just that make clean didn't catch everything. > * About filehandle_switch: you deleted a line (probably by mistake). > Reread more carefully the separate patches you get with quilt: when > you see the other attached patch (uml-restore-lost-code.patch), > you'll agree with me. Yuck, I have no idea how that happened. > However, IMHO, since you cannot close and reopen a pipe, it's > braindead that the switch_pipe[] array is an array of filehandles. Yeah, this is fixed in my 2.6 tree now. Jeff ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 2004-09-09 0:35 ` Jeff Dike @ 2004-09-11 14:41 ` BlaisorBlade -1 siblings, 0 replies; 24+ messages in thread From: BlaisorBlade @ 2004-09-11 14:41 UTC (permalink / raw) To: Jeff Dike; +Cc: user-mode-linux-devel, linux-kernel On Thursday 09 September 2004 02:35, Jeff Dike wrote: > blaisorblade_spam@yahoo.it said: > > * First, please do a "make clean" before releasing the patch. There > > are some binaries included in it! And also semaphore.c, which is a > > symlink normally. > > I do. It's just that make clean didn't catch everything. Btw, inside patch-scripts they provide a script which rather than diffing two trees, calls "combinediff" (from patchutils) to merge the patches statically, without need of the patched files. I've been very confortable with it - doesn't quilt have something such? About patchutils (quoting from Andrew Morton): See http://cyberelk.net/tim/patchutils/ (Don't download the "experimental" patchutils - it seems to only have half of the commands in it. Go for "stable") > > * About filehandle_switch: you deleted a line (probably by mistake). > > Reread more carefully the separate patches you get with quilt: when > > you see the other attached patch (uml-restore-lost-code.patch), > > you'll agree with me. > Yuck, I have no idea how that happened. Btw, I'm assuming that you didn't want to drop the HPPFS compile line in "externfs" (since that's not documented), right? --- um.orig/fs/Makefile 2004-08-06 15:17:22.000000000 -0400 +++ um/fs/Makefile 2004-08-06 15:17:25.000000000 -0400 @@ -91,5 +91,4 @@ obj-$(CONFIG_XFS_FS) += xfs/ obj-$(CONFIG_AFS_FS) += afs/ obj-$(CONFIG_BEFS_FS) += befs/ -obj-$(CONFIG_HOSTFS) += hostfs/ -obj-$(CONFIG_HPPFS) += hppfs/ # <---- WHY? +obj-$(CONFIG_EXTERNFS) += hostfs/ > > However, IMHO, since you cannot close and reopen a pipe, it's > > braindead that the switch_pipe[] array is an array of filehandles. > Yeah, this is fixed in my 2.6 tree now. Yes, I saw it, a lot after writing the message (I sent it a lot after writing it). However, another thing: I think that the handling of EMFILE/ENFILE (too many fd's for the app or for the system) should be moved inside the os_ layer. Or will you create yet a filehandle wrapper for functions like os_connect_socket() (which calls socket(), which requests an fd)? Do you agree or have any arguments to support the current design? -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] uml-patch-2.6.7-2 @ 2004-09-11 14:41 ` BlaisorBlade 0 siblings, 0 replies; 24+ messages in thread From: BlaisorBlade @ 2004-09-11 14:41 UTC (permalink / raw) To: Jeff Dike; +Cc: user-mode-linux-devel, linux-kernel On Thursday 09 September 2004 02:35, Jeff Dike wrote: > blaisorblade_spam@yahoo.it said: > > * First, please do a "make clean" before releasing the patch. There > > are some binaries included in it! And also semaphore.c, which is a > > symlink normally. > > I do. It's just that make clean didn't catch everything. Btw, inside patch-scripts they provide a script which rather than diffing two trees, calls "combinediff" (from patchutils) to merge the patches statically, without need of the patched files. I've been very confortable with it - doesn't quilt have something such? About patchutils (quoting from Andrew Morton): See http://cyberelk.net/tim/patchutils/ (Don't download the "experimental" patchutils - it seems to only have half of the commands in it. Go for "stable") > > * About filehandle_switch: you deleted a line (probably by mistake). > > Reread more carefully the separate patches you get with quilt: when > > you see the other attached patch (uml-restore-lost-code.patch), > > you'll agree with me. > Yuck, I have no idea how that happened. Btw, I'm assuming that you didn't want to drop the HPPFS compile line in "externfs" (since that's not documented), right? --- um.orig/fs/Makefile 2004-08-06 15:17:22.000000000 -0400 +++ um/fs/Makefile 2004-08-06 15:17:25.000000000 -0400 @@ -91,5 +91,4 @@ obj-$(CONFIG_XFS_FS) += xfs/ obj-$(CONFIG_AFS_FS) += afs/ obj-$(CONFIG_BEFS_FS) += befs/ -obj-$(CONFIG_HOSTFS) += hostfs/ -obj-$(CONFIG_HPPFS) += hppfs/ # <---- WHY? +obj-$(CONFIG_EXTERNFS) += hostfs/ > > However, IMHO, since you cannot close and reopen a pipe, it's > > braindead that the switch_pipe[] array is an array of filehandles. > Yeah, this is fixed in my 2.6 tree now. Yes, I saw it, a lot after writing the message (I sent it a lot after writing it). However, another thing: I think that the handling of EMFILE/ENFILE (too many fd's for the app or for the system) should be moved inside the os_ layer. Or will you create yet a filehandle wrapper for functions like os_connect_socket() (which calls socket(), which requests an fd)? Do you agree or have any arguments to support the current design? -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [uml-devel] Compiling UML 2.6.8.1 with Static Linking results in segfault 2004-08-19 3:00 ` uml-patch-2.6.7-2 Jeff Dike ` (2 preceding siblings ...) (?) @ 2004-09-07 21:16 ` Michael Ralston 2004-09-08 0:18 ` Jeff Dike -1 siblings, 1 reply; 24+ messages in thread From: Michael Ralston @ 2004-09-07 21:16 UTC (permalink / raw) To: user-mode-linux-devel I've just tried to compile UML with TT disabled, SKAS enabled and static linking enabled. When I run the linux binary is immediately segfaults. I'm using GCC 3.3.4 and Libc6 2.3.2 ... Can I provide any further info or is this a known problem? Michael Ralston Stral.net ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [uml-devel] Compiling UML 2.6.8.1 with Static Linking results in segfault 2004-09-07 21:16 ` [uml-devel] Compiling UML 2.6.8.1 with Static Linking results in segfault Michael Ralston @ 2004-09-08 0:18 ` Jeff Dike 2004-09-07 23:57 ` Michael Ralston 0 siblings, 1 reply; 24+ messages in thread From: Jeff Dike @ 2004-09-08 0:18 UTC (permalink / raw) To: ralston; +Cc: user-mode-linux-devel ralston@stral.net said: > Can I provide any further info or is this a known problem? Get a core, and get a stack trace from it? Jeff ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
* RE: [uml-devel] Compiling UML 2.6.8.1 with Static Linking results in segfault 2004-09-08 0:18 ` Jeff Dike @ 2004-09-07 23:57 ` Michael Ralston 0 siblings, 0 replies; 24+ messages in thread From: Michael Ralston @ 2004-09-07 23:57 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: 'Jeff Dike' The core is 483k, want me to email that just to you (not the list), or is the gdb output below pretty conclusive? I'm running this on a 2.6.8.1 host with SKAS3-2.6.7-v1 patch, and as I said libc6-2.3.2, so it's prolly another one of those lovely NPTL/TLS issues. The Config options which are set: # CONFIG_MODE_TT is not set CONFIG_STATIC_LINK=y CONFIG_MODE_SKAS=y If I disable STATIC_LINK then it runs fine... (gdb) run Starting program: /uml/linux Program received signal SIGSEGV, Segmentation fault. 0x08191800 in __libc_setup_tls () at swab.h:134 134 swab.h: No such file or directory. in swab.h > -----Original Message----- > From: Jeff Dike [mailto:jdike@addtoit.com] > Sent: Wednesday, 8 September 2004 10:18 AM > To: ralston@stral.net > Cc: user-mode-linux-devel@lists.sourceforge.net > Subject: Re: [uml-devel] Compiling UML 2.6.8.1 with Static > Linking results in segfault > > ralston@stral.net said: > > Can I provide any further info or is this a known problem? > > Get a core, and get a stack trace from it? > > Jeff > > ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2004-09-11 15:13 UTC | newest] Thread overview: 24+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-08-19 3:00 [uml-devel] uml-patch-2.6.7-2 Jeff Dike 2004-08-19 3:00 ` uml-patch-2.6.7-2 Jeff Dike 2004-08-27 7:10 ` [uml-devel] uml-patch-2.6.7-2 Werner Almesberger 2004-09-05 19:35 ` BlaisorBlade 2004-09-08 23:15 ` Jeff Dike 2004-09-05 15:35 ` BlaisorBlade 2004-09-05 20:28 ` [uml-devel] Current state of UML Jeff Garzik 2004-09-06 17:56 ` BlaisorBlade 2004-09-07 4:40 ` Jeff Garzik 2004-09-07 5:05 ` Adam Heath 2004-09-07 5:13 ` Jeff Garzik 2004-09-07 5:39 ` Adam Heath 2004-09-07 18:13 ` [uml-devel] Current state of UML - some help needed from mainline BlaisorBlade 2004-09-07 18:13 ` BlaisorBlade 2004-09-09 5:30 ` Jeff Garzik 2004-09-09 5:30 ` Jeff Garzik 2004-09-08 20:40 ` [uml-devel] Re: Current state of UML Jeff Dike 2004-09-09 0:35 ` [uml-devel] uml-patch-2.6.7-2 Jeff Dike 2004-09-09 0:35 ` Jeff Dike 2004-09-11 14:41 ` BlaisorBlade 2004-09-11 14:41 ` BlaisorBlade 2004-09-07 21:16 ` [uml-devel] Compiling UML 2.6.8.1 with Static Linking results in segfault Michael Ralston 2004-09-08 0:18 ` Jeff Dike 2004-09-07 23:57 ` Michael Ralston
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.