[no subject]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



|            bash-1715    [006] .....   124.901510: copy_process: allocC ff=
ffc90007e70000
|      sh-cmds.sh-1746    [007] .....   124.907389: copy_process: allocC ff=
ffc90007dc4000
|          <idle>-0       [019] ...1.   124.918126: free_thread_stack: cach=
e ffffc90007dc4000
|      sh-cmds.sh-1746    [007] .....   124.918279: copy_process: allocC ff=
ffc90007de8000
|          <idle>-0       [004] ...1.   124.920121: free_thread_stack: dela=
y ffffc90007de8001
|          <idle>-0       [007] ...1.   124.920299: free_thread_stack: cach=
e ffffc90007e70000
|          <idle>-0       [007] ..s1.   124.945433: free_thread_stack: cach=
e ffffc90007de8000

TS 124.901510, bash started sh-cmds.sh, obtained stack from cache.
TS 124.907389, script invokes its first command, obtained stacak from
cache. As you can see bash was running on CPU6 but its child was moved
CPU7.=20
TS 124.918126, the first command is done, stack is ached on CPU19.
TS 124.918279, script's second command, ache from stack.
TS 124.920121, the command is done. The stack cache on CPU4 is full.
TS 124.920299, the script is done, caches stack on CPU7.
TS 124.945433, the RCU-callback of last command is now happening. On
CPU7, which is where the command was invoked (but not running). Instead
of freeing the stack, it was cached since CPU7 had an empty slot.

If I pin the script to CPU5 and run it with multiple commands then it
works as expected:

|            bash-1799    [005] .....   993.608131: copy_process: allocC ff=
ffc90007fa0000
|      sh-cmds.sh-1827    [005] .....   993.608888: copy_process: allocC ff=
ffc90007fa8000
|      sh-cmds.sh-1827    [005] .....   993.610734: copy_process: allocV ff=
ffc90007ff4000
|      sh-cmds.sh-1829    [005] ...1.   993.610757: free_thread_stack: cach=
e ffffc90007fa8000
|      sh-cmds.sh-1827    [005] .....   993.612401: copy_process: allocC ff=
ffc90007fa8000
|           <...>-1830    [005] ...1.   993.612416: free_thread_stack: cach=
e ffffc90007ff4000
|      sh-cmds.sh-1827    [005] .....   993.613707: copy_process: allocC ff=
ffc90007ff4000
|      sh-cmds.sh-1831    [005] ...1.   993.613723: free_thread_stack: cach=
e ffffc90007fa8000
|      sh-cmds.sh-1827    [005] .....   993.615024: copy_process: allocC ff=
ffc90007fa8000
|           <...>-1832    [005] ...1.   993.615040: free_thread_stack: cach=
e ffffc90007ff4000
|      sh-cmds.sh-1827    [005] .....   993.616380: copy_process: allocC ff=
ffc90007ff4000
|           <...>-1833    [005] ...1.   993.616397: free_thread_stack: cach=
e ffffc90007fa8000
|            bash-1799    [005] ...1.   993.617759: free_thread_stack: cach=
e ffffc90007fa0000
|          <idle>-0       [005] ...1.   993.617871: free_thread_stack: dela=
y ffffc90007ff4001
|          <idle>-0       [005] ..s1.   993.638311: free_thread_stack: free=
 ffffc90007ff4000

and no new is allocated during its runtime and a cached stack is used.

Sebastian





[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux