Frequently Asked Questions About XMX Version 1


Contents:

  1. Everything works fine except the colors on the slave machines are all messed up. What's wrong?
  2. Everthing works fine except that windows appear in the wrong place. What's wrong?
  3. How do I set up an XMX session?
  4. How do I set up X terminals to use with XMX?
  5. Why does XMX grab the WHOLE default root colormap on slaves?
  6. Has anyone compiled XMX under HPUX?

1) Everything works fine except the colors on the slave machines are all messed up. What's wrong?

XMX expects to have access to the entire default root colormap of each slave machine. It performs an AllocColorCells request for the whole colormap. XMX is unable to keep colors in synch on any display for which this request fails.

The AllocColorCells request typically fails because some other X client has allocated one or more colors before XMX tries to. See Question 3.

2) Everthing works fine except that windows appear in the wrong place. What's wrong?

You have a window manager connected directly to a slave X server. You can't do that. See Question 3.

3) How do I set up an XMX session?

XMX can be expected to work reliably only when it is the only client using resources on each of the displays to which it connects.

That means that each machine participating in the shared session, both master and slaves, should have only an X server running - no window manager and no other clients.

You could start up X by logging into each machine (using the console or a remote shell) and simply typing "X". But those new X servers would not allow XMX to connect, due to host access permissions.

If you try to run "xhost +", to change the server's access control, it will immediately revert, because X servers reset themselves whenever they have no client connections (and these servers do not).

The xnull utility, which is included in the XMX distribution, provides a simple way to start up an XMX-ready X server on each host. Xnull is an XMX-clean client that modifies the X server access permissions and then remains connected to ensure that XMX is able to connect. See the man page included with xnull for more details and examples.

4) How do I set up X terminals to use with XMX?

I don't know - we don't have any color X terminals here. If you can induce the machine to run only its built-in X server and some innocuous application that allocates no colors (like xnull), then you should be all set.

5) Why does XMX grab the WHOLE default root colormap on slaves?

When an X client allocates a color, it involves a round trip (request-reply) to the server. The colormap index (pixel value) returned is not predictable, and would require XMX to map pixel values in client requests.

The problem with mapping is that pixel values are manipulated as bitmasks by raster operations (GCFunction). So the result of any drawing request by a client depends, potentially, on the state of the *entire* colormap being used, not just the foreground and background colors. Also, PutImage and GetImage requests consist of pixel data, so, if mapped, have to be massaged individually for each server - a real bottleneck. Providing a correct mapping is an onerous task.

Instead, XMX simply allocates writable the entire root colormap (when using a PseudoColor visual) of each "slave" server. Then, color allocation is done only on the "master" server. The resulting pixel values are stored (StoreColor) on the slaves. Since StoreColor does not generate a reply, this is more efficient, and it also ensures that colormaps are exactly in synch and obviates the need to do any pixel mapping.

The drawback is that XMX allocates the whole root colormap, so it can't coexist with other color-allocating applications (it can't coexist with other applications for other reasons, too). And if it fails to allocate all the cells in the root colormap (AllocColorCells fails) then XMX makes no attempt to synchronize colors.

6) Has anyone compiled XMX under HPUX?

Yes. There is a user-contributed patch on our archive named ftp://ftp.cs.brown.edu/pub/xmx/xmx-1.1.hp-patch.Z.
Home Software XMX Up
John Bazik