Xpedite icon indicating copy to clipboard operation
Xpedite copied to clipboard

ZeroDivisionError when running xpedite record

Open shuklaravi opened this issue 7 years ago • 2 comments

hello,

I was trying out the Life App after setting up Xpedite. However , I get the following error when I run xpedite record

xpedite record -p profileInfo.py [ERROR]: Detected mismatch in estimated TSC (3467770031) vs raw frequency (0) press RETURN key to, end live profile and generate report ...

scanning for samples files matching - /dev/shm/xpedite-Life-1548999708-*.data loading counters for thread 19252 from file /dev/shm/xpedite-Life-1548999708-19252-00007ff2200a17c0.data -> 400 records | 100 txns loaded in 0.02 sec. [ERROR]: failed to generate report Traceback (most recent call last): File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/reportgenerator.py", line 115, in generateReport histograms = self.generateHistograms(repo, classifier, app.runId) File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/reportgenerator.py", line 56, in generateHistograms elapsedTimeBundles = self.analytics.buildElapsedTimeBundles(txnCollections, classifier) File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/analytics/init.py", line 48, in buildElapsedTimeBundles lambda txnsc=txnSubCollection, txnCollection=txnCollection: TxnAggregator.groupElapsedTime( File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/util/init.py", line 38, in timeAction retVal = delegate() File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/analytics/init.py", line 49, in txnsc, txnCollection.cpuInfo, classifier=classifier File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/analytics/aggregator.py", line 142, in groupElapsedTime time = cpuInfo.convertCyclesToTime(txn.getElapsedTsc()) File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/types/init.py", line 101, in convertCyclesToTime return cycles / self.cyclesPerUsec ZeroDivisionError: float division by zero [ERROR]: failed to generate report Traceback (most recent call last): File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/runtime.py", line 275, in report self.app, repo, classifier, resultOrder, reportThreshold, txnFilter, benchmarkPaths File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/reportgenerator.py", line 124, in generateReport raise ex ZeroDivisionError: float division by zeroTraceback (most recent call last): File "/home/ravi.s/mylabs/Xpedite/scripts/bin/xpedite", line 248, in app.run() File "/home/ravi.s/mylabs/Xpedite/install/runtime/lib/python2.7/site-packages/cement/core/foundation.py", line 797, in run return_val = self.controller._dispatch() File "/home/ravi.s/mylabs/Xpedite/install/runtime/lib/python2.7/site-packages/cement/ext/ext_argparse.py", line 901, in _dispatch return func() File "/home/ravi.s/mylabs/Xpedite/scripts/bin/xpedite", line 89, in record verbose=self.app.pargs.verbose File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/init.py", line 161, in record duration=duration, cprofile=cprofile File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/init.py", line 125, in profile , classifier=classifier, resultOrder=profileInfo.resultOrder, txnFilter=profileInfo.txnFilter) File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/profiler/runtime.py", line 279, in report raise ex ZeroDivisionError: float division by zero

Also, when we call xpedite list, we get the following error:

xpedite list Traceback (most recent call last): File "/home/ravi.s/mylabs/Xpedite/scripts/bin/xpedite", line 248, in app.run() File "/home/ravi.s/mylabs/Xpedite/install/runtime/lib/python2.7/site-packages/cement/core/foundation.py", line 797, in run return_val = self.controller._dispatch() File "/home/ravi.s/mylabs/Xpedite/install/runtime/lib/python2.7/site-packages/cement/ext/ext_argparse.py", line 901, in _dispatch return func() File "/home/ravi.s/mylabs/Xpedite/scripts/bin/xpedite", line 192, in list eventsDb = _loadPerfEventsDb() File "/home/ravi.s/mylabs/Xpedite/scripts/bin/xpedite", line 43, in _loadPerfEventsDb return loadEventsDb(getCpuId()) File "/home/ravi.s/mylabs/Xpedite/scripts/lib/xpedite/pmu/eventsDb.py", line 138, in loadEventsDb 'to add support for this architecture'.format(cpuId) Exception: failed to locate events database file for cpu GenuineIntel-6-0C. please consult xpedite devs to add support for this architecture

shuklaravi avatar Feb 01 '19 06:02 shuklaravi

Thanks for reporting the issue.

It appears you are running Xpedite in a cpu model, that's missing in the PMU events database. Xpedite sources PMU events from Intel's opensource site , which has events for all cpu generations. However the model "GenuineIntel-6-0C", is not found in this website.

Can you share more details about the machine, where the test runs ? Is it a physical or a virtual machine. The performance counters may not be exposed by the underlying virtual machine runtime.

The ZeroDivisionError, happens due to failure to get advertised Cpu frequency. We have plans to improve this code, to make it more accurate. As a quick workaround, I can make a quick fix to fall back to estimated TSC, in case the advertised frequency is not available.

Mani-D avatar Feb 04 '19 18:02 Mani-D

Thanks Mani for looking taking up this issue.

The test run was done on a physical machine. Following are some other processor details:

Architecture: x86_64 Vendor ID: GenuineIntel CPU family: 6 Model: 44 Model name: Westmere E56xx/L56xx/X56xx (Nehalem-C)

shuklaravi avatar Feb 05 '19 06:02 shuklaravi