[RFC] Scheduler recorder and playback

Pantelis Antoniou panto at antoniou-consulting.com
Mon Apr 9 17:24:18 UTC 2012


Hi Dmitry,

Here's a updated patch for builtin-sched.c that should fix your issues.

Now when you issue list a field will show the amount of nsecs the
task was burning cycles.

It should also fix the crash you've encountered.

Regards

-- Pantelis

-------------- next part --------------
A non-text attachment was scrubbed...
Name: spr-replay.patch
Type: application/octet-stream
Size: 61119 bytes
Desc: not available
URL: <http://lists.linaro.org/pipermail/linaro-dev/attachments/20120409/10d2505b/attachment-0001.obj>
-------------- next part --------------


On Apr 9, 2012, at 1:07 PM, Dmitry Antipov wrote:

> On 04/04/2012 05:10 PM, Pantelis Antoniou wrote:
> 
>> The reason for the slowdown is that perf sched record default settings is
>> tuned for x86 pretty much, and there's a huge amount of data being generated.
>> 
>> perf sched record is just a wrapper for perf record so try using this script
>> for recording:
>> 
>>> #!/bin/sh
>>> perf record \
>>> 	-a \
>>> 	-R \
>>> 	-f \
>>> 	-m 8192 \
>>> 	-c 1 \
>>> 	-e sched:sched_switch \
>>> 	-e sched:sched_process_exit \
>>> 	-e sched:sched_process_fork \
>>> 	-e sched:sched_wakeup \
>>> 	-e sched:sched_migrate_task
> 
> That's OK, but I got the following assertion while processing with 'perf sched spr-replay -l':
> 
> perf: builtin-sched.c:2629: execute_wait_id: Assertion `ret == 0 || ret == 11' failed.
> 
> The program continues, but may report a tens of these assertions.
> 
> And one more question around threads. I'm trying to record/replay a test application
> based on WebKit framework, which tends to spawn a service threads from time to time.
> So, 'perf sched spr-replay -l' output may looks like the following:
> 
> [perf/1503]
> [kworker/0:2/1439]
> [ksoftirqd/0/3]
> [testbrowser/1504]
> [swapper/1/0]
> [kworker/1:2/1437]
> [sshd/1232]
> [testbrowser/1505]
> [testbrowser/1506]
> [ksoftirqd/1/9]
> [testbrowser/1507]
> [testbrowser/1508]
> [sync_supers/179]
> [testbrowser/1509]
> [testbrowser/1510]
> [testbrowser/1511]
> [testbrowser/1512]
> [testbrowser/1513]
> [testbrowser/1514]
> [testbrowser/1515]
> [testbrowser/1516]
> [testbrowser/1517]
> [testbrowser/1518]
> [testbrowser/1519]
> [testbrowser/1520]
> [testbrowser/1521]
> [testbrowser/1522]
> [testbrowser/1523]
> [testbrowser/1524]
> [testbrowser/1525]
> [testbrowser/1526]
> [testbrowser/1527]
> [testbrowser/1528]
> [testbrowser/1529]
> [testbrowser/1530]
> [testbrowser/1531]
> [testbrowser/1532]
> [testbrowser/1533]
> [testbrowser/1534]
> [testbrowser/1535]
> [testbrowser/1536]
> [testbrowser/1537]
> [testbrowser/1538]
> [testbrowser/1539]
> [testbrowser/1540]
> [testbrowser/1541]
> [testbrowser/1542]
> [testbrowser/1543]
> [testbrowser/1544]
> [testbrowser/1545]
> [testbrowser/1546]
> [testbrowser/1547]
> [testbrowser/1548]
> [testbrowser/1549]
> [testbrowser/1550]
> [testbrowser/1551]
> [testbrowser/1552]
> [testbrowser/1553]
> [testbrowser/1554]
> [testbrowser/1555]
> [flush-179:0/1480]
> [testbrowser/1556]
> [testbrowser/1557]
> [kjournald/510]
> [mmcqd/0/499]
> [khungtaskd/347]
> [testbrowser/1558]
> [testbrowser/1559]
> [testbrowser/1560]
> [testbrowser/1561]
> [testbrowser/1562]
> [testbrowser/1563]
> [rsyslogd/573]
> [testbrowser/1564]
> [testbrowser/1565]
> [testbrowser/1566]
> [testbrowser/1567]
> [testbrowser/1568]
> [testbrowser/1569]
> [testbrowser/1570]
> [testbrowser/1571]
> [testbrowser/1572]
> [testbrowser/1573]
> [testbrowser/1574]
> [testbrowser/1575]
> [testbrowser/1576]
> [testbrowser/1577]
> [testbrowser/1578]
> [testbrowser/1579]
> [testbrowser/1580]
> [testbrowser/1581]
> [testbrowser/1582]
> [testbrowser/1583]
> [testbrowser/1584]
> [testbrowser/1585]
> [testbrowser/1586]
> [testbrowser/1587]
> [testbrowser/1588]
> [testbrowser/1589]
> [testbrowser/1590]
> [testbrowser/1591]
> [testbrowser/1592]
> [testbrowser/1593]
> [testbrowser/1594]
> [cron/1109]
> [testbrowser/1595]
> [testbrowser/1596]
> [testbrowser/1597]
> [testbrowser/1598]
> [testbrowser/1599]
> [testbrowser/1600]
> [testbrowser/1601]
> [testbrowser/1602]
> [testbrowser/1603]
> [testbrowser/1604]
> [testbrowser/1605]
> [testbrowser/1606]
> [testbrowser/1607]
> [testbrowser/1608]
> [testbrowser/1609]
> [testbrowser/1610]
> [testbrowser/1611]
> [testbrowser/1612]
> [testbrowser/1613]
> [testbrowser/1614]
> [testbrowser/1615]
> [testbrowser/1616]
> [testbrowser/1617]
> [testbrowser/1618]
> [testbrowser/1619]
> [testbrowser/1620]
> [testbrowser/1621]
> [testbrowser/1622]
> [testbrowser/1623]
> [testbrowser/1624]
> [testbrowser/1625]
> [testbrowser/1626]
> [testbrowser/1627]
> [testbrowser/1628]
> [testbrowser/1629]
> 
> There are a lot of threads created by main thread [testbrowser/1504]. Is there a way
> to find the most advanced CPU heaters among them?
> 
> Dmitry



More information about the linaro-dev mailing list