Quoting Steve Muckle (2016-03-15 20:36:57) > On 03/15/2016 03:37 PM, Michael Turquette wrote: > >>>> Yuck sysfs.. I would really rather we did not expose this per default. > >>>> > > > And certainly not in this weird form. > >>> > > > >>> > > I'm happy to change capacity_margin to up_threshold and use a > >>> > > percentage. > >>> > > > >>> > > The sysfs approach has two benefits. First, it is aligned with cpufreq > >>> > > user expectations. Second, there has been rough consensus that this > >>> > > value should be tunable and sysfs gets us there quickly and > >>> > > painlessly. > >>> > > We're already exporting rate_limit_us for schedutil via sysfs. Is > >>> > > there > >>> > > a better way interface you can recommend? > >> > > >> > It really depends on how tunable you want this to be. Do we always want > >> > this to be a tunable, or just now while we're playing about with the > >> > whole thing? > > > > I had considered this myself, and I really think that Steve and Juri > > should chime in as they have spent more time tuning and running the > > numbers. > > > > I'm inclined to think that a debug version would be good enough, as I > > don't imagine this value being changed at run-time by some userspace > > daemon or something. > > > > Then again, maybe this knob will be part of the mythical > > power-vs-performance slider? > > Patrick Bellasi's schedtune series [0] (which I think is the referenced > mythical slider) aims to provide a more sophisticated interface for > tuning scheduler-driven frequency selection. In addition to a global > boost value it includes a cgroup controller as well for per-task tuning.
/me spends 15 seconds looking schedtune > > I would definitely expect the margin/boost value to be modified at > runtime, for example if the battery is running low, or the user wants > 100% performance for a while, or the userspace framework wants to > temporarily tailor the performance level for a particular set of tasks, etc. Right, and it looks like schedtune is a kernel solution, not userspace solution. The following three interfaces from patch #2 could be used by schedtune: unsigned long cpufreq_get_cfs_capacity_margin(void); void cpufreq_set_cfs_capacity_margin(unsigned long margin); void cpufreq_reset_cfs_capacity_margin(void); Then we can let schedtune worry about the userspace abi. So I'll keep the basic idea of this patch, but explore making it debuggy, instead of sysfsy. Regards, Mike > > [0] http://article.gmane.org/gmane.linux.kernel/2022959

