On Thu, 2018-10-25 at 12:35 -0600, Tamas K Lengyel wrote: > On Thu, Oct 25, 2018 at 12:13 PM Andrew Cooper > wrote: > > > > TBH, I'd perhaps start with an admin control which lets them switch > > between the two modes, and some instructions on how/why they might > > want > > to try switching. > > > > Trying to second-guess the best HT setting automatically is most > > likely > > going to be a lost cause. It will be system specific as to whether > > the > > same workload is better with or without HT. > > This may just not be practically possible at the end as the system > administrator may have no idea what workload will be running on any > given system. It may also vary between one user to the next on the > same system, without the users being allowed to tune such details of > the system. If we can show that with core-scheduling deployed for > most > workloads performance is improved by x % it may be a safe option. > I haven't done this kind of benchmark yet, but I'd say that, if every vCPU of every domain is doing 100% CPU intensive work, core-scheduling isn't going to make much difference, or help you much, as compared to regular scheduling with hyperthreading enabled. Actual numbers may vary depending on whether VMs have odd or even number of vCPUs but, e.g., on hardware with 2 threads per core, and using VMs with at least 2 vCPUs each, the _perfect_ implementation of core-scheduling would still manage to keep all the *threads* busy, which is --as far as our speculations currently go-- what is causing the performance degradation you're seeing. So, again, if it is confirmed that this workload of yours is a particularly bad one for SMT, then you are just better off disabling hyperthreading. And, no, I don't think such a situation is common enough to say "let's disable for everyone by default". > But > if every system needs to be tuned and evaluated in terms of its > eventual workload, that task becomes problematic. > So, the scheduler has the notion of the system load (at least, Credit2 does), and it is in theory possible to put together some heuristics for basically stopping using hyperthreading, upon certain conditions. This, however, I see it as something completely orthogonal from security related consideration and from core-scheduling. Regards, Dario -- <> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Software Engineer @ SUSE https://www.suse.com/