Index: trunk/psphot/src/psphotOutput.c
===================================================================
--- trunk/psphot/src/psphotOutput.c	(revision 16048)
+++ trunk/psphot/src/psphotOutput.c	(revision 16250)
@@ -149,4 +149,6 @@
     psMetadataItemSupplement (header, recipe, "MSKY_NY");
 
+    psMetadataAddF32 (header, PS_LIST_TAIL, "DT_PHOT", PS_META_REPLACE, "elapsed psphot time", psTimerMark ("psphotReadout"));
+
     // XXX : don't require any of these about values to exist
     psErrorClear ();
Index: trunk/psphot/src/psphotReadout.c
===================================================================
--- trunk/psphot/src/psphotReadout.c	(revision 16048)
+++ trunk/psphot/src/psphotReadout.c	(revision 16250)
@@ -2,4 +2,10 @@
 
 bool psphotReadout(pmConfig *config, const pmFPAview *view) {
+
+    // measure the total elapsed time in psphotReadout.  XXX the current threading plan
+    // for psphot envisions threading within psphotReadout, not multiple threads calling
+    // the same psphotReadout.  In the current plan, this dtime is the elapsed time used
+    // jointly by the multiple threads, not the total time used by all threads.
+    psTimerStart ("psphotReadout");
 
     bool dump = (psTraceGetLevel("psphot") >= 6);
