Hello Minchan, Nice work! On 03/04/2015 02:01 PM, Minchan Kim wrote: > +static void putback_zspage(struct zs_pool *pool, struct size_class *class, > + struct page *first_page) > +{ > + int class_idx; > + enum fullness_group fullness; > + > + BUG_ON(!is_first_page(first_page)); > + > + get_zspage_mapping(first_page, &class_idx, &fullness); > + insert_zspage(first_page, class, fullness); > + fullness = fix_fullness_group(class, first_page); Removal and re-insertion of zspage above can be eliminated, like this: fullness = get_fullness_group(first_page); insert_zspage(first_page, class, fullness); set_zspage_mapping(first_page, class->index, fullness); regards, heesub > if (fullness == ZS_EMPTY) { > + zs_stat_dec(class, OBJ_ALLOCATED, get_maxobj_per_zspage( > + class->size, class->pages_per_zspage)); > atomic_long_sub(class->pages_per_zspage, > &pool->pages_allocated); > + > free_zspage(first_page); > } > } > -EXPORT_SYMBOL_GPL(zs_free); > + -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>