code: func (cache *schedulerCache) moveNodeInfoToHead(name string) {
  	ni, ok := cache.nodes[name]
  	if !ok {
  		klog.Errorf("No NodeInfo with name %v found in the cache", name)
  		return
  	}
  	// if the node info list item is already at the head, we are done.
  	if ni == cache.headNode {
  		return
  	}
  
  	if ni.prev != nil {
  		ni.prev.next = ni.next
  	}
  	if ni.next != nil {
  		ni.next.prev = ni.prev
  	}
  	if cache.headNode != nil {
  		cache.headNode.prev = ni
  	}
  	ni.next = cache.headNode
  	ni.prev = nil
  	cache.headNode = ni
  }
docs: // moveNodeInfoToHead moves a NodeInfo to the head of "cache.nodes" doubly
  // linked list. The head is the most recently updated NodeInfo.
  // We assume cache lock is already acquired.