Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

dmxstat.c File Reference

#include "dmx.h"
#include "dmxstat.h"
#include "dmxlog.h"
#include "Xos.h"

Data Structures

struct  _DMXStatAvg
struct  _DMXStatInfo


typedef _DMXStatAvg DMXStatAvg


void dmxStatActivate (const char *interval, const char *displays)
DMXStatInfodmxStatAlloc (void)
void dmxStatFree (DMXStatInfo *pt)
void dmxStatSync (DMXScreenInfo *dmxScreen, struct timeval *stop, struct timeval *start, unsigned long pending)
void dmxStatInit (void)


int dmxStatInterval

Detailed Description

The DMX server code is written to call dmxSync() whenever an XSync() might be necessary. However, since XSync() requires a two way communication with the other X server, eliminating unnecessary XSync() calls is a key performance optimization. Support for this optimization is provided in #dmxsync.c. This file provides routines that evaluate this optimization by counting the number of XSync() calls and monitoring their latency. This functionality can be turned on using the -stat command-line parameter.

Typedef Documentation

typedef struct _DMXStatAvg DMXStatAvg

Used to compute a running average of value.

Function Documentation

void dmxStatActivate const char *  interval,
const char *  displays

Turn on XSync statistic gathering and printing. Print every interval seconds, with lines for the first displays. If interval is NULL, 1 will be used. If displays is NULL, 0 will be used (meaning a line for every display will be printed). Note that this function takes string arguments because it will usually be called from ddxProcessArgument in #dmxinit.c.

DMXStatInfo* dmxStatAlloc void   ) 

Allocate a DMXStatInfo structure.

void dmxStatFree DMXStatInfo pt  ) 

Free the memory used by a DMXStatInfo structure.

void dmxStatInit void   ) 

Try to initialize the statistic gathering and printing routines. Initialization only takes place if dmxStatActivate has already been called. We don't need the same generation protection that we used in dmxSyncInit because our timer is always on a queue -- hence, server generation will always free it.

void dmxStatSync DMXScreenInfo dmxScreen,
struct timeval *  stop,
struct timeval *  start,
unsigned long  pending

Note that a XSync() was just done on dmxScreen with the start and stop times (from gettimeofday()) and the number of pending-but-not-yet-processed XSync requests. This routine is called from #dmxDoSync in #dmxsync.c

Variable Documentation

int dmxStatInterval

Only for dmxstat.c and dmxsync.c

Generated June 13, 2004 for Distributed Multihead X by doxygen 1.3.4.