Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932924AbcDNSVj (ORCPT ); Thu, 14 Apr 2016 14:21:39 -0400 Received: from mail-wm0-f44.google.com ([74.125.82.44]:35871 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754580AbcDNSVh (ORCPT ); Thu, 14 Apr 2016 14:21:37 -0400 MIME-Version: 1.0 In-Reply-To: References: <570F4F5F.6070209@gmail.com> <570F5973.40809@suse.cz> Date: Thu, 14 Apr 2016 20:21:36 +0200 Message-ID: Subject: Re: [PATCH] z3fold: the 3-fold allocator for compressed pages From: Vitaly Wool To: Seth Jennings Cc: Vlastimil Babka , Linux-MM , LKML , Andrew Morton , 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: 1010 Lines: 23 >> On Thu, Apr 14, 2016 at 5:53 PM, Seth Jennings wrote: >>> This also means that the unbuddied list is broken in this >>> implementation. num_free_chunks() is calculating the _total_ free >>> space in the page. But that is not that the _usable_ free space by a >>> single object, if the middle object has partitioned that free space. >> >> Once again, there is the code in z3fold_free() that makes sure the >> free space within the page is contiguous so I don't think the >> unbuddied list is, or will be, broken. > > Didn't see the relocation before. However, that brings up another > question. How is the code moving objects when the location of that > object is encoded in the handle that has already been given to the > user? Relocation is only necessary when there is one remaining object and it is in the middle. In that case the 'first_num' variable is incremented so its handle already given to user will be resolved as the first object and not the middle. ~vitaly