Re: [RFC]mm/zsmalloc,: trigger BUG_ON in function zs_map_object.

Yisheng Xie
2017-03-29T07:53:03Z

Hi Minchan,

Thanks for your comment!
On 2017/3/29 8:20, Minchan Kim wrote:
> Hello,
>
> On Tue, Mar 28, 2017 at 03:20:22PM +0800, Yisheng Xie wrote:
>> Hi, all,
>>
>> We had backport the no-lru migration to linux-4.1, meanwhile change the
>> ZS_MAX_ZSPAGE_ORDER to 3. Then we met a BUG_ON(!page[1]).
>
> Hmm, I don't know how you backported.
Yes, maybe caused by our unsuitable backport.

>
> There isn't any problem with default ZS_MAX_ZSPAGE_ORDER. Right?
> So, it happens only if you changed it to 3?
I will check whether it will default ZS_MAX_ZSPAGE_ORDER.

>
> Could you tell me what is your base kernel? and what zram/zsmalloc
> version(ie, from what kernel version) you backported to your
> base kernel?
>
We backport from kernel v4.8-rc8 to kernel v4.1.

>>
>> It rarely happen, and presently, what I get is:
>> [6823.316528s]obj=a160701f, obj_idx=15, class{size:2176,objs_per_zspage:15,pages_per_zspage:8}
>> [...]
>> [6823.316619s]BUG: failure at /home/ethan/kernel/linux-4.1/mm/zsmalloc.c:1458/zs_map_object()! ----> BUG_ON(!page[1])
>>
>> It seems that we have allocated an object from a ZS_FULL group?
>> (Actually， I do not get the inuse number of this zspage, which I am trying to.)
>> And presently, I can not find why it happened. Any idea about it?
>
> Although it happens rarely, always above same symptom once it happens?
Yes , though the class size is not the same, which means not from the same class.
however, the (obj_idx == objs_per_zspage) is always true.

Thanks
Yisheng Xie.