Download presentation
Presentation is loading. Please wait.
Published byNoreen Rodgers Modified over 9 years ago
1
Migration Process Chan Seok Kang
2
2Computer Systems and Platforms Lab Reference code Based on Version_MPB/Ver1 j-halt.S driver/net/rckmb.c prepMig.c writeIRQ.c halt.c swapLUT.c / swapMGB.c resumefromHalt.c
3
3Computer Systems and Platforms Lab Process 1-1. prepare to set Migration Flag (prepMig.c) set src & dst pid Create PrivMGB & InfoMGB
4
4Computer Systems and Platforms Lab Process 1-2. write pid into InfoMGB (prepMig.c) Mapping Memory Address & Write processor id in info_buf
5
5Computer Systems and Platforms Lab Process 1-3. Set Flag Mapping Memory Address & Write Migration Flag in priv_buf
6
6Computer Systems and Platforms Lab Process 2-1. Send Interrupt Request (writeIRQ.c) Define Config Register
7
7Computer Systems and Platforms Lab Process Interrupt request Portion of CRB
8
8Computer Systems and Platforms Lab Process 2-2. Mapping Memory Address
9
9Computer Systems and Platforms Lab Process 2-3. Set Interrupt Flag on Mapped Address
10
10Computer Systems and Platforms Lab Process 3-1. Interrupt Handler operates in the driver(rckmb.c) Read migration Flag
11
11Computer Systems and Platforms Lab Process 3-1. Interrupt Handler operates in the driver Check the flag If flag sets PAUSE or RESUME, return 1 else return 0
12
12Computer Systems and Platforms Lab Process 3-2. Migration Process does not happened
13
13Computer Systems and Platforms Lab Process 4-1. Halt operation (halt.c) Define the configure register address
14
14Computer Systems and Platforms Lab Process How to calculate the Config Register Address. BASE_ADDR = 0xE0000000 Reference for Config Register
15
15Computer Systems and Platforms Lab Process How to Calculate the Config Register Address SubAddress of Core configuration register So we can get address from core number!
16
16Computer Systems and Platforms Lab Process 4-2. Halt Operation Set the Clock Mask (~0x40) Map Memory Address Set the clock mask to stop
17
17Computer Systems and Platforms Lab Process 5-1. In network driver(rckmb.c) Read migration Flag
18
18Computer Systems and Platforms Lab Process 5-2. In network driver Check the flag Return 1 ( ∵ set the halt flag)
19
19Computer Systems and Platforms Lab Process 5-3. Migration Process happened
20
20Computer Systems and Platforms Lab Process 5-4. Map the memory address Status : halt Status : resume
21
21Computer Systems and Platforms Lab Process 5-5. Write Halt signal in the memory Write Signal Save esp Flush L1 & L2 Cache Save the register (external)
22
22Computer Systems and Platforms Lab Process 6-1. Register Saving Process ( j-halt.S) Save the register into the argument address Start this point Save the register (external)
23
23Computer Systems and Platforms Lab Process 6-1. Register Saving Registers
24
24Computer Systems and Platforms Lab Process 6-2. Check the condition If flag == RUN, pass this process else check again. So SRC / DST core halts during this session
25
25Computer Systems and Platforms Lab Process 7-1. Swap LookupTable (SwapLUT.c)
26
26Computer Systems and Platforms Lab Process 7-1. Swap LookupTable (SwapLUT.c) Almost same process to gather config register addr Except for RCK_LUT
27
27Computer Systems and Platforms Lab Process How to get LUT register address BASE_ADDR = 0xE0000000 So we can get address from core number!
28
28Computer Systems and Platforms Lab Process 7-1. Swap LookupTable (SwapLUT.c) Get SRC/DST aligned address
29
29Computer Systems and Platforms Lab Process 7-1. Swap LookupTable (SwapLUT.c)
30
30Computer Systems and Platforms Lab Process Private LUT Entries of System Memory
31
31Computer Systems and Platforms Lab Process 7-2. Swap Migration Buffer (swapMGB.c)
32
32Computer Systems and Platforms Lab Process 7-2. Swap Migration Buffer (swapMGB.c) Idea : Utilize the unused shared Memory
33
33Computer Systems and Platforms Lab Process 7-2. Swap Migration Buffer (swapMGB.c)
34
34Computer Systems and Platforms Lab Process 8-1. Resume Process (resumeFromHalt.c)
35
35Computer Systems and Platforms Lab Process 8-1.Resume Process
36
36Computer Systems and Platforms Lab Process 8-1. Resume Process
37
37Computer Systems and Platforms Lab Process 8-1. resume Process
38
38Computer Systems and Platforms Lab Process 9. Pass through the halt process
39
39Computer Systems and Platforms Lab Process 10. and also pass through the migration process in network driver.
40
40Computer Systems and Platforms Lab Process 10. and also pass through the migration process in network driver.
41
41Computer Systems and Platforms Lab Process 10. and also pass through the migration process in network driver.
42
42Computer Systems and Platforms Lab Process 10. and also pass through the migration process in network driver.
43
43Computer Systems and Platforms Lab Process 10. and also pass through the migration process in network driver.
44
44Computer Systems and Platforms Lab Interest thing. Difference Between Direct write in memory and using systemcall(writel()) Writel() -> asm instruction (“movnti”) movnti instruction minimize the impact of processor`s data cache(cache pollution) Direct write ex) **address = result Just write the data whichever mov instruction like (just move)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.