xref: /aosp_15_r20/system/extras/tests/schedtest/schedtest.c (revision 288bf5226967eb3dac5cce6c939ccc2a7f2b4fe5)
1*288bf522SAndroid Build Coastguard Worker /*
2*288bf522SAndroid Build Coastguard Worker ** Copyright 2008 The Android Open Source Project
3*288bf522SAndroid Build Coastguard Worker **
4*288bf522SAndroid Build Coastguard Worker ** Licensed under the Apache License, Version 2.0 (the "License");
5*288bf522SAndroid Build Coastguard Worker ** you may not use this file except in compliance with the License.
6*288bf522SAndroid Build Coastguard Worker ** You may obtain a copy of the License at
7*288bf522SAndroid Build Coastguard Worker **
8*288bf522SAndroid Build Coastguard Worker **     http://www.apache.org/licenses/LICENSE-2.0
9*288bf522SAndroid Build Coastguard Worker **
10*288bf522SAndroid Build Coastguard Worker ** Unless required by applicable law or agreed to in writing, software
11*288bf522SAndroid Build Coastguard Worker ** distributed under the License is distributed on an "AS IS" BASIS,
12*288bf522SAndroid Build Coastguard Worker ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*288bf522SAndroid Build Coastguard Worker ** See the License for the specific language governing permissions and
14*288bf522SAndroid Build Coastguard Worker ** limitations under the License.
15*288bf522SAndroid Build Coastguard Worker */
16*288bf522SAndroid Build Coastguard Worker 
17*288bf522SAndroid Build Coastguard Worker #include <stdlib.h>
18*288bf522SAndroid Build Coastguard Worker #include <stdio.h>
19*288bf522SAndroid Build Coastguard Worker #include <errno.h>
20*288bf522SAndroid Build Coastguard Worker #include <sys/time.h>
21*288bf522SAndroid Build Coastguard Worker #include <sys/uio.h>
22*288bf522SAndroid Build Coastguard Worker #include <unistd.h>
23*288bf522SAndroid Build Coastguard Worker 
main(int argc,char ** argv)24*288bf522SAndroid Build Coastguard Worker int main(int argc, char **argv) {
25*288bf522SAndroid Build Coastguard Worker     int i;
26*288bf522SAndroid Build Coastguard Worker 
27*288bf522SAndroid Build Coastguard Worker     struct timeval tv1;
28*288bf522SAndroid Build Coastguard Worker     struct timeval tv2;
29*288bf522SAndroid Build Coastguard Worker     long max = 0;
30*288bf522SAndroid Build Coastguard Worker     long avg = 0;
31*288bf522SAndroid Build Coastguard Worker 
32*288bf522SAndroid Build Coastguard Worker     for(i = 1; ; i++) {
33*288bf522SAndroid Build Coastguard Worker         gettimeofday(&tv1, NULL);
34*288bf522SAndroid Build Coastguard Worker         usleep(1000);
35*288bf522SAndroid Build Coastguard Worker         gettimeofday(&tv2, NULL);
36*288bf522SAndroid Build Coastguard Worker 
37*288bf522SAndroid Build Coastguard Worker         long usec = (tv2.tv_sec - tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec;
38*288bf522SAndroid Build Coastguard Worker         avg += usec;
39*288bf522SAndroid Build Coastguard Worker 
40*288bf522SAndroid Build Coastguard Worker         if (usec > max) max = usec;
41*288bf522SAndroid Build Coastguard Worker         if (!(i % 1000)) {
42*288bf522SAndroid Build Coastguard Worker             avg /= 1000;
43*288bf522SAndroid Build Coastguard Worker             printf("max %ld\tavg %ld\n", max, avg);
44*288bf522SAndroid Build Coastguard Worker             max = 0;
45*288bf522SAndroid Build Coastguard Worker             avg = 0;
46*288bf522SAndroid Build Coastguard Worker         }
47*288bf522SAndroid Build Coastguard Worker     }
48*288bf522SAndroid Build Coastguard Worker     return 0;
49*288bf522SAndroid Build Coastguard Worker }
50