Re: [PATCH v5 2/7] slob: Respect list_head abstraction layer

From: Vlastimil Babka
Date: Tue Apr 09 2019 - 08:59:58 EST


On 4/3/19 11:13 PM, Tobin C. Harding wrote:

> According to 0day test robot this is triggering an error from
> CHECK_DATA_CORRUPTION when the kernel is built with CONFIG_DEBUG_LIST.

FWIW, that report [1] was for commit 15c8410c67adef from next-20190401. I've
checked and it's still the v4 version, although the report came after you
submitted v5 (it wasn't testing the patches from mailing list, but mmotm). I
don't see any report for the v5 version so I'd expect it to be indeed fixed by
the new approach that adds boolean return parameter to slob_page_alloc().

Vlastimil

[1] https://lore.kernel.org/linux-mm/5ca413c6.9TM84kwWw8lLhnmK%25lkp@xxxxxxxxx/T/#u

> I think this is because list_rotate_to_front() puts the list into an
> invalid state before it calls __list_add(). The thing that has me
> stumped is why this was not happening before this patch series was
> applied? ATM I'm not able to get my test module to trigger this but I'm
> going to try a bit harder today. If I'm right one solution is to modify
> list_rotate_to_front() to _not_ call __list_add() but do it manually,
> this solution doesn't sit well with me though.
>
> So, summing up, I think the patch is correct in that it does the correct
> thing but I think the debugging code doesn't like it because we are
> violating typical usage - so the patch is wrong :)
>
> thanks,
> Tobin.
>