Messages in this thread Patch in this message | | | From | Dmitry Safonov <> | Subject | [PATCH 4/9] select: Micro-optimise __estimate_accuracy() | Date | Mon, 9 Sep 2019 11:23:35 +0100 |
| |
Shift on s64 is faster than division, use it instead.
As the result of the patch there is a hardly user-visible effect: poll(), select(), etc syscalls will be a bit more precise on ~2.3% than before because 1000 != 1024 :)
Signed-off-by: Dmitry Safonov <dima@arista.com> --- fs/select.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/fs/select.c b/fs/select.c index 12cdefd3be2d..2477c202631e 100644 --- a/fs/select.c +++ b/fs/select.c @@ -51,15 +51,14 @@ static long __estimate_accuracy(ktime_t slack) { - int divfactor = 1000; - if (slack < 0) return 0; - if (task_nice(current) > 0) - divfactor = divfactor / 5; + /* A bit more precise than 0.1% */ + slack = slack >> 10; - slack = ktime_divns(slack, divfactor); + if (task_nice(current) > 0) + slack = slack * 5; if (slack > MAX_SLACK) return MAX_SLACK; -- 2.23.0
| |