lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Mon, 23 Apr 2012 12:31:30 +0000
From:	cucinotta@...up.it
To:	"Peter Zijlstra" <peterz@...radead.org>,
	"Juri Lelli" <juri.lelli@...il.com>
Cc:	tglx@...utronix.de, mingo@...hat.com, rostedt@...dmis.org,
	cfriesen@...tel.com, oleg@...hat.com, fweisbec@...il.com,
	darren@...art.com, johan.eker@...csson.com, p.faure@...tech.ch,
	linux-kernel@...r.kernel.org, claudio@...dence.eu.com,
	michael@...rulasolutions.com,
	"Fabio Checconi" <fchecconi@...il.com>,
	"Tommaso Cucinotta" <tommaso.cucinotta@...up.it>,
	nicola.manica@...i.unitn.it, luca.abeni@...tn.it,
	dhaval.giani@...il.com, hgu1972@...il.com,
	paulmck@...ux.vnet.ibm.com, "Dario Faggioli" <raistlin@...ux.it>,
	insop.song@...csson.com, liming.wang@...driver.com
Subject: Re: [PATCH 05/16] sched: SCHED_DEADLINE policy implementation.

How would it be to add an unlikely() to the check of the while () condition ?
Guess the point of subtractions vs division and multiplications was that the former was supposed to be faster than the latter, especially in view of the fact that the while () loop body is likely to be executed just once, if at all.
However, removing a while () loop from the scheduler path doesn't seem a bad idea either.

  T.
------Original Message------
From: Peter Zijlstra
To: Juri Lelli
Cc: tglx@...utronix.de
Cc: mingo@...hat.com
Cc: rostedt@...dmis.org
Cc: cfriesen@...tel.com
Cc: oleg@...hat.com
Cc: fweisbec@...il.com
Cc: darren@...art.com
Cc: johan.eker@...csson.com
Cc: p.faure@...tech.ch
Cc: linux-kernel@...r.kernel.org
Cc: claudio@...dence.eu.com
Cc: michael@...rulasolutions.com
Cc: Fabio Checconi
Cc: Tommaso Cucinotta
Cc: nicola.manica@...i.unitn.it
Cc: luca.abeni@...tn.it
Cc: dhaval.giani@...il.com
Cc: hgu1972@...il.com
Cc: paulmck@...ux.vnet.ibm.com
Cc: Dario Faggioli
Cc: insop.song@...csson.com
Cc: liming.wang@...driver.com
Subject: Re: [PATCH 05/16] sched: SCHED_DEADLINE policy implementation.
Sent: 23 Apr 2012 13:22

On Mon, 2012-04-23 at 14:13 +0200, Juri Lelli wrote:
> On 04/23/2012 01:32 PM, Peter Zijlstra wrote:
> > On Fri, 2012-04-06 at 09:14 +0200, Juri Lelli wrote:
> >> +       /*
> >> +        * We Keep moving the deadline away until we get some
> >> +        * available runtime for the entity. This ensures correct
> >> +        * handling of situations where the runtime overrun is
> >> +        * arbitrary large.
> >> +        */
> >> +       while (dl_se->runtime<= 0) {
> >> +               dl_se->deadline += dl_se->dl_deadline;
> >> +               dl_se->runtime += dl_se->dl_runtime;
> >> +       }
> >
> > Does gcc 'optimize' that into a division? If so, it might need special
> > glue to make it not do that.
> 
> I got two adds and a jle, no div here..

Gcc is known to change such loops to something like:

 if (runtime <= 0) {
   tmp = 1 - runtime / dl_runtime;
   deadline += tmp * dl_deadline;
   runtime += tmp * dl_runtime;
 }



Sent from my BlackBerry® smartphone from eMobile

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ