Re: [PATCH] zsmalloc: fix obj_to_head use page_private(page) as value but not pointer

From: Hui Zhu
Date: Wed Oct 07 2015 - 00:44:57 EST


On Tue, Oct 6, 2015 at 9:54 PM, Minchan Kim <minchan@xxxxxxxxxx> wrote:
> Hello,
>
> On Mon, Oct 05, 2015 at 04:23:01PM +0800, Hui Zhu wrote:
>> In function obj_malloc:
>> if (!class->huge)
>> /* record handle in the header of allocated chunk */
>> link->handle = handle;
>> else
>> /* record handle in first_page->private */
>> set_page_private(first_page, handle);
>> The huge's page save handle to private directly.
>>
>> But in obj_to_head:
>> if (class->huge) {
>> VM_BUG_ON(!is_first_page(page));
>> return page_private(page);
>
> Typo.
> return *(unsigned long*)page_private(page);
>
> Please fix the description.
>
>> } else
>> return *(unsigned long *)obj;
>> It is used as a pointer.
>>
>> So change obj_to_head use page_private(page) as value but not pointer
>> in obj_to_head.
>
> The reason why there is no problem until now is huge-class page is
> born with ZS_FULL so it couldn't be migrated.
> Therefore, it shouldn't be real bug in practice.
> However, we need this patch for future-work "VM-aware zsmalloced
> page migration" to reduce external fragmentation.
>
>>
>> Signed-off-by: Hui Zhu <zhuhui@xxxxxxxxxx>
>
> With fixing the comment,
>
> Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
>
> Thanks for the fix, Hui.
>

Thanks! I will post a new version.

Best,
Hui

> --
> Kind regards,
> Minchan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/