Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760251AbcKCVfF (ORCPT ); Thu, 3 Nov 2016 17:35:05 -0400 Received: from mail-wm0-f51.google.com ([74.125.82.51]:35900 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752794AbcKCVfD (ORCPT ); Thu, 3 Nov 2016 17:35:03 -0400 MIME-Version: 1.0 In-Reply-To: <20161103141607.855925f33be627dea9731eb3@linux-foundation.org> References: <20161103220428.984a8d09d0c9569e6bc6b8cc@gmail.com> <20161103141607.855925f33be627dea9731eb3@linux-foundation.org> From: Vitaly Wool Date: Thu, 3 Nov 2016 22:35:01 +0100 Message-ID: Subject: Re: [PATH] z3fold: extend compaction function To: Andrew Morton Cc: Linux-MM , LKML , Dan Streetman Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1369 Lines: 30 On Thu, Nov 3, 2016 at 10:16 PM, Andrew Morton wrote: > On Thu, 3 Nov 2016 22:04:28 +0100 Vitaly Wool wrote: > >> z3fold_compact_page() currently only handles the situation when >> there's a single middle chunk within the z3fold page. However it >> may be worth it to move middle chunk closer to either first or >> last chunk, whichever is there, if the gap between them is big >> enough. > > "may be worth it" is vague. Does the patch improve the driver or does > it not? If it *does* improve the driver then in what way? *Why* is is > "worth it"? Yep, I must admit I wasn't clear enough here. Basically compression ratio wise, it always makes sense to move middle chunk as close as possible to another in-page z3fold object, because then the third object can use all the remaining space. However, moving big object just by one chunk will hurt performance without gaining much compression ratio wise. So the gap between the middle object and the edge object should be big enough to justify the move. So, this patch improves compression ratio because in-page compaction becomes more comprehensive; this patch (which came as a surprise) also increases performance in fio randrw tests (I am not 100% sure why, but probably due to less actual page allocations on hot path due to denser in-page allocation). ~vitaly