<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Nice explanation Dr. D. Unfortunately, I am still
sweeping floors and not painting ceiling as you are. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I have the game all loaded on the same
partition.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Main game is loaded at
<STRONG>/games/cod-server/uo</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>USER's are loctaed at
<STRONG>/home/user/cod-server/uo</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I only have a single server.cfg in the
<STRONG>/home/user/cod-server/uo/server.cfg</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I point to <STRONG>/games/cod-server</STRONG> as my
executable directory because this is where the <FONT color=#808080>coduo_lnxded
</FONT><FONT color=#000000>resides:</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2>example: <STRONG>/games/cod-server/<FONT
color=#808080>coduo_lnxded</FONT></STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Now I make the <STRONG>games/cod-server</STRONG>
owned by admincliffy</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I get that far...But still unsure about this
linking process you are trying to explain. You say </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>"<FONT face="Times New Roman" size=3> You should
make the executable<BR>mode 0x750, and owned by the admin, group GID, so it is
RWX by you the admin, <BR>while it is only readable and executable, but not
writable by the Group of users with<BR>group GID. There is no need for it to
be."</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman"
size=3></FONT></FONT> </DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" size=3>I say headache
and start hitting the books. Can you demonstrate how you would link the user to
:</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman"
size=3><STRONG>/games/cod-server</STRONG> using this "<STRONG>mode
0x750</STRONG>" you refer to? </FONT></FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>I would appreciate this. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT><FONT face=Arial size=2>=o)</FONT></DIV>
<DIV><FONT face=Arial><BR><FONT size=2></FONT></FONT></DIV></FONT>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=defilm@acm.org href="mailto:defilm@acm.org">Mark J. DeFilippis</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=cod@icculus.org
href="mailto:cod@icculus.org">cod@icculus.org</A> ; <A title=cod@icculus.org
href="mailto:cod@icculus.org">cod@icculus.org</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Saturday, December 18, 2004 3:58
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [cod] Dr. D - This ones for
you.</DIV>
<DIV><BR></DIV><BR>Recently some updates were brought to my attention
with<BR>regards to the sticky bit, and memory utilization (mbuf
allocation),<BR>and I did a little research...<BR><BR>The current writing
referenced by many on this forum, is more semantics<BR>than anything
else. Dating back prior to Unix V.3, Memory was very<BR>expensive.
Hence, there was not often enough memory to keep all executable<BR>(text)
pages in memory, and in severe cases, entire programs were swapped in<BR>and
out, text pages were more often paged in and out as the CPU ran out of<BR>text
to execute on behalf of a program. The CPU would request text code
be<BR>read from swap, halt the program, put it on the I/O stack (waiting I/O),
and move<BR>on to the next program for a set period of time, for CPU
allocation. When the<BR>I/O was performed asynchronously, and the text
copied in to memory, the program<BR>put in Wait I/O state" was put in
"Runnable state". Cpu would then continue execution.<BR><BR>As memory
became cheaper, Unix systems were able to store more text pages<BR>in RAM, and
in fact, you based your memory purchase on how large the applications<BR>were
going to be for the user base. This way you could assure that all code could
fit<BR>in memory, and hence Page swapping and Text page swapin, swapout was a
No-No, and<BR>a execution killer. (Today, these swap variables still exist in
vmstat, as it is not<BR>impossible to begin swapping text pages, and full page
swapping is just not done.<BR><BR>Today, with cheap ram, and faster disks,
executable text is not even copied to SWAP<BR>anymore, since the executable
code is made of two parts.. The local text portion of the<BR>code, and the
shared link libraries reference. Between memory size, and buffer
sizes<BR>entire application text pages are loaded. No more swapping, no
more paging text pages,<BR>no more load from swap, so the sticky bit is
irrelevant.<BR><BR>In reality, this was really the case under systems as old
as Unix V.3.2 as Unix moved<BR>to the Intel platform. When we designed
applications, we made sure there was always<BR>enough ram. A paging program is
a "slow program". Gaming is much more sensitive<BR>as you
know.<BR><BR>Today, shared link libraries are loaded once. Your text code (The
portion that is not<BR>global link library based) is loaded in to ram.
However, please note, thing have not<BR>changed in relation to the memory
usage for multiple copies of a program!<BR><BR>If you load 7 copies of the
executable, and the executables all have different<BR>inodes, Linux has no way
of knowing any two executables are the same,<BR>hence it WILL load multiple
copies in to ram. This can be seen.<BR><BR>If you link them, they will all
have the same inode value. Linux will load<BR>the code once using the same
text pointers when executing. So there is<BR>still value in using links to the
same inode when invoking the same program<BR>multiple times!<BR><BR><BR>In
your specific case, I am assuming from the alternate path, that the
executables<BR>are on one partition, and the users homes on another. If
you link across file<BR>systems, of course Linux will make a copy, and all
will have separate inode<BR>values, and you are SOL. This of course
consumes more memory, and more disk.<BR>Likely no big deal on disk, but memory
is still expensive to lease on servers!<BR>($50/mo from 1-2GB upgrade is a
lot).<BR><BR>If I were in your shoes, I would make a local copy of the
executable owned by<BR>the admin name whatever it is (not hopefully root), and
link it to each users<BR>directory. The users would be in the same
GID. You should make the executable<BR>mode 0x750, and owned by the
admin, group GID, so it is RWX by you the admin, <BR>while it is only readable
and executable, but not writable by the Group of users with<BR>group GID.
There is no need for it to be.<BR><BR>You get to take advantage of the same
inode value which is still more efficient in<BR>virtual machine based OS's
today in it's memory utilization.. such as Linux.<BR><BR>If you think about
it, it really makes sense. Linux knows nothing from filenames.<BR>It
knows Inode numbers (or index hash values in to the file descriptor
block.<BR>Same inode, it knows is same file, same code text. Different
inode, it knows<BR>nothing that the two programs running in memory are the
same code...<BR><BR>This is what I would do. I would expect largely many of
the server admins do indeed<BR>have their virtual server hosting set up
similarly when it comes to the COD executable...<BR><BR>I hope this
help. My thanks to those that pointed at the recent updates to
mbuf()<BR>allocation via malloc(), and kernel references.<BR><BR>Dr.
D<BR><BR><BR>At 10:45 AM 12/17/2004, Jay Vasallo wrote:<BR>
<BLOCKQUOTE class=cite cite="" type="cite">OK, How do I do this usuing your
method?<BR><BR><BR>----- Original Message ----- From: "Jay Vasallo"
<jayco1@charter.net><BR>To: <cod@icculus.org><BR>Sent: Friday,
December 17, 2004 9:30 AM<BR>Subject: [cod] Dr. D - This ones for
you.<BR><BR><BR>
<BLOCKQUOTE class=cite cite="" type="cite">Dr. D Wrote:<BR><BR>"Because 10
servers your way will load 10 copies in to swap, 10<BR>copies in to
memory, etc. Using the method of symlinks, which<BR>is really
nothing more than a link in the super block. The super
block<BR>maintains all information about which disk blocks belong tio
which<BR>files. For your simlink the new file entry simply gets the
same<BR>inode id copied to the table. Same inode, same code...
With<BR>shared libraries in memory, for the 10 servers only 1
copy<BR>exists in swap. Only 1 copy exists in memory.<BR><BR>I hope this
is more clear."<BR><BR>Dr. D<BR><BR><BR>Can you please explain this a
little further:<BR>Lets say I have my games
in:<BR>/games/cod-server/coduo_lxded<BR>and the useres
at:<BR>/home/user/cod-server/uo<BR><BR><BR>How does help this help this
situation.<BR><BR>Thanks
=o)<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>----- Original
Message ----- From: "Luke Antins (Firestorm Games)"
<luke@firestorm-games.net><BR>To: <cod@icculus.org><BR>Sent:
Friday, December 17, 2004 12:15 AM<BR>Subject: Re: [cod] COD 1.5 Patch is
out! (any news on the linux server?)<BR><BR><BR>Hi Ryan.<BR><BR>Thanks for
the update! Its much appreciated.<BR>When you say Friday, do you mean this
Friday? (ie today for us in Europe) 17/12/2004 or do you mean
24/12/2004.<BR><BR>Just want to make sure because of the timezones
;¬)<BR><BR>Kind Regards<BR>Luke Antins<BR>--<BR>[Firestorm Games]<BR><A
href="http://www.firestorm-games.net/"
eudora="autourl">http://www.firestorm-games.net/</A><BR><BR>On Fri, 17 Dec
2004, Ryan C. Gordon wrote:<BR><BR>
<BLOCKQUOTE class=cite cite="" type="cite"><BR>
<BLOCKQUOTE class=cite cite="" type="cite">Anyone have any idea when
the Linux server will be out?</BLOCKQUOTE><BR>As early as Friday, I
hope. It was supposed to be simultaneous, but we ran<BR>into a
last-minute snag with a pure-server issue and the Windows version
got<BR>shipped anyhow...mostly we're just juggling data files around to
get the<BR>packages to match up at this
point.<BR><BR>--ryan.<BR><BR></BLOCKQUOTE><BR><BR></BLOCKQUOTE><BR></BLOCKQUOTE><X-SIGSEP>
<P></X-SIGSEP><TT>S1-------------------------------------------------------------------------------<BR>Mark
J. DeFilippis, Ph. D EE
defilm@acm.org<BR>
defilm@ieee.org<BR><BR><BR></TT></P></BLOCKQUOTE></BODY></HTML>