From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751909AbbCVRWL (ORCPT ); Sun, 22 Mar 2015 13:22:11 -0400 Received: from mail-wi0-f180.google.com ([209.85.212.180]:37394 "EHLO mail-wi0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751752AbbCVRWE (ORCPT ); Sun, 22 Mar 2015 13:22:04 -0400 Message-ID: <550EFA38.8030706@plexistor.com> Date: Sun, 22 Mar 2015 19:22:00 +0200 From: Boaz Harrosh User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Dan Williams , Andrew Morton CC: Boaz Harrosh , linux-arch@vger.kernel.org, Jens Axboe , riel@redhat.com, linux-raid , linux-nvdimm , Dave Hansen , "linux-kernel@vger.kernel.org" , Christoph Hellwig , Mel Gorman , linux-fsdevel Subject: Re: [Linux-nvdimm] [RFC PATCH 0/7] evacuate struct page from the block layer References: <20150316201640.33102.33761.stgit@dwillia2-desk3.amr.corp.intel.com> <20150318132650.3336261c58829f49a9af8675@linux-foundation.org> <20150319134313.GF4003@linux.intel.com> <550AF127.9010504@plexistor.com> <20150319125917.6cc2bf02687aab542027d8ac@linux-foundation.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/19/2015 10:59 PM, Dan Williams wrote: > > At least for block-i/o it seems the only place we really need struct > page infrastructure is for kmap(). Given we already need a kmap_pfn() > solution for option 2 a "dynamic allocation" stop along that > development path may just naturally fall out. Really? what about networked block-io, RDMA, FcOE emulated targets, mmaped pointers. virtual-machine bdev drivers Block layer sits in the middle of the stack not at the low end as you make it appear. There are lots of below the bio subsystems that tie into a page struct, which will now stop to operate, unless you do: pfn_to_page() which means a page-less pfn will now crash or will need to be rejected so any where you have a if (page_less_pfn()) ... /* Fail or do some other code like copy */ else page = pfn_to_page() Is a double code path in the Kernel and is a nightmare to maintain. (I'm here for you believe me ;-) ) Thanks Boaz