Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751905AbdGaHgx (ORCPT ); Mon, 31 Jul 2017 03:36:53 -0400 Received: from LGEAMRELO12.lge.com ([156.147.23.52]:51585 "EHLO lgeamrelo12.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751706AbdGaHgu (ORCPT ); Mon, 31 Jul 2017 03:36:50 -0400 X-Original-SENDERIP: 156.147.1.151 X-Original-MAILFROM: minchan@kernel.org X-Original-SENDERIP: 10.177.220.163 X-Original-MAILFROM: minchan@kernel.org Date: Mon, 31 Jul 2017 16:36:47 +0900 From: Minchan Kim To: Christoph Hellwig Cc: Andrew Morton , Matthew Wilcox , Ross Zwisler , linux-kernel@vger.kernel.org, "karam . lee" , Jerome Marchand , Nitin Gupta , seungho1.park@lge.com, Dan Williams , Dave Chinner , Jan Kara , Jens Axboe , Vishal Verma , linux-nvdimm@lists.01.org Subject: Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Message-ID: <20170731073647.GA26199@bbox> References: <20170728165604.10455-1-ross.zwisler@linux.intel.com> <20170728173143.GE15980@bombadil.infradead.org> <20170728142123.729b20e9fcf45c6a814f18e7@linux-foundation.org> <20170730221659.GA28031@bbox> <20170731071707.GA16299@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170731071707.GA16299@lst.de> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 789 Lines: 15 On Mon, Jul 31, 2017 at 09:17:07AM +0200, Christoph Hellwig wrote: > On Mon, Jul 31, 2017 at 07:16:59AM +0900, Minchan Kim wrote: > > rw_page's gain is reducing of dynamic allocation in swap path > > as well as performance gain thorugh avoiding bio allocation. > > And it would be important in memory pressure situation. > > There is no need for any dynamic allocation when using the bio > path. Take a look at __blkdev_direct_IO_simple for an example > that doesn't do any allocations. Do you suggest define something special flag(e.g., SWP_INMEMORY) for in-memory swap to swap_info_struct when swapon time manually or from bdi_queue_someting automatically? And depending the flag of swap_info_struct, use the onstack bio instead of dynamic allocation if the swap device is in-memory?