lkml.org 
[lkml]   [2023]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 3/5] lib/bitmap: add test for bitmap_{from,to}_arr64
    From
    From: Yury Norov <yury.norov@gmail.com>
    Date: Sat, 25 Feb 2023 16:06:45 -0800

    > On Sat, Feb 25, 2023 at 04:05:02PM -0800, Yury Norov wrote:
    >> On Sat, Feb 25, 2023 at 10:47:02AM -0800, Guenter Roeck wrote:
    >>> Hi,
    >>>
    >>> On Thu, Apr 28, 2022 at 01:51:14PM -0700, Yury Norov wrote:
    >>>> Test newly added bitmap_{from,to}_arr64() functions similarly to
    >>>> already existing bitmap_{from,to}_arr32() tests.
    >>>>
    >>>> Signed-off-by: Yury Norov <yury.norov@gmail.com>
    >>>
    >>> Ever since this test is in the tree, several of my boot tests show
    >>> lots of messages such as
    >>>
    >>> test_bitmap: bitmap_to_arr64(nbits == 1): tail is not safely cleared: 0xa5a5a5a500000001 (must be 0x0000000000000001)

    Hmmm, the whole 4 bytes weren't touched.

    >>> test_bitmap: bitmap_to_arr64(nbits == 2): tail is not safely cleared: 0xa5a5a5a500000001 (must be 0x0000000000000003)
    >>> test_bitmap: bitmap_to_arr64(nbits == 3): tail is not safely cleared: 0xa5a5a5a500000001 (must be 0x0000000000000007)

    This is where it gets worse...

    >>> ...
    >>> test_bitmap: bitmap_to_arr64(nbits == 927): tail is not safely cleared: 0xa5a5a5a500000000 (must be 0x000000007fffffff)
    >>> test_bitmap: bitmap_to_arr64(nbits == 928): tail is not safely cleared: 0xa5a5a5a580000000 (must be 0x00000000ffffffff)

    I don't see the pattern how the actual result gets generated. But the
    problem is in the bitmap code rather than in the subtest -- "must be"s
    are fully correct.

    Given that the 0xa5s are present in the upper 32 bits, it is Big Endian
    I guess? Maybe even 32-bit Big Endian? Otherwise I'd start concerning
    how comes it doesn't reproduce on x86_64s :D

    >>
    >> This may be a real problem. Can you share what's the system is? What's
    >> endianness and register length?
    >>
    >> + Alexander Lobakin, the author of the exact subtest.
    >
    > Forgot to add

    Oh, thanks for letting me know!

    >
    >>> but then:
    >>>
    >>> test_bitmap: all 6550 tests passed
    >>
    >> It's because corresponding error path doesn't increment failed_tests
    >> counter. I'll send a fix shortly.

    [...]

    Thanks,
    Olek

    \
     
     \ /
      Last update: 2023-03-27 00:37    [W:3.281 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site