From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A495C4360F for ; Mon, 25 Feb 2019 04:37:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6862B20842 for ; Mon, 25 Feb 2019 04:37:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727054AbfBYEhA (ORCPT ); Sun, 24 Feb 2019 23:37:00 -0500 Received: from ipmail03.adl6.internode.on.net ([150.101.137.143]:48044 "EHLO ipmail03.adl6.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726511AbfBYEhA (ORCPT ); Sun, 24 Feb 2019 23:37:00 -0500 Received: from ppp59-167-129-252.static.internode.on.net (HELO dastard) ([59.167.129.252]) by ipmail03.adl6.internode.on.net with ESMTP; 25 Feb 2019 15:06:58 +1030 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1gy80W-0004WM-Bw; Mon, 25 Feb 2019 15:36:48 +1100 Date: Mon, 25 Feb 2019 15:36:48 +1100 From: Dave Chinner To: Ming Lei Cc: "Darrick J . Wong" , linux-xfs@vger.kernel.org, Jens Axboe , Vitaly Kuznetsov , Dave Chinner , Christoph Hellwig , Alexander Duyck , Aaron Lu , Christopher Lameter , Linux FS Devel , linux-mm@kvack.org, linux-block@vger.kernel.org Subject: Re: [PATCH] xfs: allocate sector sized IO buffer via page_frag_alloc Message-ID: <20190225043648.GE23020@dastard> References: <20190225040904.5557-1-ming.lei@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190225040904.5557-1-ming.lei@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org On Mon, Feb 25, 2019 at 12:09:04PM +0800, Ming Lei wrote: > XFS uses kmalloc() to allocate sector sized IO buffer. .... > Use page_frag_alloc() to allocate the sector sized buffer, then the > above issue can be fixed because offset_in_page of allocated buffer > is always sector aligned. Didn't we already reject this approach because page frags cannot be reused and that pages allocated to the frag pool are pinned in memory until all fragments allocated on the page have been freed? i.e. when we consider 64k page machines and 4k block sizes (i.e. default config), every single metadata allocation is a sub-page allocation and so will use this new page frag mechanism. IOWs, it will result in fragmenting memory severely and typical memory reclaim not being able to fix it because the metadata that pins each page is largely unreclaimable... Cheers, Dave. -- Dave Chinner david@fromorbit.com