From bcdce02d9bc8150e1d191ed5ca9da45b7604964a Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 21 Aug 2018 13:47:02 +0200 Subject: Update to FreeBSD head 2018-06-01 Git mirror commit fb63610a69b0eb7f69a201ba05c4c1a7a2739cf9. Update #3472. --- testsuite/epoch01/epoch01.py | 79 ++ testsuite/epoch01/epoch01.scn | 2342 +++++++++++++++++++++++++++++++++++++++++ testsuite/epoch01/test_main.c | 596 +++++++++++ 3 files changed, 3017 insertions(+) create mode 100755 testsuite/epoch01/epoch01.py create mode 100644 testsuite/epoch01/epoch01.scn create mode 100644 testsuite/epoch01/test_main.c (limited to 'testsuite') diff --git a/testsuite/epoch01/epoch01.py b/testsuite/epoch01/epoch01.py new file mode 100755 index 00000000..8bfd8de3 --- /dev/null +++ b/testsuite/epoch01/epoch01.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python + +# +# Copyright (c) 2018 embedded brains GmbH. All rights reserved. +# +# embedded brains GmbH +# Dornierstr. 4 +# 82178 Puchheim +# Germany +# +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +import re +import libxml2 +from libxml2 import xmlNode +import matplotlib.pyplot as plt +data = open('epoch01.scn').read() +data = re.sub(r'\*\*\*.*\*\*\*', '', data) +doc = libxml2.parseDoc(data) +ctx = doc.xpathNewContext() + +plt.yscale('log') +plt.title('Epoch Performance') +plt.xlabel('Active Workers') +plt.ylabel('Operation Count') + +def m(n): + return int(n.getContent()) + +def getCounterSums(variant): + w = 1 + y = [] + while True: + c = map(m, ctx.xpathEval('/TestEpoch01/' + variant + '[@activeWorker="' + str(w) + '"]/Counter')) + if not c: + break + y.append(sum(c)) + w = w + 1 + return y + +y = getCounterSums('ThreadLocalMutex') +x = range(1, len(y) + 1) +plt.plot(x, y, label = 'Thread-Local Mutex', marker = 'o') + +y = getCounterSums('EnterExit') +plt.plot(x, y, label = 'Enter Exit', marker = 'o') + +y = getCounterSums('EnterExitPreempt') +plt.plot(x, y, label = 'Enter Exit Preempt', marker = 'o') + +y = getCounterSums('EnterListOpExit') +plt.plot(x, y, label = 'Enter List Op Exit', marker = 'o') + +y = getCounterSums('EnterListOpExitPreempt') +plt.plot(x, y, label = 'Enter List Op Exit Preempt', marker = 'o') + +plt.legend(loc = 'best') +plt.show() diff --git a/testsuite/epoch01/epoch01.scn b/testsuite/epoch01/epoch01.scn new file mode 100644 index 00000000..aafebc5d --- /dev/null +++ b/testsuite/epoch01/epoch01.scn @@ -0,0 +1,2342 @@ + + + 4681303 + + + 3549510 + 3559719 + + + 3480802 + 3490567 + 4651841 + + + 3518160 + 3528002 + 3526473 + 3526462 + + + 3473951 + 3483916 + 3482262 + 3482276 + 4642986 + + + 3499124 + 3509073 + 3507477 + 3507459 + 3507449 + 3507487 + + + 3461429 + 3471389 + 3469767 + 3469750 + 3469775 + 3469767 + 4608209 + + + 3493807 + 3503732 + 3502201 + 3502218 + 3502206 + 3502205 + 3502191 + 3502238 + + + 3342598 + 3352508 + 3351027 + 3351021 + 3351036 + 3351046 + 3351027 + 3351055 + 4410507 + + + 3432709 + 3442606 + 3441223 + 3441252 + 3441253 + 3441239 + 3441252 + 3441215 + 3441178 + 3441189 + + + 3117605 + 3127512 + 3125832 + 3125836 + 3125819 + 3125838 + 3125842 + 3125817 + 3125776 + 3125788 + 4167639 + + + 3114562 + 3124485 + 3122722 + 3122707 + 3122707 + 3122714 + 3122709 + 3122716 + 3122678 + 3122670 + 3122679 + 3122657 + + + 2758135 + 2768036 + 2766152 + 2766147 + 2766152 + 2766144 + 2766134 + 2766166 + 2766125 + 2766121 + 2766129 + 2766121 + 3986835 + + + 2666731 + 2676680 + 2674562 + 2674527 + 2674549 + 2674538 + 2674531 + 2674574 + 2674514 + 2674524 + 2674513 + 2674517 + 2674517 + 2674507 + + + 2393863 + 2403773 + 2401561 + 2401557 + 2401575 + 2401541 + 2401562 + 2401559 + 2401531 + 2401542 + 2401537 + 2401551 + 2401537 + 2401535 + 3602503 + + + 2316897 + 2326796 + 2324443 + 2324416 + 2324416 + 2324424 + 2324405 + 2324440 + 2324378 + 2324353 + 2324394 + 2324371 + 2324367 + 2324383 + 2324369 + 2324394 + + + 2109578 + 2119491 + 2117067 + 2117056 + 2117089 + 2117047 + 2117057 + 2117085 + 2117019 + 2117028 + 2117009 + 2117035 + 2117003 + 2117018 + 2117030 + 2117003 + 3264476 + + + 2062704 + 2072566 + 2070055 + 2070092 + 2070069 + 2070075 + 2070078 + 2070076 + 2070032 + 2070030 + 2070033 + 2070045 + 2070034 + 2070017 + 2070038 + 2070040 + 2070051 + 2070071 + + + 1951736 + 1961591 + 1784490 + 1784459 + 1959411 + 1959415 + 1959461 + 1959482 + 1959003 + 1959004 + 1784452 + 1784439 + 1959383 + 1959358 + 1959416 + 1959430 + 1959034 + 1959023 + 2854197 + + + 1866629 + 1876698 + 1874511 + 1874507 + 1874529 + 1874529 + 1874515 + 1874548 + 1873869 + 1873871 + 1874492 + 1874458 + 1874493 + 1874492 + 1874484 + 1874498 + 1873903 + 1873915 + 1874511 + 1874526 + + + 1740567 + 1750409 + 1747962 + 1747980 + 1627929 + 1627933 + 1747970 + 1747982 + 1747540 + 1747537 + 1747916 + 1747949 + 1627885 + 1627903 + 1747966 + 1747910 + 1747575 + 1747584 + 1747963 + 1747992 + 2650677 + + + 1695213 + 1705070 + 1702542 + 1702552 + 1702539 + 1702528 + 1702526 + 1702547 + 1702150 + 1702162 + 1702490 + 1702507 + 1702486 + 1702505 + 1702506 + 1702486 + 1702210 + 1702202 + 1702536 + 1702543 + 1702549 + 1702519 + + + 1591896 + 1601705 + 1599175 + 1599169 + 1599143 + 1599178 + 1494516 + 1494558 + 1598772 + 1598790 + 1599109 + 1599125 + 1599120 + 1599114 + 1494495 + 1494476 + 1598826 + 1598824 + 1599147 + 1599177 + 1599154 + 1599165 + 2410141 + + + 1542824 + 1552783 + 1550219 + 1550178 + 1550192 + 1550202 + 1550188 + 1550186 + 1549818 + 1549833 + 1550142 + 1550191 + 1550164 + 1550176 + 1550141 + 1550141 + 1549864 + 1549870 + 1550195 + 1550207 + 1550195 + 1550202 + 1548373 + 1550453 + + + 4602414 + 100 + + + 2363962 + 2360418 + 38 + 38 + + + 1754350 + 1756759 + 2481981 + 12 + 12 + 11 + + + 1414555 + 1413264 + 1414596 + 1413456 + 11 + 11 + 11 + 10 + + + 1170602 + 1170851 + 1170701 + 1170945 + 1653757 + 10 + 10 + 10 + 10 + 10 + + + 1010633 + 1012037 + 1011637 + 1011674 + 1011938 + 1010872 + 9 + 9 + 8 + 8 + 8 + 8 + + + 856667 + 855812 + 856461 + 856526 + 856782 + 855850 + 1223300 + 8 + 7 + 7 + 7 + 7 + 7 + 7 + + + 789251 + 789410 + 789370 + 789404 + 788991 + 789003 + 789373 + 789372 + 7 + 7 + 6 + 6 + 6 + 6 + 6 + 6 + + + 646736 + 645999 + 646562 + 646606 + 646584 + 646613 + 646597 + 646629 + 991844 + 6 + 6 + 6 + 6 + 6 + 5 + 5 + 5 + 5 + + + 626763 + 626902 + 626340 + 627165 + 626860 + 626895 + 627074 + 626257 + 626811 + 626856 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + + + 513748 + 513853 + 513844 + 513845 + 513381 + 514111 + 514100 + 513416 + 513814 + 513832 + 822053 + 5 + 5 + 5 + 5 + 5 + 5 + 4 + 4 + 4 + 4 + 4 + + + 479507 + 479633 + 479796 + 479790 + 479797 + 479776 + 479782 + 479792 + 479752 + 479775 + 479763 + 479765 + 5 + 5 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + + + 388408 + 388492 + 388490 + 388490 + 388480 + 388494 + 388985 + 387693 + 388472 + 388472 + 388473 + 388513 + 647167 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + 3 + + + 356221 + 356334 + 355962 + 356556 + 356313 + 356315 + 356310 + 356331 + 356306 + 356325 + 356303 + 356321 + 356510 + 355868 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + + + 297570 + 297659 + 297645 + 297646 + 297647 + 297665 + 297252 + 297821 + 297642 + 297652 + 297850 + 297316 + 297641 + 297669 + 509694 + 4 + 4 + 4 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + + + 273646 + 273767 + 273746 + 273751 + 273734 + 273752 + 273440 + 273957 + 273729 + 273743 + 273743 + 273740 + 273742 + 273741 + 273904 + 273362 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + + + 232885 + 232443 + 232788 + 232794 + 232786 + 232795 + 232785 + 232792 + 232938 + 232423 + 232786 + 232784 + 232784 + 232788 + 232776 + 232805 + 407811 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + + + 219185 + 218792 + 219052 + 219051 + 219049 + 219050 + 219049 + 219052 + 219206 + 218704 + 219041 + 219055 + 219041 + 219061 + 219057 + 219044 + 219042 + 219048 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + + + 197527 + 198092 + 158895 + 158890 + 197869 + 197874 + 198124 + 198132 + 197900 + 197918 + 158882 + 158901 + 198074 + 197615 + 198135 + 198135 + 197911 + 197923 + 307966 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 176815 + 176895 + 176880 + 176877 + 176855 + 176854 + 177056 + 176612 + 176863 + 176880 + 176882 + 176880 + 176570 + 177022 + 176848 + 176856 + 176878 + 176882 + 176885 + 176878 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 154576 + 155081 + 155108 + 154685 + 153720 + 153702 + 154913 + 154922 + 154909 + 154897 + 154907 + 154909 + 153714 + 153712 + 154913 + 154922 + 154907 + 154915 + 154916 + 154905 + 300604 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 147956 + 148026 + 148009 + 148015 + 148011 + 148013 + 148031 + 148016 + 148008 + 148015 + 148016 + 148018 + 148013 + 148016 + 148019 + 148019 + 148170 + 147750 + 148023 + 148021 + 147810 + 148209 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 129551 + 129617 + 129599 + 129612 + 129613 + 129605 + 128731 + 128725 + 129601 + 129605 + 129358 + 129751 + 129408 + 129789 + 128723 + 128724 + 129606 + 129614 + 129610 + 129613 + 129611 + 129610 + 252076 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 123985 + 124060 + 123992 + 123979 + 124046 + 124041 + 124049 + 124034 + 124034 + 124040 + 124039 + 124035 + 124037 + 124041 + 124039 + 124038 + 124042 + 124044 + 124046 + 124045 + 124050 + 124044 + 123895 + 124094 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 3254304 + + + 3230085 + 3236178 + + + 3211428 + 3217655 + 3218102 + + + 3137290 + 3143467 + 3143784 + 3143780 + + + 3121319 + 3127640 + 3127958 + 3127959 + 3128057 + + + 3103155 + 3109433 + 3109748 + 3109767 + 3109757 + 3109759 + + + 3086415 + 3092876 + 3093221 + 3093213 + 3093229 + 3093185 + 3093274 + + + 3071553 + 3077980 + 3078324 + 3078349 + 3078325 + 3078323 + 3078319 + 3078334 + + + 3118587 + 3125168 + 3125567 + 3125553 + 3125549 + 3125570 + 3125575 + 3125543 + 3125601 + + + 3097251 + 3103660 + 3104036 + 3104018 + 3104034 + 3104018 + 3104026 + 3104039 + 3103976 + 3103973 + + + 3009773 + 3016278 + 3016622 + 3016633 + 3016620 + 3016618 + 3016613 + 3016611 + 3016571 + 3016566 + 3016697 + + + 3012166 + 3018631 + 3018994 + 3018969 + 3018981 + 3018971 + 3018989 + 3018985 + 3018945 + 3018931 + 3018945 + 3018928 + + + 2769364 + 2775917 + 2776139 + 2776123 + 2776138 + 2776129 + 2776122 + 2776139 + 2776078 + 2776100 + 2776089 + 2776083 + 3007128 + + + 2623497 + 2630018 + 2630058 + 2630062 + 2630066 + 2630072 + 2630068 + 2630078 + 2630041 + 2630033 + 2630043 + 2630043 + 2630030 + 2630038 + + + 2434866 + 2441461 + 2441341 + 2441313 + 2441338 + 2441343 + 2441343 + 2441332 + 2441314 + 2441312 + 2441299 + 2441306 + 2441313 + 2441302 + 2789683 + + + 2298098 + 2304721 + 2304400 + 2304378 + 2304392 + 2304385 + 2304386 + 2304387 + 2304344 + 2304362 + 2304344 + 2304327 + 2304362 + 2304342 + 2304362 + 2304326 + + + 2147614 + 2154193 + 2153754 + 2153721 + 2153738 + 2153745 + 2153730 + 2153753 + 2153699 + 2153705 + 2153707 + 2153685 + 2153725 + 2153696 + 2153693 + 2153714 + 2629739 + + + 2052413 + 2058999 + 2058481 + 2058454 + 2058478 + 2058472 + 2058462 + 2058474 + 2058443 + 2058433 + 2058425 + 2058426 + 2058420 + 2058425 + 2058422 + 2058417 + 2058471 + 2058464 + + + 1914695 + 1921298 + 1920678 + 1920660 + 1920673 + 1920655 + 1920651 + 1920669 + 1920641 + 1920636 + 1920620 + 1920633 + 1920637 + 1920643 + 1920642 + 1920619 + 1920662 + 1920662 + 2400814 + + + 1853771 + 1860358 + 1859645 + 1859629 + 1859640 + 1859661 + 1859636 + 1859635 + 1859605 + 1859616 + 1859606 + 1859600 + 1859605 + 1859597 + 1859608 + 1859591 + 1859649 + 1859655 + 1859650 + 1859637 + + + 1770522 + 1777082 + 1776390 + 1776350 + 1604585 + 1604578 + 1776398 + 1776385 + 1776294 + 1776271 + 1776340 + 1776318 + 1604553 + 1604546 + 1776369 + 1776347 + 1776327 + 1776319 + 1776372 + 1776370 + 2138618 + + + 1688290 + 1694844 + 1694326 + 1694309 + 1694320 + 1694311 + 1694315 + 1694320 + 1693870 + 1693878 + 1694261 + 1694262 + 1694278 + 1694250 + 1694280 + 1694266 + 1693923 + 1693910 + 1694306 + 1694317 + 1694317 + 1694320 + + + 1622418 + 1628964 + 1628407 + 1628383 + 1628403 + 1628399 + 1465626 + 1465635 + 1627950 + 1627955 + 1628362 + 1628357 + 1628380 + 1628365 + 1465617 + 1465586 + 1627992 + 1627979 + 1628385 + 1628387 + 1628395 + 1628404 + 1953187 + + + 1547993 + 1554439 + 1553873 + 1553847 + 1553859 + 1553837 + 1553795 + 1553795 + 1553385 + 1553384 + 1553811 + 1553799 + 1553813 + 1553824 + 1553780 + 1553757 + 1553429 + 1553428 + 1553837 + 1553863 + 1553847 + 1553849 + 1552296 + 1553928 + + + 3245559 + 59 + + + 2206622 + 2209597 + 22 + 21 + + + 1649698 + 1652658 + 2031932 + 16 + 16 + 15 + + + 1349747 + 1350236 + 1350671 + 1348893 + 13 + 13 + 12 + 12 + + + 1115317 + 1115351 + 1115527 + 1114853 + 1454344 + 10 + 10 + 10 + 10 + 10 + + + 968405 + 968578 + 968652 + 968274 + 969229 + 966044 + 9 + 9 + 8 + 8 + 8 + 8 + + + 828360 + 829352 + 829124 + 828959 + 828988 + 828579 + 1108607 + 8 + 7 + 7 + 7 + 7 + 7 + 7 + + + 753109 + 753288 + 753649 + 753545 + 753699 + 753247 + 753597 + 752832 + 7 + 7 + 6 + 6 + 6 + 6 + 6 + 6 + + + 642421 + 642491 + 642972 + 641575 + 642638 + 642537 + 642517 + 642455 + 908107 + 6 + 6 + 6 + 6 + 6 + 5 + 5 + 5 + 5 + + + 601583 + 601726 + 601700 + 601691 + 601704 + 601660 + 601817 + 600992 + 601642 + 600148 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + + + 509029 + 509215 + 508785 + 509365 + 509373 + 508757 + 509223 + 509199 + 509142 + 508823 + 762921 + 5 + 5 + 5 + 5 + 5 + 5 + 4 + 4 + 4 + 4 + 4 + + + 474520 + 474639 + 474620 + 474665 + 474652 + 474648 + 474643 + 474648 + 474399 + 474399 + 474715 + 473587 + 5 + 5 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + + + 390853 + 390987 + 390723 + 390678 + 390913 + 390937 + 390962 + 390979 + 390938 + 390912 + 390866 + 390543 + 614015 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + 3 + + + 354581 + 354671 + 354654 + 354641 + 354636 + 354663 + 354653 + 354665 + 354363 + 354896 + 354843 + 354281 + 354830 + 353645 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + + + 298506 + 298083 + 298405 + 298409 + 298447 + 298465 + 298479 + 298451 + 298450 + 298459 + 298367 + 298373 + 298745 + 297826 + 488482 + 4 + 4 + 4 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + + + 273162 + 273268 + 273263 + 273254 + 273272 + 273278 + 273268 + 273277 + 273279 + 273297 + 273284 + 273278 + 273295 + 273262 + 273814 + 271757 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + + + 233516 + 233625 + 233571 + 233567 + 233346 + 233748 + 233628 + 233599 + 233573 + 233599 + 233550 + 233543 + 233272 + 233723 + 233575 + 233448 + 394982 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + + + 217987 + 218048 + 218051 + 218037 + 217730 + 218164 + 218054 + 218021 + 218054 + 218022 + 218030 + 218013 + 218032 + 218049 + 218229 + 217757 + 218105 + 217412 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + + + 196715 + 196796 + 169727 + 169746 + 197077 + 197091 + 197826 + 197828 + 196758 + 196731 + 169676 + 169675 + 197102 + 197081 + 197523 + 197995 + 196953 + 196313 + 304517 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 178383 + 178028 + 178311 + 178276 + 178340 + 178325 + 178082 + 178470 + 178268 + 178283 + 178312 + 178303 + 178348 + 178339 + 178321 + 178316 + 178338 + 178233 + 178280 + 177905 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 156035 + 156118 + 155850 + 156210 + 151663 + 151652 + 156116 + 156118 + 156103 + 156104 + 156092 + 156092 + 151664 + 151667 + 156123 + 156108 + 156118 + 156108 + 156283 + 155715 + 289582 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 146560 + 146648 + 146628 + 146601 + 146606 + 146602 + 146646 + 146641 + 146632 + 146627 + 146624 + 146633 + 146352 + 146736 + 146805 + 146444 + 146645 + 146641 + 146648 + 146632 + 146586 + 146279 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 131235 + 131314 + 131299 + 131299 + 131242 + 131224 + 127385 + 127375 + 131303 + 131301 + 131304 + 131303 + 131295 + 131288 + 127373 + 127369 + 131311 + 131309 + 131313 + 131313 + 131326 + 131229 + 246942 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 123660 + 123740 + 123738 + 123718 + 123743 + 123732 + 123720 + 123714 + 123724 + 123726 + 123723 + 123737 + 123727 + 123718 + 123714 + 123708 + 123738 + 123745 + 123733 + 123743 + 123749 + 123728 + 123925 + 123062 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + 7680476 + + + 7649787 + 7658861 + + + 7393540 + 7402581 + 7403140 + + + 7194089 + 7203046 + 7203574 + 7203560 + + + 7087003 + 7095852 + 7096389 + 7096363 + 7096491 + + + 7006696 + 7015461 + 7015941 + 7016000 + 7015947 + 7015996 + + + 6976943 + 6985731 + 6985651 + 6985612 + 6986001 + 6986054 + 7043421 + + + 6682168 + 6690928 + 6690996 + 6691019 + 6691217 + 6691300 + 6692801 + 6692823 + + + 6736624 + 6745348 + 6746148 + 6746156 + 6746117 + 6746141 + 6747971 + 6747968 + 7676536 + + + 6749025 + 6757723 + 6757477 + 6757456 + 6757723 + 6757783 + 6757880 + 6757911 + 7693258 + 7693223 + + + 6671003 + 6679706 + 6679612 + 6679621 + 6680804 + 6680858 + 6681681 + 6681689 + 7404669 + 7404627 + 7404685 + + + 6737618 + 6746369 + 6746416 + 6746489 + 6746789 + 6746824 + 6747222 + 6747265 + 7343011 + 7343034 + 7342977 + 7343007 + + + 6733332 + 6742056 + 6742233 + 6742219 + 6742386 + 6742452 + 6742845 + 6742844 + 7210529 + 7210535 + 7210484 + 7210534 + 7210645 + + + 6691733 + 6700510 + 6700036 + 6700084 + 6700173 + 6700238 + 6701304 + 6701287 + 7072832 + 7072830 + 7088968 + 7088996 + 7088977 + 7089011 + + + 6721849 + 6730583 + 6730294 + 6730321 + 6730411 + 6730453 + 6730146 + 6730131 + 7074144 + 7074121 + 7076841 + 7076863 + 7077436 + 7077458 + 7090189 + + + 6718027 + 6726778 + 6726041 + 6726047 + 6727528 + 6727525 + 6729605 + 6729631 + 6767904 + 6767992 + 6779521 + 6779523 + 6779103 + 6779108 + 6778120 + 6778131 + + + 6687183 + 6695943 + 6695989 + 6696008 + 6696296 + 6696358 + 6696053 + 6696009 + 6765358 + 6765374 + 6780587 + 6780559 + 6779713 + 6779703 + 6787330 + 6787339 + 7674353 + + + 6709011 + 6717861 + 6717036 + 6717045 + 6717409 + 6717461 + 6719484 + 6719457 + 6797765 + 6797773 + 6806790 + 6806778 + 6810897 + 6810933 + 6809928 + 6809954 + 7647776 + 7647806 + + + 6739530 + 6748279 + 6748555 + 6748576 + 6749205 + 6749252 + 6750286 + 6750300 + 6826144 + 6826201 + 6836017 + 6836059 + 6837710 + 6837763 + 6835561 + 6835505 + 7397983 + 7397940 + 7397972 + + + 6748499 + 6757232 + 6757547 + 6757498 + 6758242 + 6758254 + 6757309 + 6757363 + 6817716 + 6817763 + 6824387 + 6824430 + 6827806 + 6827825 + 6827134 + 6827190 + 7366015 + 7366019 + 7365997 + 7365984 + + + 6726093 + 6734831 + 6734482 + 6734490 + 6734692 + 6734702 + 6736344 + 6736363 + 6794287 + 6794321 + 6800684 + 6800717 + 6803867 + 6803909 + 6804429 + 6804434 + 7239650 + 7239630 + 7239608 + 7239574 + 7239666 + + + 6685849 + 6692439 + 6692689 + 6692630 + 6692772 + 6692826 + 6692845 + 6692843 + 6745537 + 6745542 + 6755830 + 6755841 + 6758086 + 6758133 + 6760475 + 6760440 + 7082100 + 7082147 + 7082086 + 7082122 + 7082104 + 7082114 + + + 6726178 + 6734879 + 6734932 + 6734960 + 6735119 + 6735172 + 6734709 + 6734748 + 6813708 + 6813787 + 6819414 + 6819381 + 6821850 + 6821903 + 6822277 + 6822309 + 7050874 + 7050860 + 7051104 + 7051114 + 7051298 + 7051302 + 7058421 + + + 6732039 + 6740799 + 6739953 + 6739922 + 6740444 + 6740482 + 6743768 + 6743812 + 6763824 + 6763887 + 6778202 + 6778178 + 6778302 + 6778317 + 6776805 + 6776837 + 6768008 + 6768084 + 6773716 + 6773687 + 6778367 + 6778379 + 6777990 + 6780252 + + diff --git a/testsuite/epoch01/test_main.c b/testsuite/epoch01/test_main.c new file mode 100644 index 00000000..7f8003b5 --- /dev/null +++ b/testsuite/epoch01/test_main.c @@ -0,0 +1,596 @@ +/* + * Copyright (c) 2018 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +#define TEST_NAME "LIBBSD EPOCH 1" + +#define TEST_XML_NAME "TestEpoch01" + +#define CPU_COUNT 32 + +typedef struct { + uint32_t counter[CPU_COUNT]; + uint32_t removals[CPU_COUNT]; + uint32_t item_counter[CPU_COUNT][CPU_COUNT]; +} test_stats; + +typedef struct test_item { + CK_SLIST_ENTRY(test_item) link; + struct epoch_context ec; + size_t index; + size_t worker_index; +} test_item; + +typedef struct { + rtems_test_parallel_context base; + size_t active_workers; + CK_SLIST_HEAD(, test_item) item_list; + rtems_mutex mtx[2]; + test_item items[CPU_COUNT]; + test_stats stats; +} test_context; + +static test_context test_instance; + +static rtems_interval +test_duration(void) +{ + + return (1 * rtems_clock_get_ticks_per_second()); +} + +static rtems_interval +test_init(rtems_test_parallel_context *base, void *arg, size_t active_workers) +{ + test_context *ctx; + + ctx = (test_context *)base; + memset(&ctx->stats, 0, sizeof(ctx->stats)); + return (test_duration()); +} + +static void +test_fini(rtems_test_parallel_context *base, const char *name, + size_t active_workers) +{ + test_context *ctx; + size_t i; + + ctx = (test_context *)base; + + printf(" <%s activeWorker=\"%zu\">\n", name, active_workers); + + for (i = 0; i < active_workers; ++i) { + printf(" %" PRIu32 "\n", + i, ctx->stats.counter[i]); + } + + for (i = 0; i < active_workers; ++i) { + uint32_t r; + + r = ctx->stats.removals[i]; + if (r > 0) { + printf(" %" PRIu32 + "\n", i, r); + } + } + + printf(" \n", name); +} + +static void +test_enter_exit_body(rtems_test_parallel_context *base, void *arg, + size_t active_workers, size_t worker_index) +{ + test_context *ctx = (test_context *)base; + epoch_t e = global_epoch; + uint32_t counter; + + ctx = (test_context *)base; + e = global_epoch; + counter = 0; + + while (!rtems_test_parallel_stop_job(&ctx->base)) { + epoch_enter(e); + ++counter; + epoch_exit(e); + } + + ctx->stats.counter[worker_index] = counter; +} + +static void +test_enter_exit_fini(rtems_test_parallel_context *base, void *arg, + size_t active_workers) +{ + + test_fini(base, "EnterExit", active_workers); +} + +static rtems_interval +test_list_init(rtems_test_parallel_context *base, void *arg, + size_t active_workers) +{ + test_context *ctx; + size_t i; + + ctx = (test_context *)base; + ctx->active_workers = active_workers; + CK_SLIST_INIT(&ctx->item_list); + + for (i = 0; i < active_workers; ++i) { + test_item *item = &ctx->items[i]; + + CK_SLIST_INSERT_HEAD(&ctx->item_list, item, link); + item->index = i; + + if (i == 0) { + item->worker_index = 0; + } else { + item->worker_index = CPU_COUNT; + } + } + + return (test_init(&ctx->base, arg, active_workers)); +} + +static void +test_list_callback(epoch_context_t ec) +{ + test_context *ctx; + test_item *item; + test_item *next; + + ctx = &test_instance; + item = __containerof(ec, struct test_item, ec); + item->worker_index = (item->worker_index + 1) % ctx->active_workers; + next = CK_SLIST_NEXT(item, link); + + if (next != NULL) { + CK_SLIST_INSERT_AFTER(next, item, link); + } else { + CK_SLIST_INSERT_HEAD(&ctx->item_list, item, link); + } +} + +static void +test_enter_list_op_exit_body(rtems_test_parallel_context *base, void *arg, + size_t active_workers, size_t worker_index) +{ + test_context *ctx; + epoch_t e; + uint32_t counter; + uint32_t removals; + uint32_t item_counter[CPU_COUNT]; + + ctx = (test_context *)base; + e = global_epoch; + counter = 0; + removals = 0; + memset(item_counter, 0, sizeof(item_counter)); + + while (!rtems_test_parallel_stop_job(&ctx->base)) { + test_item *prev; + test_item *item; + test_item *tmp; + test_item *rm; + + epoch_enter(e); + ++counter; + + prev = NULL; + rm = NULL; + CK_SLIST_FOREACH_SAFE(item, &ctx->item_list, link, tmp) { + ++item_counter[item->index]; + + if (item->worker_index == worker_index) { + ++removals; + rm = item; + + if (prev != NULL) { + CK_SLIST_REMOVE_AFTER(prev, link); + } else { + CK_SLIST_REMOVE_HEAD(&ctx->item_list, + link); + } + } + + prev = item; + } + + epoch_exit(e); + + if (rm != NULL) { + epoch_call(e, &rm->ec, test_list_callback); + epoch_wait(e); + } + } + + ctx->stats.counter[worker_index] = counter; + ctx->stats.removals[worker_index] = removals; + memcpy(ctx->stats.item_counter[worker_index], item_counter, + sizeof(ctx->stats.item_counter[worker_index])); +} + +static void +test_enter_list_op_exit_fini(rtems_test_parallel_context *base, void *arg, + size_t active_workers) +{ + + test_fini(base, "EnterListOpExit", active_workers); +} + +static void +test_enter_exit_preempt_body(rtems_test_parallel_context *base, void *arg, + size_t active_workers, size_t worker_index) +{ + test_context *ctx = (test_context *)base; + epoch_t e = global_epoch; + uint32_t counter; + + ctx = (test_context *)base; + e = global_epoch; + counter = 0; + + while (!rtems_test_parallel_stop_job(&ctx->base)) { + epoch_enter_preempt(e); + ++counter; + epoch_exit_preempt(e); + } + + ctx->stats.counter[worker_index] = counter; +} + +static void +test_enter_exit_preempt_fini(rtems_test_parallel_context *base, + void *arg, size_t active_workers) +{ + + test_fini(base, "EnterExitPreempt", active_workers); +} + +static void +test_enter_list_op_exit_preempt_body(rtems_test_parallel_context *base, + void *arg, size_t active_workers, size_t worker_index) +{ + test_context *ctx; + epoch_t e; + uint32_t counter; + uint32_t removals; + uint32_t item_counter[CPU_COUNT]; + + ctx = (test_context *)base; + e = global_epoch; + counter = 0; + removals = 0; + memset(item_counter, 0, sizeof(item_counter)); + + while (!rtems_test_parallel_stop_job(&ctx->base)) { + test_item *prev; + test_item *item; + test_item *tmp; + test_item *rm; + + epoch_enter_preempt(e); + ++counter; + + prev = NULL; + rm = NULL; + CK_SLIST_FOREACH_SAFE(item, &ctx->item_list, link, tmp) { + ++item_counter[item->index]; + + if (item->worker_index == worker_index) { + ++removals; + rm = item; + + if (prev != NULL) { + CK_SLIST_REMOVE_AFTER(prev, link); + } else { + CK_SLIST_REMOVE_HEAD(&ctx->item_list, + link); + } + } + + prev = item; + } + + epoch_exit_preempt(e); + + if (rm != NULL) { + epoch_call(e, &rm->ec, test_list_callback); + epoch_wait_preempt(e); + } + } + + ctx->stats.counter[worker_index] = counter; + ctx->stats.removals[worker_index] = removals; + memcpy(ctx->stats.item_counter[worker_index], item_counter, + sizeof(ctx->stats.item_counter[worker_index])); +} + +static void +test_enter_list_op_exit_preempt_fini(rtems_test_parallel_context *base, + void *arg, size_t active_workers) +{ + + test_fini(base, "EnterListOpExitPreempt", active_workers); +} + +static void +test_thread_local_mutex_body(rtems_test_parallel_context *base, void *arg, + size_t active_workers, size_t worker_index) +{ + test_context *ctx = (test_context *)base; + rtems_mutex mtx; + uint32_t counter; + + ctx = (test_context *)base; + rtems_mutex_init(&mtx, "test"); + counter = 0; + + while (!rtems_test_parallel_stop_job(&ctx->base)) { + rtems_mutex_lock(&mtx); + ++counter; + rtems_mutex_unlock(&mtx); + } + + rtems_mutex_destroy(&mtx); + ctx->stats.counter[worker_index] = counter; +} + +static void +test_thread_local_mutex_fini(rtems_test_parallel_context *base, + void *arg, size_t active_workers) +{ + + test_fini(base, "ThreadLocalMutex", active_workers); +} + +static void +test_enter_mutex_exit_preempt_body(rtems_test_parallel_context *base, + void *arg, size_t active_workers, size_t worker_index) +{ + test_context *ctx = (test_context *)base; + epoch_t e = global_epoch; + uint32_t counter; + rtems_mutex *mtx; + + ctx = (test_context *)base; + e = global_epoch; + counter = 0; + mtx = &ctx->mtx[worker_index % RTEMS_ARRAY_SIZE(ctx->mtx)]; + + while (!rtems_test_parallel_stop_job(&ctx->base)) { + epoch_enter_preempt(e); + rtems_mutex_lock(mtx); + ++counter; + rtems_mutex_unlock(mtx); + epoch_exit_preempt(e); + } + + ctx->stats.counter[worker_index] = counter; +} + +static void +test_enter_mutex_exit_preempt_fini(rtems_test_parallel_context *base, + void *arg, size_t active_workers) +{ + + test_fini(base, "EnterMutexExitPreempt", active_workers); +} + +static const rtems_test_parallel_job test_jobs[] = { + { + .init = test_init, + .body = test_enter_exit_body, + .fini = test_enter_exit_fini, + .cascade = true + }, { + .init = test_list_init, + .body = test_enter_list_op_exit_body, + .fini = test_enter_list_op_exit_fini, + .cascade = true + }, { + .init = test_init, + .body = test_enter_exit_preempt_body, + .fini = test_enter_exit_preempt_fini, + .cascade = true + }, { + .init = test_list_init, + .body = test_enter_list_op_exit_preempt_body, + .fini = test_enter_list_op_exit_preempt_fini, + .cascade = true + }, { + .init = test_init, + .body = test_thread_local_mutex_body, + .fini = test_thread_local_mutex_fini, + .cascade = true + }, { + .init = test_init, + .body = test_enter_mutex_exit_preempt_body, + .fini = test_enter_mutex_exit_preempt_fini, + .cascade = true + } +}; + +static void +set_affinity(rtems_id task, size_t cpu_index) +{ + rtems_status_code sc; + cpu_set_t set; + rtems_id sched; + rtems_task_priority prio; + + sc = rtems_scheduler_ident_by_processor(cpu_index, &sched); + assert(sc == RTEMS_SUCCESSFUL); + + sc = rtems_task_set_priority(task, RTEMS_CURRENT_PRIORITY, &prio); + assert(sc == RTEMS_SUCCESSFUL); + + sc = rtems_task_set_scheduler(task, sched, prio); + assert(sc == RTEMS_SUCCESSFUL); + + CPU_ZERO(&set); + CPU_SET((int)cpu_index, &set); + sc = rtems_task_set_affinity(task, sizeof(set), &set); + assert(sc == RTEMS_SUCCESSFUL); +} + +static void +setup_worker(rtems_test_parallel_context *base, size_t worker_index, + rtems_id worker_id) +{ + + set_affinity(worker_id, worker_index); +} + +static void +test_main(void) +{ + test_context *ctx; + + ctx = &test_instance; + rtems_mutex_init(&ctx->mtx[0], "test 0"); + rtems_mutex_init(&ctx->mtx[1], "test 1"); + + printf("<" TEST_XML_NAME ">\n"); + + setup_worker(&ctx->base, 0, rtems_task_self()); + rtems_test_parallel(&ctx->base, setup_worker, &test_jobs[0], + RTEMS_ARRAY_SIZE(test_jobs)); + + printf("\n"); + rtems_mutex_destroy(&ctx->mtx[0]); + rtems_mutex_destroy(&ctx->mtx[1]); + exit(0); +} + +#define CONFIGURE_MAXIMUM_PROCESSORS CPU_COUNT + +#ifdef RTEMS_SMP + +#define CONFIGURE_SCHEDULER_EDF_SMP + +#include + +RTEMS_SCHEDULER_EDF_SMP(a, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(b, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(c, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(d, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(e, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(g, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(h, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(i, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(j, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(k, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(l, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(m, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(n, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(o, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(p, CPU_COUNT); +RTEMS_SCHEDULER_EDF_SMP(q, CPU_COUNT); + +#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(a, rtems_build_name(' ', ' ', ' ', 'a')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(b, rtems_build_name(' ', ' ', ' ', 'b')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(c, rtems_build_name(' ', ' ', ' ', 'c')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(d, rtems_build_name(' ', ' ', ' ', 'd')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(e, rtems_build_name(' ', ' ', ' ', 'e')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(g, rtems_build_name(' ', ' ', ' ', 'g')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(h, rtems_build_name(' ', ' ', ' ', 'h')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(i, rtems_build_name(' ', ' ', ' ', 'i')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(j, rtems_build_name(' ', ' ', ' ', 'j')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(k, rtems_build_name(' ', ' ', ' ', 'k')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(l, rtems_build_name(' ', ' ', ' ', 'l')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(m, rtems_build_name(' ', ' ', ' ', 'm')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(n, rtems_build_name(' ', ' ', ' ', 'n')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(o, rtems_build_name(' ', ' ', ' ', 'o')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(p, rtems_build_name(' ', ' ', ' ', 'p')), \ + RTEMS_SCHEDULER_TABLE_EDF_SMP(q, rtems_build_name(' ', ' ', ' ', 'q')) \ + +#define CONFIGURE_SCHEDULER_ASSIGNMENTS \ + RTEMS_SCHEDULER_ASSIGN(0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY), \ + RTEMS_SCHEDULER_ASSIGN(0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(1, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(1, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(2, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(2, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(3, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(3, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(4, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(4, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(5, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(5, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(6, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(6, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(7, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(7, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(8, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(8, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(9, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(9, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(10, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(10, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(11, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(11, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(12, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(12, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(13, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(13, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(14, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(14, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(15, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL), \ + RTEMS_SCHEDULER_ASSIGN(15, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL) + +#endif /* RTEMS_SMP */ + +#include -- cgit v1.2.3