Hello,

1. I have a simple one-threaded tcp server written in Java. I try to 
measure its receive-and-process-response latency. More preceisely, the 
client sends (by loopback) the 128-bytes message with a timestamp in the 
header. The server receives a message, reads a content byte by byte and 
compute a difference between `now` and the timestamp from the header. The 
difference is more or less 6μs.

Now, I am trying to make it faster.

But, firstly I would like to examine a scheduling issue. So, I've collected 
results with:

perf sched record -p <PID> -- sleep 10

and then:

perf sched timehist -V

Excerpt from the result is presented below: (I've filtered it for my server 
thread)

                 
                                                                    wait 
time  sch delay   run time
   time                  cpu    task name [tid/pid]                 (msec) 
    (msec)     (msec)
--------------- ------  ---------  ------------------------------  --------- 
 ---------  ---------

   1849.531842  [0002]    s        java[7340/7338]                     0.000 
     0.000     56.003 
   21849.587844 [0002]    s        java[7340/7338]                     0.000 
     0.000     56.001 
   21849.607838 [0002]    s        java[7340/7338]                     0.000 
     0.000     19.994 
   21849.615836 [0002]    s        java[7340/7338]                     0.000 
     0.000      7.998 
   
...............................................................................................
   21849.691834 [0002]    s        java[7340/7338]                     0.000 
     0.000      4.000 
   21849.703837 [0001]   s         java[7340/7338]                     0.000 
     0.000     38.330 
   21849.711838 [0005]       s     java[7340/7338]                     0.000 
     0.000      0.000 
   21849.719834 [0005]       s     java[7340/7338]                     0.000 
     0.000      7.996 

My question is:
How is it possible that wait_time is always zero? After all, it is 
impossible. My CPU is multicore but there is a lot of processes (threads) 
that needs CPU time. How to interpret that? 
>From the other hand I am gonna to reduce CPU migration. Perhaps it will 
help :-)


2. The second issue is:

The excerpt from perf sched script

            java  7340 [002] 21848.012360:       sched:sched_wakeup: comm=java 
pid=7511 prio=120 target_cpu=005
            java  7340 [002] 21848.012375:       sched:sched_wakeup: comm=java 
pid=7511 prio=120 target_cpu=005
            java  7340 [002] 21848.012391:       sched:sched_wakeup: comm=java 
pid=7511 prio=120 target_cpu=005
            java  7340 [002] 21848.012406:       sched:sched_wakeup: comm=java 
pid=7511 prio=120 target_cpu=005
            
...................................................................................................
         swapper     0 [007] 21848.012554:       sched:sched_wakeup: comm=java 
pid=7377 prio=120 target_cpu=007
         swapper     0 [007] 21848.012554:       sched:sched_wakeup: comm=java 
pid=7377 prio=120 target_cpu=007
            
...................................................................................................
            java  7340 [002] 21848.012555:       sched:sched_wakeup: comm=java 
pid=7511 prio=120 target_cpu=005
            java  7377 [007] 21848.012582: sched:sched_stat_runtime: comm=java 
pid=7377 runtime=37420 [ns] vruntime=1628300433237 [ns]
            java  7340 [002] 21848.012585:       sched:sched_wakeup: comm=java 
pid=7511 prio=120 target_cpu=005
            java  7377 [007] 21848.012587:       sched:sched_switch: 
prev_comm=java prev_pid=7377 prev_prio=120 prev_state=S ==> next_comm=
swapper/7 next_pid=0 next_prio=120

Why my server receives sched_wakup that looks like spurious wakeups? What 
is a swapper?

-- 
You received this message because you are subscribed to the Google Groups 
"mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mechanical-sympathy+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to