前輩們,怎么查看linux系統平臺的設備為什么在一個時間段內,突然之間有一個兩秒的間隔,就是有兩條log資訊,這兩條log資訊是緊挨著輸出的,中間沒有其他任何的log資訊,但是通過查看這兩條log資訊的時間戳,時間戳顯示兩條log資訊的輸出時間間隔竟然是2秒,這兩秒的間隔不知道是怎么產生的,中間沒有任何log資訊輸出,不知道系統和CPU到底在這兩秒時間內做了什么,通過在系統平臺上創建一個級別非常高的task,然后每個10毫秒輸出一條log資訊,這樣看看能否看到2秒內是否可以輸出這條log資訊,發現這樣做沒有人任何的作用,兩條時間間隔2秒的log資訊之間,還是沒有任何的其他的log資訊,前輩們有什么方法能夠指點一下晚輩看看怎么才能知道2秒內系統或者CPU到底在做什么?
晚輩非常感謝,這個問題已經困擾四天了。
uj5u.com熱心網友回復:
說得個不清不楚的,是心跳檢查吧uj5u.com熱心網友回復:
抱歉,問題是這樣的:1.是一個列印設備,系統是linux系統
2.做一個復印的任務。
3.需要量測復印任務從開始到結束的耗費的時間。
4.比如規定的時間是6s完成整個任務流程。
5.通過分析任務輸出的log資訊,發現時間是8.5s,沒有達到規定的要求。
6.然后分析log發現,有兩行log資訊是挨著輸出的,兩行中間沒有任何其他的log資訊,但是兩條log資訊的時間戳卻是間隔2.2s。
7.整個任務的程序中,會有三個行程進行互動,是一個主行程進行初始化,然后通過system函式創建其他兩個行程,通過system創建的兩個行程會把大約200M的資料通過塊記憶體和callback的形式回圈傳遞給主行程。
8.通過system函式創建的兩個行程在把產生的資料傳遞完成后,就會結束自己任務,但是在結束的程序中會出現系統有2.2s的時間任何反應都沒有的現象發生。
9.行程內部有通過信號量的方式行程臨界區的保護,但是行程與行程之間的互動是通過發送message的方式進行通知的。
10.關于目前不同模塊之間的行程通信方式不是很清楚,因為封閉和保密性太強。
11.以上就是流程和現象,現在的問題是,不知道如何debug出2.2s內系統到底在干什么。目前懷疑是行程之間的通信問題和system函式創建的行程方式導致的,但是不知道該用何種手段進行debug定位。
非常感謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/94640.html
標籤:CPU和硬件區
上一篇:SPI驅動向flash中燒寫bin檔案,寫完之后從flash讀出來為何與原檔案內容不一致
下一篇:初學大資料
