Hi
I was trying to run idlestat and with the below command output is -
# sudo ./idlestat -o /tmp/myoutput fopen: No such file or directory
I looked into the source and it looks like its not entering in the if condition in main -
1212 /* Acquisition time specified means we will get the traces */ 1213 if (options.duration || args < argc) { 1214 1215 /* Read cpu topology info from sysfs */ 1216 read_sysfs_cpu_topo();
...
1260 if (idlestat_store(options.filename)) 1261 return -1; }
Since duration argument is not given and args is actually equal to argc, if condition is evaluated false.
So idlestat_store() is not creating the file "/tmp/myoutput" or storing any info there.
As a result, call to idlestat_load is issues above error message.
1264 /* Load the idle states information */ 1265 datas = idlestat_load(options.filename); 1266 if (!datas) 1267 return 1;
I think the fix is simply to change the if condition above and make it -
1212 /* Acquisition time specified means we will get the traces */ 1213 if (options.duration || args <= argc) { 1214 }
-- Thanks, -Meraj
Hi Mohammad,
Yes, I found and fixed that bug in my local tree. Will push it out later today.
In the meanwhile, please use the -t option (it is compulsory) to take traces on the local machine.
Regards, Amit
On Mon, Jun 2, 2014 at 2:03 PM, Mohammad Merajul Islam Molla meraj.enigma@gmail.com wrote:
Hi
I was trying to run idlestat and with the below command output is -
# sudo ./idlestat -o /tmp/myoutput fopen: No such file or directory
I looked into the source and it looks like its not entering in the if condition in main -
1212 /* Acquisition time specified means we will get the traces */ 1213 if (options.duration || args < argc) { 1214 1215 /* Read cpu topology info from sysfs */ 1216 read_sysfs_cpu_topo();
...
1260 if (idlestat_store(options.filename)) 1261 return -1; }
Since duration argument is not given and args is actually equal to argc, if condition is evaluated false.
So idlestat_store() is not creating the file "/tmp/myoutput" or storing any info there.
As a result, call to idlestat_load is issues above error message.
1264 /* Load the idle states information */ 1265 datas = idlestat_load(options.filename); 1266 if (!datas) 1267 return 1;
I think the fix is simply to change the if condition above and make it -
1212 /* Acquisition time specified means we will get the traces */ 1213 if (options.duration || args <= argc) { 1214 }
-- Thanks, -Meraj