code: func (m *ManagerImpl) Start(activePods ActivePodsFunc, sourcesReady config.SourcesReady) error {
  	klog.V(2).Infof("Starting Device Plugin manager")
  
  	m.activePods = activePods
  	m.sourcesReady = sourcesReady
  
  	// Loads in allocatedDevices information from disk.
  	err := m.readCheckpoint()
  	if err != nil {
  		klog.Warningf("Continue after failing to read checkpoint file. Device allocation info may NOT be up-to-date. Err: %v", err)
  	}
  
  	socketPath := filepath.Join(m.socketdir, m.socketname)
  	os.MkdirAll(m.socketdir, 0755)
  
  	// Removes all stale sockets in m.socketdir. Device plugins can monitor
  	// this and use it as a signal to re-register with the new Kubelet.
  	if err := m.removeContents(m.socketdir); err != nil {
  		klog.Errorf("Fail to clean up stale contents under %s: %v", m.socketdir, err)
  	}
  
  	s, err := net.Listen("unix", socketPath)
  	if err != nil {
  		klog.Errorf(errListenSocket+" %v", err)
  		return err
  	}
  
  	m.wg.Add(1)
  	m.server = grpc.NewServer([]grpc.ServerOption{}...)
  
  	pluginapi.RegisterRegistrationServer(m.server, m)
  	go func() {
  		defer m.wg.Done()
  		m.server.Serve(s)
  	}()
  
  	klog.V(2).Infof("Serving device plugin registration server on %q", socketPath)
  
  	return nil
  }
docs: // Start starts the Device Plugin Manager and start initialization of
  // podDevices and allocatedDevices information from checkpointed state and
  // starts device plugin registration service.