smpcapture01 explanation and expected output.

Jennifer Averett Jennifer.Averett at OARcorp.com
Tue Nov 4 14:22:56 UTC 2014


I was asked to post an explanation of the a test I just submitted for review (smpcapture01).  It is a new SMP test added that does a worst case migration of 4 tasks on a 4 core system tracking and displaying the user extension records. This task is rather complex to describe but using the notation TaskName:Priority:{cpu,cpu} where the third portion indicates the CPUs the task has affinity for. The test starts with the initialization task (UT1:7:{2,3}) starting execution on CPU 3. This results in the following tasks assigned across the CPUs:

*         CPUs 0-2: Idle threads

*         CPU 3: UT1
The UT1 task creates four more tasks as follows:

*         TA1:8:{2,3}

*         TA2:5:{0,1}

*         TA3:6:{0,3}

*         TA3:9:{1}
This should result in the tasks being assigned to CPUs as follows:

*         CPU 0: TA3

*         CPU 1: TA2

*         CPU 2: TA1

*         CPU 3: UT1
TA4 should be ready to execute but waiting on a CPU it has affinity for to become available.
The test then raises the priority of TA4 to 4, resulting in the tasks being assigned to CPUs as follows:

*         CPU 0: TA2

*         CPU 1: TA4

*         CPU 2: UT1

*         CPU 3: TA3
At this point TA1 should still be ready to execute but is waiting on a CPU it has affinity for to become available.
The tasks are then terminated.  Additionally, the capture engine output shows that the migration that can occur during task termination adheres to the affinity settings.
The capture engine output of this test is as follows:
*** BEGIN OF TEST SMPCAPTURE 1 ***
1     0:00:00.008653000            0a010003 TA02   5   5   5 4096  TASK_RECORD
0     0:00:00.008659000            0a010004 TA03   6   6   6 4096  TASK_RECORD
2     0:00:00.008663000            0a010002 TA01   8   8   8 4096  TASK_RECORD
1     0:00:00.008681000          0 0a010003        5   5           SWITCHED_IN
0     0:00:00.008686000          0 0a010004        6   6           SWITCHED_IN
2     0:00:00.008691000          0 0a010002        8   8           SWITCHED_IN
1     0:00:00.008734000      53000 0a010003        5   5           BEGIN
0     0:00:00.008738000      52000 0a010004        6   6           BEGIN
2     0:00:00.008743000      52000 0a010002        8   8           BEGIN
3     0:00:00.008914000            0a010001 UI1    7   7   7 4096  TASK_RECORD
3     0:00:00.008943000          0 0a010001        7   7           CREATED_BY
3     0:00:00.009015000            0a010005 TA04   9   9   9 4096  TASK_RECORD
3     0:00:00.009041000      98000 0a010005        9   9           CREATED
3     0:00:00.009298000     257000 0a010001        7   7           STARTED_BY
3     0:00:00.009326000      28000 0a010005        9   9           STARTED
3     0:00:01.000432000  991106000 0a010001        7   7           SWITCHED_OUT
1     0:00:01.000452000  991718000 0a010003        5   5           SWITCHED_OUT
3     0:00:01.000456000      24000 0a010004        6   6           SWITCHED_IN
0     0:00:01.000473000  991735000 0a010004        6   6           SWITCHED_OUT
1     0:00:01.000476000      24000 0a010005        4   4           SWITCHED_IN
2     0:00:01.000491000  991748000 0a010002        8   8           SWITCHED_OUT
0     0:00:01.000496000      23000 0a010003        5   5           SWITCHED_IN
2     0:00:01.000514000          0 0a010001        7   7           SWITCHED_IN
1     0:00:01.000527000          0 0a010005        4   4           BEGIN
2     0:00:01.500426000  499912000 0a010001        7   7           SWITCHED_OUT
2     0:00:01.500450000      24000 0a010002        7   7           SWITCHED_IN
2     0:00:01.500579000     129000 0a010002        7   7           TERMINATED
2     0:00:01.500731000     152000 0a010002        7   7           SWITCHED_OUT
2     0:00:01.500755000      24000 0a010001        7   7           SWITCHED_IN
2     0:00:01.500966000     211000 0a010001        7   7           SWITCHED_OUT
0     0:00:01.501049000          0 0a010003        7   5           TERMINATED
2     0:00:01.501186000     220000 0a010001        7   7           SWITCHED_IN
0     0:00:01.501200000     151000 0a010003        7   5           SWITCHED_OUT
2     0:00:01.501391000     205000 0a010001        7   7           SWITCHED_OUT
3     0:00:01.501476000          0 0a010004        7   6           TERMINATED
3     0:00:01.501623000     147000 0a010004        7   6           SWITCHED_OUT
3     0:00:01.501649000      26000 0a010001        7   7           SWITCHED_IN
3     0:00:01.501867000     218000 0a010001        7   7           SWITCHED_OUT
1     0:00:01.501945000  501418000 0a010005        7   4           TERMINATED
3     0:00:01.502083000     216000 0a010001        7   7           SWITCHED_IN
1     0:00:01.502136000     191000 0a010005        7   4           SWITCHED_OUT
*** END OF TEST SMPCAPTURE 1 ***



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20141104/52f7007e/attachment-0001.html>


More information about the devel mailing list