@@ -149,7 +149,7 @@ func (m *MemoryManager) DeregisterVM(vmID string) error {
149149}
150150
151151// Activate Creates an epoller to serve page faults for the VM
152- func (m * MemoryManager ) Activate (vmID string ) error {
152+ func (m * MemoryManager ) Activate (vmID string , conn * net. UnixConn ) error {
153153 logger := log .WithFields (log.Fields {"vmID" : vmID })
154154
155155 logger .Debug ("Activating instance in the memory manager" )
@@ -164,14 +164,6 @@ func (m *MemoryManager) Activate(vmID string) error {
164164
165165 logger .Debug ("TEST: Activate: fetch snapstate by vmID for UFFD" )
166166
167- // originID, ok := m.origins[vmID]
168-
169- // if !ok {
170- // logger.Debug("TEST: not loaded from snapshot")
171- // }
172-
173- // state, ok = m.instances[originID]
174-
175167 state , ok = m .instances [vmID ]
176168
177169 if ! ok {
@@ -187,29 +179,21 @@ func (m *MemoryManager) Activate(vmID string) error {
187179 return errors .New ("VM already active" )
188180 }
189181
190- select {
191- case <- m .startEpollingCh :
192- if err := state .mapGuestMemory (); err != nil {
193- logger .Error ("Failed to map guest memory" )
194- return err
195- }
196-
197- if err := state .getUFFD (); err != nil {
198- logger .Error ("Failed to get uffd" )
199- return err
200- }
182+ if err := state .mapGuestMemory (); err != nil {
183+ logger .Error ("Failed to map guest memory" )
184+ return err
185+ }
201186
202- state .setupStateOnActivate ()
187+ if err := state .getUFFD (conn ); err != nil {
188+ logger .Error ("Failed to get uffd" )
189+ return err
190+ }
203191
204- go state .pollUserPageFaults ( readyCh )
192+ state .setupStateOnActivate ( )
205193
206- <- readyCh
194+ go state . pollUserPageFaults ( readyCh )
207195
208- case <- time .After (100 * time .Second ):
209- return errors .New ("Uffd connection to firecracker timeout" )
210- default :
211- return errors .New ("Failed to start epoller" )
212- }
196+ <- readyCh
213197
214198 return nil
215199}
@@ -229,12 +213,6 @@ func (m *MemoryManager) FetchState(vmID string) error {
229213
230214 m .Lock ()
231215
232- // originID, ok := m.origins[vmID]
233- // if !ok {
234- // logger.Debug("TEST: not loaded from snapshot")
235- // }
236- // state, ok = m.instances[originID]
237-
238216 state , ok = m .instances [vmID ]
239217 if ! ok {
240218 m .Unlock ()
@@ -409,39 +387,6 @@ func (m *MemoryManager) GetUPFLatencyStats(vmID string) ([]*metrics.Metric, erro
409387 return state .latencyMetrics , nil
410388}
411389
412- func (m * MemoryManager ) ListenUffdSocket (uffdSockAddr string ) error {
413- log .Debug ("Start listening to uffd socket" )
414-
415- m .startEpollingOnce .Do (func () {
416- m .startEpollingCh = make (chan struct {})
417- })
418-
419- ln , err := net .Listen ("unix" , uffdSockAddr )
420- if err != nil {
421- log .Errorf ("Failed to listen on uffd socket: %v" , err )
422- return errors .New ("Failed to listen on uffd socket" )
423- }
424- defer ln .Close ()
425-
426- for {
427- conn , err := ln .Accept ()
428- if err != nil {
429- log .Printf ("Failed to accept connection on uffd socket: %v" , err )
430- continue
431- }
432- go func (conn net.Conn ) {
433- defer conn .Close ()
434- if err := ln .Close (); err != nil {
435- log .Printf ("Failed to close uffd socket listener: %v" , err )
436- }
437- close (m .startEpollingCh )
438- }(conn )
439- break
440- }
441-
442- return nil
443- }
444-
445390// Deprecated
446391// func (m *MemoryManager) GetUPFSockPath(vmID string, isSnapshotReady bool) (string, error) {
447392// logger := log.WithFields(log.Fields{"vmID": vmID})
0 commit comments