code: func ReloadGlobalConfig() error {
  	confReloadLock.Lock()
  	defer confReloadLock.Unlock()
  
  	nc := NewConfig()
  	if err := nc.Load(reloadConfPath); err != nil {
  		return err
  	}
  	if err := nc.Valid(); err != nil {
  		return err
  	}
  	c := GetGlobalConfig()
  
  	diffs := collectsDiff(*nc, *c, "")
  	if len(diffs) == 0 {
  		return nil
  	}
  	var formattedDiff bytes.Buffer
  	for k, vs := range diffs {
  		formattedDiff.WriteString(fmt.Sprintf(", %v:%v->%v", k, vs[1], vs[0]))
  	}
  	unsupported := make([]string, 0, 2)
  	for k := range diffs {
  		if _, ok := supportedReloadConfigs[k]; !ok {
  			unsupported = append(unsupported, k)
  		}
  	}
  	if len(unsupported) > 0 {
  		return fmt.Errorf("reloading config %v is not supported, only %v are supported now, "+
  			"your changes%s", unsupported, supportedReloadConfList, formattedDiff.String())
  	}
  
  	confReloader(nc, c)
  	globalConf.Store(nc)
  	logutil.Logger(context.Background()).Info("reload config changes" + formattedDiff.String())
  	return nil
  }
docs: // ReloadGlobalConfig reloads global configuration for this server.