cpugroups for hyperv hypervisor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey folks,

My team is working on exposing `cpugroups` to Libvirt while using 'hyperv' hypervisor with cloud-hypervisor(VMM). cpugroups are relevant in a specific configuration of hyperv called 'minroot'. In Minroot configuration, hypervisor artificially restricts Dom0 to run on a subset of cpus (Logical Processors). The rest of the cpus can be assigned to guests.

cpugroups manage the CPUs assigned to guests and their scheduling properties. Initially this looks similar to `cpuset` (in cgroups), but the controls available with cpugroups don't map easily to those in cgroups. For example:

* "IdleLPs" are the number of Logical Processors in a cpugroup, that should be reserved to a guest even if they are idle * "SchedulingPriority", the priority(values between 0..7) with which to schedule CPUs in a cpugroup.

As controls like above don't easily map to anything in cgroups, using a driver specific element in Domain xml, to configure cpugroups seems like a right approach. For example:


<ch:cpugroups>
  <idle_lps value='4'/>
    <scheduling_priority value='6'/>
</ch:cpugroups>

As cpugroups is only relevant while using minroot configuration on hyperv, I don't see any value in generalizing this setting. So, having some "ch" driver specific settings seems like a good approach to implement this feature.

Question1: Do you see any concerns with this approach?


The cpugroup settings can be applied/modified using sysfs interface or using a cmdline tool on the host. I see Libvirt uses both these mechanisms for various use cases. But, given a choice, sysfs based interface seems like a simpler approach to me. With sysfs interface Libvirt does not have to take install time dependencies on new tools.

Question2: Of "sysfs" vs "cmdline tool" which is preferred, given a choice?


Early feedback from the community will help us invest in the preferred choices sooner than later. Thanks for your consideration.


References:

* https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/manage-hyper-v-cpugroups

--
Regards,
Praveen



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux