viterbi
Member level 1
Dear friends,
I am working on ARM9 core with Montavista Linux and I am a new comer in Linux. I have a requirement to find out the arm load (MIPS,Mega cycle) that is taken for the network layer while running a specific application. This is basically a audio video application that sends RTP packets to UDP and it is further transfered through the PPP layer to the other board and receives it back.
What I have done :
I tried to put kernel printfs in the udp and ppp layer to find out at least the time taken for both layer. I had a strange observation that some times the time elapsed in this layer are very high. Normally it is taking 80 -90 microseconds in UDP layer (between udp_send() & ip_build_Xmit() functions) but some times it increases to 9000 microseconds. I am using do_gettimeofday to get the system time for the time calculation.
My queries are
1. Why I am getting some huge values in some regular intervels. Is it because scheduler is giving time to some other high priority tasks that eats up the time?
2. Is there any better way to find out the load in each layer of TCP/IP stack and PPP layer in a given scenario.(May be while running some other application).
3.Is there any better way to find the time from the kernel space other than do_gettimeofday().
4.Is there any ways where I can directly pass the timing information to user space and process it later so that printk() will not be called and hence the delay in the application will be less. I hope that will give more accurate info.
5. I have an ETM Trace module and board is having trace support. Will it help me to achieve the objective?
I am sure some of you would have done some work on the same and I will be really happy if you can share the information.
Thanks and regards
I am working on ARM9 core with Montavista Linux and I am a new comer in Linux. I have a requirement to find out the arm load (MIPS,Mega cycle) that is taken for the network layer while running a specific application. This is basically a audio video application that sends RTP packets to UDP and it is further transfered through the PPP layer to the other board and receives it back.
What I have done :
I tried to put kernel printfs in the udp and ppp layer to find out at least the time taken for both layer. I had a strange observation that some times the time elapsed in this layer are very high. Normally it is taking 80 -90 microseconds in UDP layer (between udp_send() & ip_build_Xmit() functions) but some times it increases to 9000 microseconds. I am using do_gettimeofday to get the system time for the time calculation.
My queries are
1. Why I am getting some huge values in some regular intervels. Is it because scheduler is giving time to some other high priority tasks that eats up the time?
2. Is there any better way to find out the load in each layer of TCP/IP stack and PPP layer in a given scenario.(May be while running some other application).
3.Is there any better way to find the time from the kernel space other than do_gettimeofday().
4.Is there any ways where I can directly pass the timing information to user space and process it later so that printk() will not be called and hence the delay in the application will be less. I hope that will give more accurate info.
5. I have an ETM Trace module and board is having trace support. Will it help me to achieve the objective?
I am sure some of you would have done some work on the same and I will be really happy if you can share the information.
Thanks and regards