dshr@SUN.COM (David Rosenthal) (01/06/88)
1) The space demands of a running X11 server are essentially unlimited - properties alone can cnsume arbitrary amounts of space. 2) The X11 sample server's current response to running out of alloc()-able memory is to crash. Fixing this problem is VERY HARD INDEED. I have sent MIT a set of fixes that allow the server to run with 1% of the alloc() and realloc() calls from dix and os/4.2bsd randomly failing, but they will not be in the next release, and may require significant further work. They involve substantial changes to internal interfaces in the server. Note that these fixes do NOT address the problems of running out of memory inside ddx. These are much harder to solve, and may involve significant performance penalties. If you don't believe me, grep for Xalloc in the ddx directories and see how many of the calls have their return values checked! 3) All existing clients respond to BadAlloc failures by exiting. Although the server stayed up with my fixes and a 1% failure rate of alloc()/realloc() calls, the environment was unusable. It would typically take 4 or 5 attempts to get an xterm working, and several of these attempts would typically cause the window manager to exit. 4) Numbers. Current Sun servers are about 512K text (with -g) and about 650K RSS, having alloc()ed say 300-400K. However, note that current servers do NOT implement retained windows or saveunders, and that production X11 servers will be very unpopular if they fail to do so (try popping a menu on xterm if you don't believe me). Given this, expect that on a non-VM system with a megapixel monochrome display the server might take 1.5 to 2Meg, and on a megapixel color display say 2 to 3 Meg MINIMUM for a usable system. With considerable work, some of this space could be shed to disk. Clients. Current Sun xterm (-g) is 150K text, and say 200K RSS having alloc()d say 100K. Bottom Line: Anyone thinking of implementing X11 on a non-VM system is in for a HUGE amount of work, both in modifying the sample server to survive in a memory limited environment, in modifying the clients to survive BadAlloc errors at random times, and in persuading their customers to put enough memory into their non-VM systems to make running the server and clients feasible. David.
TPC@BNR.BITNET (Thomas Chmara, T.P.) (01/07/88)
I am not sure that the xpert mailing list is the right place for this, but the xport mailing list keeps bouncing my messages... I am trying to determine the image sizes for X11, to determine requirements for our system. We are porting X11 to a proprietary SysV lookalike which does NOT support demand paging. I'm looking for the core size (I guess some would call it the "virtual size" -- the amount of physical memory required on a non-paging system) of each of the following: - the server (initially, the sample server) - XTERM - UWM Text sizes (i.e. sharable code) would also be appreciated. The above question leads to a few others, questions which might be a bit harder to answer: 1) What is the minimal port possible (i.e. smallest core size) for these? (I guess a better question is: has anyone done a more limited port?) 2) What am I giving up in going to such a port? 3) What kind of space requirements do backing store, bitmap fonts, etc add to my system? What kind of performance hit do I take if I don't have them? Many thanks... TPC@BNR ------------------------------ Tom Chmara Dept 7R33 Bell-Northern Research P.O. Box 3511 Stn C, Ottawa, ONTARIO, CANADA