189 lines
6.0 KiB
HTML
189 lines
6.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
|
<TITLE>Current Status (clshm)</TITLE>
|
|
</HEAD>
|
|
<BODY>
|
|
<H1>
|
|
Current Status</H1>
|
|
<H2>
|
|
Implemented</H2>
|
|
<P>
|
|
The general functionality is finished. Mostly testing is left to be
|
|
done as well as checking in the files and doing the idb stuff. Things
|
|
to be done to make this fully functional:</P>
|
|
<UL>
|
|
<LI>
|
|
irix/lib/libclshm:
|
|
<UL>
|
|
<LI>
|
|
Edit irix/lib/Makefile to make libclshm
|
|
<LI>
|
|
Place irix/lib/libclshm/src/xp_shm.h in the appropriate place
|
|
</UL>
|
|
<LI>
|
|
irix/cmd/clshm/clshm_diag:
|
|
<UL>
|
|
<LI>
|
|
Build and install irix/lib/libclshm since clshm_diag depends on it.
|
|
<LI>
|
|
#define CLSHM_USR_LIB_LINKED at beginning of clshm_diag.c.
|
|
<LI>
|
|
Edit irix/cmd/clshm/Makefile to include lines for making clshm_diag
|
|
with the library flags.
|
|
<LI>
|
|
Change the include line of "irix/lib/libclshm/src/xp_shm.h"
|
|
in clshm_diag.c to point to wherever it was decided that xp_shm.h will
|
|
live.
|
|
</UL>
|
|
<LI>
|
|
irix/cmd/clshm/test:
|
|
<UL>
|
|
<LI>
|
|
Edit xp_shm_wrap.h to include the place of the correct xp_shm.h
|
|
</UL>
|
|
<LI>
|
|
irix/cmd/clshm/doc/man:
|
|
<UL>
|
|
<LI>
|
|
Move part_func.3p and xp_func.3p into irix/man/man3p.
|
|
</UL>
|
|
<LI>
|
|
irix/kern/master.d/system.gen:
|
|
<UL>
|
|
<LI>
|
|
Edit to add "EXCLUDE: clshm" right after the "EXCLUDE:
|
|
if_cl" (this is general -- to actually enable -- will have
|
|
to change all "EXCLUDE"s to "USE" for all
|
|
partitioning stuff).
|
|
</UL>
|
|
<LI>
|
|
idb stuff:
|
|
<UL>
|
|
<LI>
|
|
Edit irix/cmd/clshm/Makefile idb stuff -- There is something there
|
|
commented out that I think will work, but you should probably make sure
|
|
before just adding it blindly. Need to add the clshmd.config file.
|
|
<LI>
|
|
Edit irix/build/idb: need to add a lot -- some of these are already
|
|
there, but will be needed for "target" information. Here are
|
|
all the things I can think of:
|
|
<UL>
|
|
<LI>
|
|
etc/config/clshm.config
|
|
<LI>
|
|
etc/init.d/sn0start
|
|
<LI>
|
|
usr/cpu/sysgen/IP27boot/clshm.o
|
|
<LI>
|
|
usr/etc/clshm_diag
|
|
<LI>
|
|
usr/etc/clshmctl
|
|
<LI>
|
|
usr/etc/clshmd
|
|
<LI>
|
|
usr/include/sys/SN/clshm.h
|
|
<LI>
|
|
usr/include/sys/SN/clshmd.h
|
|
<LI>
|
|
usr/include/sys/xp_shm.h
|
|
<LI>
|
|
usr/lib32/libclshm.so
|
|
<LI>
|
|
usr/lib32/mips4/libclshm.so
|
|
<LI>
|
|
usr/lib32/mips3/libclshm.so
|
|
<LI>
|
|
usr/lib64/libclshm.so
|
|
<LI>
|
|
usr/lib64/mips4/libclshm.so
|
|
<LI>
|
|
usr/lib64/mips3/libclshm.so
|
|
<LI>
|
|
usr/share/catman/a_man/man1/clshm_diag.z
|
|
<LI>
|
|
usr/share/catman/a_man/man1/clshmctl.z
|
|
<LI>
|
|
usr/share/catman/a_man/man1/clshmd.z
|
|
<LI>
|
|
usr/share/catman/p_man/man3p/part_func.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_getcount.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_gethostname.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_getid.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_getlist.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_getnode.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_getpart.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/part_setpmo.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/xp_ftok.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/xp_func.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/xp_shmat.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/xp_shmctl.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/xp_shmdt.z
|
|
<LI>
|
|
usr/share/catman/p_man/cat3p/xp_shmget.z
|
|
</UL>
|
|
<LI>
|
|
There are probably more things, but I guess that will have to be fixed
|
|
up later.
|
|
</UL>
|
|
</UL>
|
|
<H2>
|
|
To Be Implemented</H2>
|
|
<P>
|
|
Permissions on segments???? </P>
|
|
<H2>
|
|
Issues to Check Into</H2>
|
|
<UL>
|
|
<LI>
|
|
Check all kmem_zallocs and kmem_frees to make sure memory isn't being
|
|
orphaned.
|
|
<LI>
|
|
Check for sleeping memory allocations while I am holding locks in the
|
|
clshm and xpc layer.
|
|
<LI>
|
|
Check for other sleeping calls while I am holding locks.
|
|
</UL>
|
|
<H2>
|
|
Things That Would Be Nice</H2>
|
|
<P>
|
|
A lot of these issues are just wish-listed because the fact that the
|
|
setting up of a shared memory segment probably doesn't need to be that
|
|
fast and the daemon will probably not be left running indefinitely.
|
|
Speed is not as much of an issue because once the segments are set up,
|
|
there is no intervention by the driver or daemon unless there is an
|
|
error. So optimizing the setting up or tearing down of the segment is
|
|
not as important. Because of the (perhaps) limited use of this
|
|
interface, these issues may or may not ever become important.</P>
|
|
<UL>
|
|
<LI>
|
|
Have a way to clean up keys when something goes wrong between a xp_ftok
|
|
and an xp_shmget. At this point a key can only be destroyed once a
|
|
shmget has returned the shmid in order to destroy that key.
|
|
<LI>
|
|
Add the ability to reuse keys without doing a xp_ftok after the segment
|
|
has been destroyed.
|
|
<LI>
|
|
Introduce finer grain locks into the clshm driver. At this point it has
|
|
only one big lock that protects everything.
|
|
<LI>
|
|
Make the daemon multi-threaded so that it is faster.
|
|
<LI>
|
|
Make the user library sockets to the daemon connectionless. Right now
|
|
they are connection oriented sockets.
|
|
</UL>
|
|
</BODY>
|
|
</HTML>
|