[lkml]   [2015]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/3] time: use __builtin_constant_p() in msecs_to_jiffies
In the overall kernel source there currently are
2544 msecs_to_jiffies
126 usecs_to_jiffies
and a few places that are using var * HZ / 1000 constructs
which are not always safe (no check of corner cases) and should
be switched to msecs_to_jiffies (roughly 25 left).
Allowing gcc to fold constants for these calls that in most
cases are passing in constants (roughly 95%) has some potential
to improve performance (and should save a few bytes).

size impact:
without patches vmlinux 24628843
with patches vmlinux 24628797
without patches 27412024
with patches 27412040 (no clue why it is bigger!)
without patches vmlinux.o 22901462
with patches vmlinux.o 22899843

As the changes to the top level Kbuild will impact every architecture
this is probably not enough testing - but should be suitable for a first

Once this is clean a patch for usecs_to_jiffies will be provided as well

The patch set:
0001 moves timeconst.h from kernel/time/ to include/generated/ and makes
it available early enough so that the build can use the constants
for msecs_to_jiffies
0002 rename msecs_to_jiffies to __msecs_to_jiffies, the only modification
is that the < 0 is moved out.
modified version of msecs_to_jiffies that checks for constant via
call to __builtin_constant_p() and calls __msecs_to_jiffies if it
can't determine that the argument is constant.
0003 documentation update and reformatting to kernel-doc format

 \ /
  Last update: 2015-04-05 10:01    [W:0.057 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site