From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753968AbdL1Sx5 (ORCPT ); Thu, 28 Dec 2017 13:53:57 -0500 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:48926 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750780AbdL1Sx4 (ORCPT ); Thu, 28 Dec 2017 13:53:56 -0500 Date: Thu, 28 Dec 2017 19:53:54 +0100 From: Pavel Machek To: Mike Galbraith Cc: Thomas Gleixner , kernel list , mingo@redhat.com, hpa@zytor.com, x86@kernel.org, peterz@infradead.org Subject: Re: niced tasks on SMT system Message-ID: <20171228185354.GA3631@amd> References: <20171228121024.GA18152@amd> <1514467413.6886.35.camel@gmx.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="fdj2RfSjLxBAspz7" Content-Disposition: inline In-Reply-To: <1514467413.6886.35.camel@gmx.de> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --fdj2RfSjLxBAspz7 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi! > > Ok, so I'm compiling, and I'd like to run a flight simulator. > >=20 > > Flightgear normally does 20fps on my system... kinda low but playable. > >=20 > > I have reniced make -j 5 fo kernel running. Scheduler gives 100% of > > one of CPUs to Flightgear (good), but the smt sibling is used by the > > compilation, and I'm down to 9 fps. Not good. > >=20 > > Even with single-threaded make, I have 10-13fps. > >=20 > > Is there way to learn which CPUs are SMT siblings? >=20 > cat /sys/devices/system/cpu/cpu{N}/topology/thread_siblings Thanks for a hint. Well, something is definitely wrong there: pavel@duo:/data/l/linux-n900$ cat /sys/devices/system/cpu/cpu0/topology/thread_siblings 03 I believe that means that cpu0 & cpu1 are sharing physical cpu. Yet, when I run flightgear and "nice while1". flightgear goes to CPU#0 and while1 to CPU#1. Would not it be nice if while1 went preferably to CPUs #2 and #3? Ok. after a while while1 moved to cpu#2, good. > > Is there way to disable SMT during runtime? >=20 > You could offline them, but wouldn't it be better to tell each which > CPUs they can use, or perhaps partition your box with cpusets? Let me try offlining first... and yes, SMT seems to be problem here. | CPU0 | CPU1 | CPU2 | CPU3 | | | flightgear | off | off | off | 21 fps | | flightgear | while1 | off | off | 17 fps | | flightgear+while1 | off | off | off | 10 fps | | flightgear | off | while1 | off | 21 fps | > > Can I do something to improve Flightgear performance and still do > > compilation? >=20 > Sure, run everything associated with your game as RT, and everything > not game gets the leftover cycles. =A0If there are none, box will > =A0throttle RT to save itself from it's psycho :) driver and you'll know > that you need a bigger box. (it's likely your phone) > Oh yeah, echo NO_RT_RUNTIME_SHARE >=A0/sys/kernel/debug/sched_features > before you try that, otherwise the throttle won't help. Sure, but that is not a problem I have. Scheduler already (correctly) decides that the game is important, and gives game all the time it wants (100% of one CPU). That is not a problem. Problem seems to be that it schedules other tasks to SMT sibling, and that slows down the game quite significantly. Best regards, Pavel --=20 (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blo= g.html --fdj2RfSjLxBAspz7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlpFPcIACgkQMOfwapXb+vKuAgCfXTXJCLvx6v0gqe6U022IDs2t FmsAoJit5y9MYnSb2r7Jg1z8vJKAs7yn =JbCI -----END PGP SIGNATURE----- --fdj2RfSjLxBAspz7--