Android Kmsg时间戳将来为500毫秒
我试图跟踪系统何时唤醒和暂停(理想情况下是在单调时间开始和停止时),以便能够准确地将单调时间戳与实时时钟关联起来 在android上,首先想到的方法是监视kmsg的唤醒消息,并使用其时间戳作为相当准确的标记。由于我不确定这个时间戳的准确性,我决定也记录当前的单调时间 以下代码在独立可执行文件中运行Android Kmsg时间戳将来为500毫秒,android,c++,linux,Android,C++,Linux,我试图跟踪系统何时唤醒和暂停(理想情况下是在单调时间开始和停止时),以便能够准确地将单调时间戳与实时时钟关联起来 在android上,首先想到的方法是监视kmsg的唤醒消息,并使用其时间戳作为相当准确的标记。由于我不确定这个时间戳的准确性,我决定也记录当前的单调时间 以下代码在独立可执行文件中运行 while(true) { fgets(mLineBuffer, sizeof(mLineBuffer), mKmsgFile); //Find fi
while(true)
{
fgets(mLineBuffer, sizeof(mLineBuffer), mKmsgFile);
//Find first space
char * messageContent = strchr(mLineBuffer,' ');
//Offset one to get character after space
messageContent++;
if (strncmp (messageContent,"Enabling non-boot CPUs ...",25) == 0 )
{
clock_gettime(CLOCK_MONOTONIC,&mMono);
std::cout << mLineBuffer;
std::cout << std::to_string(mMono.tv_sec) << "." << std::to_string(mMono.tv_nsec) << "\n";
}
}
while(true)
{
fgets(mLineBuffer、sizeof(mLineBuffer)、mKmsgFile);
//找到第一个空间
char*messageContent=strchr(mLineBuffer,”);
//偏移1以获得空格后的字符
messageContent++;
if(strncmp(messageContent,“启用非引导CPU…”,25)==0)
{
时钟获取时间(时钟单调,&ammono);
std::cout当输入行不包含空格时会发生什么情况?已发布的代码未处理该情况。已发布的代码是C++
,而不是C
。请更改标记,以便适当的人可以看到该代码。此部分字符由调用发送cout
“\n”不正确。应该是以下字符:endl
这两个时间戳不相关。我的建议是:不要再给它们一个时间戳thought@user3629249kmsg条目总是在时间戳之后有一个空格,不是吗?它们不应该是不相关的,但看起来确实是这样。事实证明,唤醒_源中的时间戳是正常的单调时间我想是这样的。
<6>[226692.217017] Enabling non-boot CPUs ...
226691.681130889
<6>[226692.626100] Enabling non-boot CPUs ...
226692.80532881
<6>[226693.305535] Enabling non-boot CPUs ...
226692.803398747