Commit Graph

4 Commits

Author SHA1 Message Date
Nico Pache c22181e213 time/kunit: Use correct format specifier
commit e0a1284b293bdf91a68a6d1a0479ad476d0d8ec2
Author: David Gow <davidgow@google.com>
Date:   Wed Feb 21 17:27:17 2024 +0800

    time/kunit: Use correct format specifier

    'days' is a s64 (from div_s64), and so should use a %lld specifier.

    This was found by extending KUnit's assertion macros to use gcc's
    __printf attribute.

    Fixes: 2760105516 ("time: Improve performance of time64_to_tm()")
    Signed-off-by: David Gow <davidgow@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20240221092728.1281499-5-davidgow@google.com

JIRA: https://issues.redhat.com/browse/RHEL-39303
Signed-off-by: Nico Pache <npache@redhat.com>
2024-07-31 20:32:28 -06:00
Nico Pache 1229448521 kunit: time: Mark test as slow using test attributes
commit a547c4ce10bde42d4e9ea63d1155970fbfd77db2
Author: Rae Moar <rmoar@google.com>
Date:   Tue Jul 25 21:25:18 2023 +0000

    kunit: time: Mark test as slow using test attributes

    Mark the time KUnit test, time64_to_tm_test_date_range, as slow using test
    attributes.

    This test ran relatively much slower than most other KUnit tests.

    By marking this test as slow, the test can now be filtered using the KUnit
    test attribute filtering feature. Example: --filter "speed>slow". This will
    run only the tests that have speeds faster than slow. The slow attribute
    will also be outputted in KTAP.

    Reviewed-by: David Gow <davidgow@google.com>
    Signed-off-by: Rae Moar <rmoar@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

JIRA: https://issues.redhat.com/browse/RHEL-5618
Signed-off-by: Nico Pache <npache@redhat.com>
2023-11-02 15:26:58 -06:00
Thomas Gleixner 2d0a9eb23c time/kunit: Add missing MODULE_LICENSE()
[ mingo: MODULE_LICENSE() takes a string. ]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2021-06-28 07:40:23 +02:00
Cassio Neri 2760105516 time: Improve performance of time64_to_tm()
The current implementation of time64_to_tm() contains unnecessary loops,
branches and look-up tables. The new one uses an arithmetic-based algorithm
appeared in [1] and is approximately 3x faster (YMMV).

The drawback is that the new code isn't intuitive and contains many 'magic
numbers' (not unusual for this type of algorithm). However, [1] justifies
all those numbers and, given this function's history, the code is unlikely
to need much maintenance, if any at all.

Add a KUnit test for it which checks every day in a 160,000 years interval
centered at 1970-01-01 against the expected result.

[1] Neri, Schneider, "Euclidean Affine Functions and Applications to
Calendar Algorithms". https://arxiv.org/abs/2102.06959

Signed-off-by: Cassio Neri <cassio.neri@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210622213616.313046-1-cassio.neri@gmail.com
2021-06-24 11:51:59 +02:00