Lines Matching refs:me

65     PERF_RT_Private *me =
68 if (me)
73 me->needSteadyState = (perf->ulID & 0xff) == 'T';
74 me->steadyState = 0;
77 me->maxDRate = MAX_RATES_TRACKED;
78 me->dRate = malloc(sizeof(PERF_RTdata_rate) * me->maxDRate);
79 succeed = succeed && me->dRate;
81 me->decoder = (perf->ulID == PERF_FOURS("VD__") || perf->ulID == PERF_FOURS("VD_T"));
82 me->encoder = (perf->ulID == PERF_FOURS("VE__") || perf->ulID == PERF_FOURS("VE_T"));
83 me->nDRate = 0;
88 me->dSTS = malloc(sizeof(PERF_RTdata_sts));
89 succeed = succeed && me->dSTS;
90 if (me->dSTS)
92 init_delay(&me->dSTS->dBurst, -1); /* no first timestamp yet */
93 init_delay(&me->dSTS->dABurst, 0);
94 init_delay(&me->dSTS->dBurst2, 0);
95 init_delay(&me->dSTS->dABurst2, 0);
96 init_delay(&me->dSTS->dSingle, -1); /* no first timestamp yet */
97 me->dSTS->size_max = me->dSTS->size_min = me->dSTS->capturing = 0;
102 me->dSTS = NULL;
109 if (succeed && !uptime_started && me->needSteadyState &&
112 me->dUptime = malloc(sizeof(PERF_RTdata_uptime));
113 succeed = succeed && me->dUptime;
118 me->dUptime->measuring = 0;
119 me->dUptime->last_idletime = me->dUptime->last_uptime = 0;
120 me->dUptime->start_idletime = me->dUptime->start_uptime = 0;
121 me->dUptime->success = 1;
122 me->dUptime->xx = me->dUptime->x = me->dUptime->n = 0;
123 TIME_GET(me->dUptime->last_reporting);
128 me->dUptime = NULL;
132 me->summary = config->rt_summary != 0;
133 me->debug = config->rt_debug & 0x1FF;
134 me->detailed = (config->rt_detailed > 2) ? 2 : (int) config->rt_detailed;
136 me->granularity = (config->rt_granularity < 1) ? 1 :
139 me->granularity *= 1000000; /* convert to microsecs */
140 TIME_COPY(me->first_time, perf->time);
144 if (succeed && !me->detailed)
149 me->only_moduleandflags = PERF_FlagSending | PERF_FlagFrame | PERF_ModuleHardware;
154 me->only_moduleandflags = PERF_FlagSending | PERF_FlagFrame | PERF_ModuleLLMM;
159 me->only_moduleandflags = PERF_FlagSending | PERF_FlagFrame | PERF_ModuleLLMM;
164 me->only_moduleandflags = PERF_FlagReceived | PERF_FlagFrame | PERF_ModuleHardware;
169 free(me->dRate);
170 me->dRate = NULL;
171 me->maxDRate = 0;
200 me->fRt = fOut;
211 me = NULL;
215 return(me);
220 PERF_RT_Private *me = perf->cip.pRT;
223 if (me->fRt && me->fRt != stdout &&
224 me->fRt != stderr) fclose(me->fRt);
227 free(me->dRate); me->dRate = NULL;
228 free(me->dUptime); me->dUptime = NULL;
229 free(me->dSTS); me->dSTS = NULL;
232 free(me);
318 void count_temporal_rate(unsigned long ID, PERF_RT_Private *me, PERF_RTdata_rate *dRate)
322 if (me->debug)
324 fprintf(me->fRt, "rtPERF: [%ld] ", TIME_DELTA(dRate->last_reporting, me->first_time)/1000000);
325 print_rate_info(me->fRt,
331 fprintf(me->fRt, ": %.3g fps (s=%.3g)\n", x, s);
362 static void count_delay(PERF_RT_Private *me, char *tag, PERF_RTdata_delay *dDelay, long n0)
364 fprintf(me->fRt, "rtPERF: %s[0x%lX]: ", tag, me->dSTS->size_min);
373 fprintf(me->fRt, "%.3g +- %.3g s (%ld samples)\n",
378 fprintf(me->fRt, "%.3g\n", x);
383 fprintf(me->fRt, "UNABLE TO CALCULATE\n");
393 PERF_RT_Private *me = perf->cip.pRT;
396 if (me->needSteadyState)
400 if (!me->steadyState)
403 start_stop_uptime(me->dUptime, 1);
407 for (i = 0; i < me->nDRate; i++)
409 me->dRate[i].txx = me->dRate[i].tx = me->dRate[i].tn = me->dRate[i].tn0 = 0;
410 me->dRate[i].skip = 0;
414 me->steadyState = 1;
418 if (me->steadyState)
421 start_stop_uptime(me->dUptime, 0);
425 for (i = 0; i < me->nDRate; i++)
428 if (me->dRate[i].tn0 >= MIN_FRAMES_FOR_RATE ||
429 (me->dRate[i].tn && me->debug & 4))
431 count_temporal_rate(perf->ulID, me, me->dRate + i);
436 me->steadyState = 0;
445 start_stop_uptime(me->dUptime, 0);
457 PERF_RT_Private *me = perf->cip.pRT;
465 if (me->detailed < 2 && module == PERF_ModuleHLMM)
470 int rate = (me->detailed == 2) ||
471 (me->detailed == 0 &&
472 (eModuleAndFlags == me->only_moduleandflags && ulSize >= 8)) ||
473 (me->detailed == 1 &&
476 if (rate && me->dRate && (!me->needSteadyState || me->steadyState))
482 if ((me->encoder || me->decoder) && !PERF_IsXfering(sending))
491 if ((me->encoder && (sending == PERF_FlagSending)) ||
492 (me->decoder && (sending == PERF_FlagReceived)))
500 for (i=0; i < me->nDRate; i++)
502 if (me->dRate[i].modulesAndFlags == eModuleAndFlags &&
503 me->dRate[i].size == size) break;
504 if (j < 0 || me->dRate[i].n < me->dRate[j].n)
512 if (i == me->nDRate)
515 if (i < me->maxDRate)
517 me->nDRate++;
520 else if (j < 0 || me->dRate[j].n < 2)
522 i = me->maxDRate;
530 if (i < me->maxDRate)
532 me->dRate[i].modulesAndFlags = eModuleAndFlags;
533 me->dRate[i].size = size;
534 me->dRate[i].xx = me->dRate[i].x = me->dRate[i].n = 0;
535 me->dRate[i].txx = me->dRate[i].tx = me->dRate[i].tn = me->dRate[i].tn0 = 0;
536 me->dRate[i].axx = me->dRate[i].ax = me->dRate[i].an = 0;
537 me->dRate[i].skip = me->needSteadyState ? 0 : 4;
538 TIME_COPY(me->dRate[i].last_timestamp, perf->time);
539 TIME_COPY(me->dRate[i].last_reporting, perf->time);
544 if (me->dRate[i].skip == 0)
547 int steps = TIME_DELTA(perf->time, me->dRate[i].last_reporting);
548 if (steps >= me->granularity)
550 steps /= me->granularity;
556 if (!(me->debug & 4) &&
557 (me->dRate[i].tn0 < MIN_FRAMES_FOR_RATE) &&
558 (me->dRate[i].tn < me->granularity * steps))
560 if (me->debug & 256)
562 fprintf(me->fRt, "rtPERF: [%ld] IGNORED (steps=%d, tn0=%ld, tn=%ld)\n",
563 TIME_DELTA(me->dRate[i].last_reporting, me->first_time)/1000000,
564 steps, me->dRate[i].tn0, me->dRate[i].tn);
566 me->dRate[i].txx = me->dRate[i].tx = me->dRate[i].tn = me->dRate[i].tn0 = 0;
568 TIME_INCREASE(me->dRate[i].last_reporting, me->granularity * steps);
571 else if (me->debug & 256)
573 fprintf(me->fRt, "rtPERF: [%ld] not-ignored (steps=%d, tn0=%ld, tn=%ld)\n",
574 TIME_DELTA(me->dRate[i].last_reporting, me->first_time)/1000000,
575 steps, me->dRate[i].tn0, me->dRate[i].tn);
583 count_temporal_rate(perf->ulID, me, me->dRate + i);
585 TIME_INCREASE(me->dRate[i].last_reporting, me->granularity);
591 unsigned long delta = TIME_DELTA(perf->time, me->dRate[i].last_timestamp);
592 me->dRate[i].x += delta;
593 me->dRate[i].tx += delta;
594 me->dRate[i].xx += delta * (double) delta;
595 me->dRate[i].txx += delta * (double) delta;
596 me->dRate[i].n ++;
597 me->dRate[i].tn ++;
598 me->dRate[i].tn0 ++;
602 me->dRate[i].skip--;
603 if (me->dRate[i].skip == 0)
605 TIME_COPY(me->dRate[i].last_reporting, perf->time);
606 me->dRate[i].txx = me->dRate[i].tx = me->dRate[i].tn = 0;
610 TIME_COPY(me->dRate[i].last_timestamp, perf->time);
615 if (me->dSTS)
622 if (ulSize < me->dSTS->size_min ||
623 ulSize > me->dSTS->size_max)
626 if (me->debug)
628 if (me->dSTS->dBurst2.n > 0)
630 count_delay(me, "Modified burst shot-to-shot", &me->dSTS->dBurst2, 0);
632 if (me->dSTS->dBurst.n > 0)
634 count_delay(me, "Raw burst shot-to-shot", &me->dSTS->dBurst, -1);
638 me->dSTS->dBurst.n = -1;
639 me->dSTS->dBurst2.n = 0;
642 me->dSTS->size_min = ulSize > 2048 ? ulSize - 2048 : 0;
643 me->dSTS->size_max = ulSize;
649 me->dSTS->capturing = 1;
654 me->dSTS->capturing = 0;
661 if (me->dSTS->capturing &&
662 ulSize >= me->dSTS->size_min &&
663 ulSize <= me->dSTS->size_max)
667 if (me->dSTS->dBurst.n > 1)
670 if (me->dSTS->dBurst.n > 2)
672 delay_add(&me->dSTS->dBurst2, me->dSTS->last_burst);
673 delay_add(&me->dSTS->dABurst2, me->dSTS->last_burst);
674 if (me->debug)
676 fprintf(me->fRt, "rtPERF: [%ld] Modified burst shot-to-shot[0x%lX]: %.3g s\n",
677 me->dSTS->dBurst2.n, me->dSTS->size_min, 1e-6 * me->dSTS->last_burst);
680 me->dSTS->last_burst = TIME_DELTA(perf->time, me->dSTS->dBurst.last_timestamp);
682 else if (me->dSTS->dBurst.n < 0)
686 if (me->dSTS->dSingle.n >= 0)
688 if (me->debug)
690 fprintf(me->fRt, "rtPERF: [#%ld] Single shot-to-shot[0x%lX]: %.3g s\n",
691 me->dSTS->dSingle.n + 1, me->dSTS->size_min, 1e-6 * TIME_DELTA(perf->time, me->dSTS->dSingle.last_timestamp));
693 delay_delta(&me->dSTS->dSingle, perf);
697 if (me->dSTS->dBurst.n >= 0)
699 if (me->debug)
701 fprintf(me->fRt, "rtPERF: [#%ld] Raw burst shot-to-shot[0x%lX]: %.3g s\n",
702 me->dSTS->dBurst.n + 1, me->dSTS->size_min, 1e-6 * TIME_DELTA(perf->time, me->dSTS->dBurst.last_timestamp));
704 delay_add(&me->dSTS->dABurst, TIME_DELTA(perf->time, me->dSTS->dBurst.last_timestamp));
706 delay_delta(&me->dSTS->dBurst, perf);
709 TIME_COPY(me->dSTS->dSingle.last_timestamp, perf->time);
710 if (me->dSTS->dSingle.n < 0)
712 me->dSTS->dSingle.n = 0; /* captured first time stamp */
719 if (0 && me->dUptime && me->dUptime->measuring)
722 int steps = TIME_DELTA(perf->time, me->dUptime->last_reporting);
723 if (steps >= me->granularity)
725 steps /= me->granularity;
731 if (uptime > 0 && me->dUptime->success)
733 me->dUptime->last_idletime = idletime - me->dUptime->last_idletime;
734 me->dUptime->last_uptime = uptime - me->dUptime->last_uptime;
735 if (me->dUptime->last_uptime > 0)
737 load = 100. * ((me->dUptime->last_uptime - me->dUptime->last_idletime) /
738 me->dUptime->last_uptime);
740 me->dUptime->n += steps;
741 me->dUptime->x += load * steps;
742 me->dUptime->xx += load * load * steps;
746 TIME_INCREASE(me->dUptime->last_reporting, steps * me->granularity);
748 if (uptime > 0 && me->dUptime->success)
750 me->dUptime->last_uptime = uptime;
751 me->dUptime->last_idletime = idletime;
752 if (me->debug)
754 fprintf(me->fRt, "rtPERF: [%ld] ARM CPU-load is %.3g%%\n",
755 TIME_DELTA(perf->time, me->first_time)/1000000,
761 me->dUptime->success = 0;
773 /* PERF_RT_Private *me = perf->cip.pRT; */
783 /* PERF_RT_Private *me = perf->cip.pRT; */
794 /* PERF_RT_Private *me = perf->cip.pRT; */
804 /* PERF_RT_Private *me = perf->cip.pRT; */
813 PERF_RT_Private *me = perf->cip.pRT;
816 if (me->summary)
819 if (me->dUptime)
822 start_stop_uptime(me->dUptime, 0);
824 fprintf(me->fRt, "rtPERF: ARM CPU-load for%s %c%c%c%c component: ",
825 me->needSteadyState ? " steady state of" : "",
828 if (me->dUptime->success && me->dUptime->start_uptime)
830 double load = (100. * (me->dUptime->start_uptime -
831 me->dUptime->start_idletime) /
832 me->dUptime->start_uptime);
833 if (me->dUptime->n)
835 double x = me->dUptime->x / me->dUptime->n;
836 double xx = me->dUptime->xx / me->dUptime->n;
838 if (me->debug & 2)
840 fprintf(me->fRt, ": %.3g +- %.3g%%\n"
846 fprintf(me->fRt, ": %.3g +- %.3g%%\n",
852 fprintf(me->fRt, "%.3g%%\n", load);
857 fprintf(me->fRt, "FAILED TO CALCULATE\n");
862 if (me->nDRate)
865 for (i = 0; i < me->nDRate; i++)
867 if (me->dRate[i].n >= MIN_FRAMES_FOR_RATE &&
868 ((me->debug & 4) || me->dRate[i].tn0 >= MIN_FRAMES_FOR_RATE))
871 double x = me->dRate[i].x * 1e-6 / me->dRate[i].n;
873 double s = (me->dRate[i].xx ?
874 (me->dRate[i].x * (double) me->dRate[i].x /
875 me->dRate[i].xx / me->dRate[i].n) : 1);
877 fprintf(me->fRt, "rtPERF: ");
878 print_rate_info(me->fRt,
879 perf->ulID, me->dRate[i].modulesAndFlags,
880 me->dRate[i].size, me->dRate[i].n);
883 if (me->dRate[i].an)
885 double x2 = me->dRate[i].ax / me->dRate[i].an;
886 double xx = me->dRate[i].axx / me->dRate[i].an;
888 if (me->debug & 2)
890 fprintf(me->fRt, ": %.3g +- %.3g fps (s=%.3g)\n"
896 fprintf(me->fRt, ": %.3g +- %.3g fps (s=%.3g)\n",
902 fprintf(me->fRt, ": %.3g fps (s=%.3g)\n", 1/x, s);
907 fprintf(me->fRt, ": FAILED TO CALCULATE\n");
914 if (me->dSTS)
916 if (me->dSTS->dABurst2.n > 0)
918 count_delay(me, "Avg. modified burst shot-to-shot", &me->dSTS->dABurst2, 0);
920 if (me->dSTS->dABurst.n > 0)
922 count_delay(me, "Avg. raw burst shot-to-shot", &me->dSTS->dABurst, 0);
924 if (me->dSTS->dSingle.n > 0)
926 count_delay(me, "Avg. single shot-to-shot", &me->dSTS->dSingle, -1);