code: func joinBlkio(c *configs.Cgroup, pid int) error {
  	path, err := getSubsystemPath(c, "blkio")
  	if err != nil {
  		return err
  	}
  	if c.BlkioWeightDevice != "" {
  		if err := writeFile(path, "blkio.weight_device", c.BlkioWeightDevice); err != nil {
  			return err
  		}
  	}
  	if c.BlkioThrottleReadBpsDevice != "" {
  		if err := writeFile(path, "blkio.throttle.read_bps_device", c.BlkioThrottleReadBpsDevice); err != nil {
  			return err
  		}
  	}
  	if c.BlkioThrottleWriteBpsDevice != "" {
  		if err := writeFile(path, "blkio.throttle.write_bps_device", c.BlkioThrottleWriteBpsDevice); err != nil {
  			return err
  		}
  	}
  	if c.BlkioThrottleReadIOpsDevice != "" {
  		if err := writeFile(path, "blkio.throttle.read_iops_device", c.BlkioThrottleReadIOpsDevice); err != nil {
  			return err
  		}
  	}
  	if c.BlkioThrottleWriteIOpsDevice != "" {
  		if err := writeFile(path, "blkio.throttle.write_iops_device", c.BlkioThrottleWriteIOpsDevice); err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // `BlockIODeviceWeight` property of systemd does not work properly, and systemd
  // expects device path instead of major minor numbers, which is also confusing
  // for users. So we use fs work around for now.