You are here: Home / Projects / OSADL QA Farm Real-time / Latency plots / 
2023-10-04 - 22:32

OSADL QA Farm on Real-time of Mainline Linux

About - Hardware - CPUs - Benchmarks - Graphics - Benchmarks - Kernels - Boards/Distros - Latency monitoring - Latency plots - System data - Profiles - Compare - Awards

Default latency plot of shadow in rack #b, slot #5

Rack #0/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #1/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #2/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #3/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #4/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #5/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #6/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #7/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #8/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #9/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #a/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #b/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #c/#0 #1 #2 #3 #4 #5 #6 #7 #8 - Rack #d/#0 #1 #2 #3 #4 #5 #6 #7 #8 -
Rack #e/#0 #1 #2 #3 #4 #5 #6 #7 #8 
Special  All - All RT - Optimization - Ethernet - Thumbnails - Next
  Phytec
Click here to display the system's profile data or here to proceed to next system.
Click on a legend element to toggle display of that core, ctrl-click inverts display, shift-click enables all.

Data to construct the above plot have been generated using the RT test utility cyclictest.

Total number of samples: 100 million
Resolution of latency scale: normal
Duration: 5 hours, 33 minutes, lowest P state: performance
Compare latency of primary with shadow system
Characteristics of the 376 highest latencies:
System rackbslot5s (updated Wed Oct 04, 2023 12:44:55)
Delayed (victim)Switcher (culprit)TimestampCPU
PIDPrioTotal
latency
(µs)
T*(,W**)
latency
(µs)
CmdPIDPrioCmd
1339969996659,5cyclictest1430582-21kworker/u8:2+events_unbound12:15:252
1339969996153,6cyclictest1399047-21kworker/u8:3+events_unbound10:35:032
1339969996153,6cyclictest1399047-21kworker/u8:3+events_unbound10:35:032
1339969996053,5cyclictest1430582-21kworker/u8:2+events_unbound11:50:192
1339965994938,7cyclictest1378900-21fschecks_time09:00:291
1339960994940,5cyclictest1419969-21sh10:59:590
1339969994842,4cyclictest254063-21kworker/u8:2+events_unbound08:09:302
1339969994842,4cyclictest254063-21kworker/u8:2+events_unbound08:09:302
1339969994840,4cyclictest1383550-21munin-run09:15:002
1339974994716,13cyclictest1439717-21basename11:55:323
1339974994635,7cyclictest1424700-21grep11:10:353
1339974994537,5cyclictest549-21cron12:20:003
1339974994516,12cyclictest1430742-21if_err_eth111:30:293
1339969994533,8cyclictest1407859-21idleruntime-cro10:25:002
1339965994536,6cyclictest1441705-21unixbench_multi12:00:391
1339960994539,4cyclictest1411687-21kworker/u8:2+events_unbound11:10:110
1339974994437,4cyclictest1426789-21sh11:20:003
1339974994418,20cyclictest1359842-21cut08:05:243
1339974994418,20cyclictest1359842-21cut08:05:243
1339969994437,5cyclictest1424152-21kworker/u8:3+events_unbound11:40:192
1339969994437,4cyclictest1454068-21munin-run12:40:012
1339974994333,6cyclictest1406122-21kworker/u8:1+events_unbound10:25:003
1339974994332,8cyclictest391ktimers/308:30:223
1339974994230,7cyclictest1434929-21grep11:40:373
1339974994227,9cyclictest1403255-21/usr/sbin/munin10:10:273
1339974994221,11cyclictest0-21swapper/309:45:193
1339974994216,9cyclictest1374806-21latency_hist08:50:003
1339974994216,9cyclictest1374806-21latency_hist08:50:003
1339974994215,9cyclictest1355400-21unixbench_singl07:50:343
1339965994234,5cyclictest1394203-21cron09:45:001
1339965994234,5cyclictest1376143-21kworker/u8:3+events_unbound09:09:431
1339960994233,5cyclictest0-21swapper/012:25:000
1339974994131,7cyclictest1345856-21apt-get07:25:213
1339974994131,7cyclictest1345856-21apt-get07:25:213
1339974994127,10cyclictest1412084-21/usr/sbin/munin10:35:293
1339974994127,10cyclictest1412084-21/usr/sbin/munin10:35:293
1339974994126,10cyclictest1405272-21/usr/sbin/munin10:15:333
1339974994126,10cyclictest1370272-21/usr/sbin/munin08:35:313
1339974994114,23cyclictest1349079-21latency_hist07:35:003
133996999410,16cyclictest0-21swapper/209:20:212
1339960994134,5cyclictest254063-21kworker/u8:2+events_unbound08:54:390
1339960994134,5cyclictest254063-21kworker/u8:2+events_unbound08:54:390
1339974994029,7cyclictest1401270-21/usr/sbin/munin10:05:183
1339974994028,7cyclictest0-21swapper/310:05:013
1339974994027,9cyclictest1382205-21/usr/sbin/munin09:10:233
1339974994027,10cyclictest1371926-21/usr/sbin/munin08:40:273
1339974994027,10cyclictest1371926-21/usr/sbin/munin08:40:263
1339974994026,9cyclictest1428968-21/usr/sbin/munin11:25:233
1339974994025,10cyclictest1358125-21/usr/sbin/munin08:00:253
1339969994032,4cyclictest1437017-21cron11:50:012
1339969994026,8cyclictest1344676-21grep07:20:272
1339969994026,8cyclictest1344676-21grep07:20:272
1339965994032,5cyclictest1418181-21kworker/u8:0+events_unbound11:15:121
1339965994030,6cyclictest0-21swapper/111:25:011
1339960994033,5cyclictest254063-21kworker/u8:2+events_unbound08:19:320
1339960994027,8cyclictest0-21swapper/010:35:270
1339960994027,8cyclictest0-21swapper/010:35:260
1339974993927,9cyclictest1408443-21/usr/sbin/munin10:25:313
1339974993927,7cyclictest1363652-21ntp_kernel_pll_08:15:323
1339974993926,9cyclictest1409959-21/usr/sbin/munin10:30:283
1339974993926,9cyclictest1409959-21/usr/sbin/munin10:30:273
1339974993926,7cyclictest1420371-21/usr/sbin/munin11:00:263
1339974993926,10cyclictest1415664-21/usr/sbin/munin10:45:323
1339974993926,10cyclictest1415664-21/usr/sbin/munin10:45:313
1339974993925,10cyclictest1435577-21apt-get11:45:213
1339974993924,10cyclictest1440827-21/usr/sbin/munin12:00:283
1339974993922,12cyclictest1353201-21/usr/sbin/munin07:45:343
1339969993930,7cyclictest1411687-21kworker/u8:2+events_unbound10:42:172
1339974993829,6cyclictest1379599-21/usr/sbin/munin09:00:403
1339974993828,7cyclictest1380665-21/usr/sbin/munin09:05:253
1339974993827,7cyclictest1385720-21apt-get09:20:213
1339974993826,9cyclictest1444373-21/usr/sbin/munin12:10:283
1339974993826,9cyclictest1419372-21/usr/sbin/munin10:55:343
1339974993825,9cyclictest1437266-21apt-get11:50:183
1339974993825,9cyclictest1384291-21/usr/sbin/munin09:15:293
1339974993825,9cyclictest1384291-21/usr/sbin/munin09:15:293
1339974993825,8cyclictest1340721-21/usr/sbin/munin07:10:303
1339974993825,10cyclictest1413510-21/usr/sbin/munin10:40:233
1339974993825,10cyclictest1352060-21/usr/sbin/munin07:40:423
1339974993824,9cyclictest1365267-21/usr/sbin/munin08:20:293
1339974993824,11cyclictest1396206-21/usr/sbin/munin09:50:203
1339974993824,10cyclictest1452654-21/usr/sbin/munin12:35:213
1339969993831,5cyclictest1395557-21kworker/u8:1+events_unbound10:00:192
1339969993829,4cyclictest0-21swapper/208:15:242
1339965993831,5cyclictest1441930-21kworker/u8:0+events_unbound12:35:271
1339965993827,7cyclictest0-21swapper/107:10:321
1339965993827,5cyclictest1424152-21kworker/u8:3+events_unbound11:30:351
1339960993830,5cyclictest1430650-21uniq11:30:270
1339960993829,6cyclictest1346913-21unixbench_singl07:25:370
1339960993829,6cyclictest1346913-21unixbench_singl07:25:360
1339960993828,6cyclictest0-21swapper/011:40:310
1339960993827,7cyclictest1350720-21sendmail07:40:000
1339960993827,6cyclictest0-21swapper/007:55:400
1339974993728,4cyclictest0-21swapper/307:55:403
1339974993727,7cyclictest1366930-21/usr/sbin/munin08:25:303
1339974993725,9cyclictest1375325-21/usr/sbin/munin08:50:263
1339974993725,9cyclictest1375325-21/usr/sbin/munin08:50:253
1339974993725,7cyclictest1447956-21/usr/sbin/munin12:20:283
1339974993725,7cyclictest1432422-21/usr/sbin/munin11:35:253
1339974993724,10cyclictest1350324-21/usr/sbin/munin07:35:323
1339974993721,11cyclictest1450904-21/usr/sbin/munin12:30:223
1339974993715,9cyclictest1362131-21sendmail_mailtr08:10:343
1339965993726,6cyclictest0-21swapper/108:00:381
1339960993727,6cyclictest0-21swapper/010:00:370
1339960993725,6cyclictest0-21swapper/011:50:220
1339974993626,7cyclictest1417440-21/usr/sbin/munin10:50:333
1339974993626,7cyclictest1392805-21/usr/sbin/munin09:40:243
1339974993626,7cyclictest1391732-21/usr/sbin/munin09:35:353
1339974993626,7cyclictest1391732-21/usr/sbin/munin09:35:343
1339974993625,8cyclictest1427838-21/usr/sbin/munin11:20:323
1339974993624,9cyclictest1449660-21/usr/sbin/munin12:25:293
1339974993624,9cyclictest1442632-21/usr/sbin/munin12:05:273
1339974993624,10cyclictest1389336-21apt-get09:30:213
1339974993623,10cyclictest1388113-21/usr/sbin/munin09:25:363
1339969993630,4cyclictest254063-21kworker/u8:2+events_unbound07:44:262
1339965993630,4cyclictest1441930-21kworker/u8:0+events_unbound12:05:221
1339965993628,5cyclictest213-21dbus-daemon12:15:221
1339965993628,4cyclictest0-21swapper/109:00:001
1339960993628,5cyclictest1352378-21kworker/u8:0+events_unbound08:00:320
1339960993626,6cyclictest0-21swapper/010:45:000
1339974993526,5cyclictest0-21swapper/307:15:233
1339974993526,4cyclictest0-21swapper/309:55:243
1339974993525,7cyclictest1422289-21/usr/sbin/munin11:05:253
1339974993520,9cyclictest1376750-21apt-get08:55:213
1339969993528,4cyclictest1441930-21kworker/u8:0+events_unbound12:30:002
1339969993527,4cyclictest0-21swapper/209:30:262
1339969993525,6cyclictest1385004-21unixbench_multi09:15:382
1339969993525,6cyclictest1385004-21unixbench_multi09:15:382
1339969993524,7cyclictest1419578-21grep10:55:352
1339965993529,4cyclictest1395557-21kworker/u8:1+events_unbound09:59:551
1339965993529,3cyclictest1373109-21latency_hist08:45:001
1339965993529,3cyclictest1373109-21latency_hist08:45:001
1339965993528,4cyclictest1404437-21ls10:15:001
1339965993527,4cyclictest0-21swapper/111:45:001
1339965993525,6cyclictest0-21swapper/107:20:011
1339960993527,4cyclictest0-21swapper/011:30:010
1339960993524,7cyclictest1390341-21grep09:30:360
1339969993427,5cyclictest1372776-21kworker/u8:1+events_unbound08:49:392
1339969993427,5cyclictest1372776-21kworker/u8:1+events_unbound08:49:382
1339969993426,4cyclictest0-21swapper/211:25:232
1339969993425,4cyclictest0-21swapper/210:50:372
1339969993418,5cyclictest1411687-21kworker/u8:2+events_unbound11:00:422
1339965993427,5cyclictest1418181-21kworker/u8:0+events_unbound11:12:171
1339960993428,4cyclictest1411687-21kworker/u8:2+events_unbound11:05:120
1339960993427,4cyclictest0-21swapper/009:00:000
1339960993426,5cyclictest1388650-21kworker/u8:2+events_unbound09:40:370
1339960993425,6cyclictest0-21swapper/012:35:000
1339960993425,6cyclictest0-21swapper/007:15:340
1339960993425,4cyclictest0-21swapper/009:15:000
1339960993424,6cyclictest0-21swapper/012:10:370
1339960993424,6cyclictest0-21swapper/010:25:400
1339969993327,4cyclictest1319500-21kworker/u8:3+events_unbound07:35:212
1339969993326,5cyclictest1411687-21kworker/u8:2+events_unbound11:10:292
1339969993326,5cyclictest1406122-21kworker/u8:1+events_unbound10:45:322
1339969993326,5cyclictest1406122-21kworker/u8:1+events_unbound10:45:312
1339969993326,4cyclictest1452360-21kthreadd12:34:592
1339969993325,4cyclictest0-21swapper/210:30:392
1339969993325,4cyclictest0-21swapper/210:30:382
1339969993325,4cyclictest0-21swapper/209:25:402
1339969993325,4cyclictest0-21swapper/209:00:002
1339965993326,4cyclictest1411252-21latency_hist10:35:001
1339965993326,4cyclictest1411252-21latency_hist10:35:001
1339960993327,4cyclictest254063-21kworker/u8:2+events_unbound08:09:320
1339960993327,4cyclictest254063-21kworker/u8:2+events_unbound08:09:320
1339960993327,4cyclictest1378663-21kworker/u8:1+events_unbound09:19:450
1339960993327,4cyclictest1378663-21kworker/u8:1+events_unbound09:19:450
1339960993326,4cyclictest0-21swapper/010:00:010
1339960993325,4cyclictest0-21swapper/012:40:000
1339960993323,6cyclictest0-21swapper/009:05:350
1339960993321,9cyclictest121ktimers/007:50:190
1339969993226,4cyclictest1392184-21kworker/u8:0+events_unbound09:39:502
1339969993226,4cyclictest1392184-21kworker/u8:0+events_unbound09:39:502
1339969993226,4cyclictest1356267-21kworker/u8:3+events_unbound08:11:422
1339969993226,4cyclictest1352378-21kworker/u8:0+events_unbound08:04:012
1339969993224,4cyclictest0-21swapper/210:15:382
1339969993222,6cyclictest1431533-21grep11:30:372
1339969993221,8cyclictest1347318-21munin-run07:30:012
1339969993221,8cyclictest1347318-21munin-run07:30:002
1339965993226,4cyclictest1319500-21kworker/u8:3+events_unbound07:49:271
1339965993224,6cyclictest1356267-21kworker/u8:3+events_unbound08:14:311
1339965993222,6cyclictest0-21swapper/109:35:011
1339960993225,5cyclictest1430582-21kworker/u8:2+events_unbound11:55:210
1339960993225,4cyclictest1360409-21kworker/u8:1+events_unbound08:11:580
1339960993225,3cyclictest0-21swapper/008:40:020
1339960993223,6cyclictest0-21swapper/010:20:000
1339960993222,6cyclictest0-21swapper/008:45:370
1339960993222,6cyclictest0-21swapper/008:45:370
1339969993125,4cyclictest1430582-21kworker/u8:2+events_unbound12:07:032
1339969993124,5cyclictest1388650-21kworker/u8:2+events_unbound09:48:122
1339969993122,6cyclictest1392184-21kworker/u8:0+events_unbound10:05:262
1339969993120,7cyclictest1445148-21grep12:10:382
1339965993125,4cyclictest1339954-21cyclictest07:35:331
1339965993123,6cyclictest1324532-21kworker/u8:1+events_unbound07:20:091
1339965993123,6cyclictest1324532-21kworker/u8:1+events_unbound07:20:091
1339965993121,6cyclictest0-21swapper/110:45:371
1339965993121,6cyclictest0-21swapper/110:45:371
1339965993121,6cyclictest0-21swapper/109:19:431
1339965993121,6cyclictest0-21swapper/109:19:431
1339965993120,7cyclictest1365891-21grep08:20:371
1339960993122,7cyclictest1402394-21kworker/u8:2+events_unbound10:07:420
1339960993122,6cyclictest0-21swapper/009:40:010
1339960993122,6cyclictest0-21swapper/009:40:010
133996099311,4cyclictest131rcu_preempt07:20:190
133996099311,4cyclictest131rcu_preempt07:20:180
133996099310,28cyclictest0-21swapper/010:30:230
133996099310,28cyclictest0-21swapper/010:30:220
1339969993023,5cyclictest1411687-21kworker/u8:2+events_unbound11:05:292
1339969993023,5cyclictest1319500-21kworker/u8:3+events_unbound07:47:452
1339969993023,4cyclictest254063-21kworker/u8:2+events_unbound08:20:322
1339969993022,5cyclictest1430582-21kworker/u8:2+events_unbound11:55:262
1339965993024,3cyclictest1423393-21kthreadd11:10:001
1339965993023,5cyclictest1378663-21kworker/u8:1+events_unbound09:14:071
1339965993023,3cyclictest0-21swapper/112:00:011
1339965993022,6cyclictest1367827-21kworker/u8:0+events_unbound08:30:481
1339965993022,4cyclictest0-21swapper/109:45:381
1339965993021,7cyclictest1411893-21fschecks_time10:35:261
1339965993021,7cyclictest1411893-21fschecks_time10:35:261
1339965993021,5cyclictest0-21swapper/111:50:331
1339965993015,4cyclictest131rcu_preempt12:25:011
1339960993024,4cyclictest1424152-21kworker/u8:3+events_unbound11:47:070
1339960993023,3cyclictest0-21swapper/008:40:260
1339960993023,3cyclictest0-21swapper/008:40:250
1339969992922,5cyclictest254063-21kworker/u8:2+events_unbound07:10:282
1339969992922,5cyclictest1392184-21kworker/u8:0+events_unbound10:27:552
1339969992922,5cyclictest1378663-21kworker/u8:1+events_unbound09:05:252
1339969992921,5cyclictest1388650-21kworker/u8:2+events_unbound09:43:192
1339969992921,5cyclictest1343901-21cron07:20:022
1339969992921,4cyclictest0-21swapper/209:50:232
1339969992921,4cyclictest0-21swapper/208:40:012
1339965992922,5cyclictest1324532-21kworker/u8:1+events_unbound07:31:131
1339965992922,4cyclictest0-21swapper/112:34:591
1339965992920,4cyclictest0-21swapper/111:25:341
1339960992923,4cyclictest1388650-21kworker/u8:2+events_unbound09:47:340
1339960992923,4cyclictest1356267-21kworker/u8:3+events_unbound08:34:340
1339960992923,3cyclictest0-21swapper/008:25:000
1339960992922,5cyclictest1424152-21kworker/u8:3+events_unbound12:01:140
1339960992922,5cyclictest1418181-21kworker/u8:0+events_unbound11:20:120
1339960992922,5cyclictest1411687-21kworker/u8:2+events_unbound10:45:200
1339960992922,5cyclictest1411687-21kworker/u8:2+events_unbound10:45:190
1339960992919,6cyclictest0-21swapper/010:15:000
1339969992822,4cyclictest254063-21kworker/u8:2+events_unbound08:43:182
1339969992822,4cyclictest254063-21kworker/u8:2+events_unbound08:43:172
1339969992822,4cyclictest1426695-21kworker/u8:1+events_unbound11:38:182
1339969992822,4cyclictest1418181-21kworker/u8:0+events_unbound11:15:482
1339969992821,5cyclictest254063-21kworker/u8:2+events_unbound08:27:332
1339969992819,5cyclictest1379677-21tail09:00:412
1339969992815,9cyclictest549-21cron08:35:002
133996599284,5cyclictest131rcu_preempt08:35:221
1339965992822,4cyclictest1411687-21kworker/u8:2+events_unbound11:00:371
1339965992822,4cyclictest1411687-21kworker/u8:2+events_unbound10:55:221
1339965992821,5cyclictest254063-21kworker/u8:2+events_unbound08:49:071
1339965992821,5cyclictest254063-21kworker/u8:2+events_unbound08:49:061
1339965992821,3cyclictest0-21swapper/112:25:361
1339965992820,4cyclictest0-21swapper/109:50:351
1339965992816,8cyclictest1-21systemd09:39:481
1339965992816,8cyclictest1-21systemd09:39:471
133996099282,6cyclictest1442511-21df_inode12:05:240
1339960992822,4cyclictest1367827-21kworker/u8:0+events_unbound09:28:490
1339960992819,6cyclictest0-21swapper/011:15:340
1339969992722,3cyclictest1352378-21kworker/u8:0+events_unbound07:52:262
1339969992721,4cyclictest1424152-21kworker/u8:3+events_unbound12:02:532
1339969992719,6cyclictest1418181-21kworker/u8:0+events_unbound11:20:252
1339969992717,6cyclictest0-21swapper/207:55:412
1339965992721,4cyclictest1392184-21kworker/u8:0+events_unbound10:09:191
1339965992720,4cyclictest0-21swapper/107:30:001
1339965992720,4cyclictest0-21swapper/107:30:001
1339965992719,4cyclictest0-21swapper/110:00:361
1339965992718,6cyclictest1405738-21grep10:15:381
1339965992717,6cyclictest0-21swapper/108:25:261
1339965992717,6cyclictest0-21swapper/107:40:421
1339960992721,4cyclictest1418181-21kworker/u8:0+events_unbound10:54:170
1339960992721,4cyclictest1367827-21kworker/u8:0+events_unbound09:23:090
1339960992720,5cyclictest1319500-21kworker/u8:3+events_unbound07:41:350
1339960992720,4cyclictest0-21swapper/007:30:220
1339960992716,7cyclictest1379683-21grep09:00:400
1339969992621,3cyclictest1376143-21kworker/u8:3+events_unbound08:53:072
1339969992621,3cyclictest1376143-21kworker/u8:3+events_unbound08:53:072
1339969992620,4cyclictest1441930-21kworker/u8:0+events_unbound12:20:362
1339969992620,4cyclictest1402394-21kworker/u8:2+events_unbound10:10:082
1339969992619,5cyclictest1395557-21kworker/u8:1+events_unbound09:56:502
1339965992618,5cyclictest0-21swapper/110:40:381
1339960992618,6cyclictest1430582-21kworker/u8:2+events_unbound12:25:370
1339960992615,7cyclictest1446780-21grep12:15:360
1339965992519,3cyclictest0-21swapper/107:55:011
1339965992517,5cyclictest0-21swapper/111:35:351
1339965992517,5cyclictest0-21swapper/109:30:001
1339965992516,6cyclictest1445082-21unixbench_multi12:10:371
1339960992519,3cyclictest0-21swapper/010:20:360
1339960992518,5cyclictest1392184-21kworker/u8:0+events_unbound09:52:370
1339960992518,5cyclictest1360409-21kworker/u8:1+events_unbound08:25:080
1339965992417,5cyclictest1356267-21kworker/u8:3+events_unbound08:18:501
1339965992415,5cyclictest0-21swapper/108:00:001
133996599240,14cyclictest0-21swapper/110:20:351
1339960992417,3cyclictest0-21swapper/011:00:370
1339969992315,4cyclictest0-21swapper/207:30:272
1339965992317,4cyclictest1424152-21kworker/u8:3+events_unbound11:46:121
1339965992317,3cyclictest0-21swapper/108:50:321
1339965992317,3cyclictest0-21swapper/108:50:321
1339960992317,4cyclictest254063-21kworker/u8:2+events_unbound07:46:470
133996099231,20cyclictest0-21swapper/011:35:190
1339965992214,4cyclictest0-21swapper/110:30:011
1339965992212,6cyclictest1360757-21grep08:05:401
1339965992212,6cyclictest1360757-21grep08:05:401
*Timer  **Wakeup  (latency=timer+wakeup+contextswitch)

 

Valid XHTML 1.0 Transitional