Re: om-2.6 patch for kcomd (pre-pre-alpha)
"Matt Dew" <[email protected]>
| Newsgroups | gmane.linux.cluster.openmosix.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi again, As has been pointed out to me that patch applies but does not compile. I have done git pulls periodically to see if there are any changes but I have gotten '...up-to-date...' messages so I assumed that meant there were no changes. Unfortunately there were, so that patch will not work. Tab, When using the straight git, if kcomd is compiled as a module, the following error pops up. hpc/built-in.o(.text+0xe57): In function `comm_accept': hpc/comm.c:296: undefined reference to `sock_alloc' make: *** [.tmp_vmlinux1] Error 1 It's due to sock_alloc being declared static (KCOMD_NSTATIC) unless kcomd is selected as 'y'. Attached is a patch to let it compile if kcomd is a 'm' or a 'y'. On Wed, 2006-07-12 at 01:25 +0000, Matt Dew wrote: > Hi all, > Here's a patch to the current git tree (7/11/06) that contains the new > kcomd code. kcomd is the new kernel daemon that handles migration for > the processes. > > Moshe, Bruce, if this patch is too large I can put it on a web server > for people to download. ? > > There is a README included but here's a quick intro. > > All communication between nodes is done via packets. Each packet > consists of a header, which has information about which pid this packet > belongs to, how much data accompanies this packet, the type of packet > (initial migration, system call, signal, etc), and the payload of data > that immediately follows. > > The processes are responsible for generating the packets, adding them to > linked lists and then signalling the kcomd daemon that a packet is ready > for transmission. All this is done in the kernelspace stubs of the > userspace processes. The userspace programs don't see anything. > > kcomd sleeps until there is work to do. Either a received packet to > process or a packet to send. Then goes back to slees. > > kcomd wakes up on the signal and sends the packet to the corresponding > node. When a packet is received, kcomd wakes up and checks to see which > process this packet belongs to, puts it into the process's linked list > and informs the process it has either new data or a response to a > previously sent packet. > > The code isn't very clean but if I wait until I'm happy with it I'll > never send it. :) > > compile kcomd as a module. > > Currently, issuing a migration command (echo $IP > /proc/../om/where) > will send a migration init packet to the other node, which sends a > reply. You can run as many simulaneously as you want. There doesn't > appear to be any memory leaks. > > This is just to show that communications are working and the foundation > plan is solid. Adding the code for real migrations is next, as is a > massive cleanup. :) > > Please try the patch and review the code. I'm not a programmer and I am > asking for help. There are plenty of commented printk statements you > can uncomment to get a better idea of what's happening. > > > config options: > # > # HPC options > # > CONFIG_KCOMD=m > CONFIG_OPENMOSIX=y > # CONFIG_OPENMOSIX_VERBOSE is not set > # CONFIG_OPENMOSIX_DEBUG is not set > # CONFIG_OPENMOSIX_CTRL_FS is not set > > Matt ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ openMosix-devel mailing list openMosix-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/openmosix-devel
kcomd_nstatic.patch
(text/plain, 984 B)
diff -Naur a/fs/select.c b/fs/select.c --- a/fs/select.c 2006-07-14 10:03:34.000000000 -0600 +++ b/fs/select.c 2006-07-14 09:55:47.000000000 -0600 @@ -283,7 +283,7 @@ return retval; } -#ifdef CONFIG_KCOMD +#ifdef CONFIG_KCOMD_MODULE EXPORT_SYMBOL_GPL(do_select); #endif diff -Naur a/include/linux/compiler.h b/include/linux/compiler.h --- a/include/linux/compiler.h 2006-07-14 09:44:36.000000000 -0600 +++ b/include/linux/compiler.h 2006-07-14 09:44:16.000000000 -0600 @@ -42,7 +42,7 @@ #define OM_NSTATIC static #endif -#ifdef CONFIG_KCOMD +#if defined(CONFIG_KCOMD) || defined(CONFIG_KCOMD_MODULE) #define KCOMD_NSTATIC #else #define KCOMD_NSTATIC static diff -Naur a/net/socket.c b/net/socket.c --- a/net/socket.c 2006-07-14 10:01:08.000000000 -0600 +++ b/net/socket.c 2006-07-14 09:54:21.000000000 -0600 @@ -484,7 +484,7 @@ put_cpu_var(sockets_in_use); return sock; } -#ifdef CONFIG_KCOMD +#ifdef CONFIG_KCOMD_MODULE EXPORT_SYMBOL_GPL(sock_alloc); #endif