[comp.windows.x] X11 Image Sizes -- need info

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