On Wed, Apr 05, 2023 at 02:08:43PM -0700, Saravana Kannan wrote: > The only 2 pieces of information shared between host/guest are: > > 1. Host CPU frequency -- this isn't really scheduler internals and > will map nicely to a virtual cpufreq driver. > > 2. A vCPU util value between 0 - 1024 where 1024 corresponds to the > highest performance point across all CPUs (taking freq, arch, etc into > consideration). Yes, this currently matches how the run queue util is > tracked, but we can document the interface as "percentage of max > performance capability", but representing it as 0 - 1024 instead of > 0-100. That way, even if the scheduler changes how it tracks util in > the future, we can still keep this interface between guest/host and > map it appropriately on the host end. > > In either case, we could even have a Windows guest where they might > track vCPU utilization differently and still have this work with the > Linux host with this interface. > > Does that sound reasonable to you? Yeah, I suppose that's managable. Something that wasn't initially clear to me; all this hard assumes a 1:1 vCPU:CPU relation, right? Which isn't typical in virt land.