From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-f67.google.com ([209.85.166.67]:42543 "EHLO mail-io1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725749AbeLAI1R (ORCPT ); Sat, 1 Dec 2018 03:27:17 -0500 Received: by mail-io1-f67.google.com with SMTP id x6so5669926ioa.9 for ; Fri, 30 Nov 2018 13:16:40 -0800 (PST) Subject: Re: [PATCH 24/27] block: implement bio helper to add iter kvec pages to bio To: Al Viro Cc: linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-aio@kvack.org, hch@lst.de References: <20181130165646.27341-1-axboe@kernel.dk> <20181130165646.27341-25-axboe@kernel.dk> <20181130192102.GP2217@ZenIV.linux.org.uk> <6e42d763-9c94-6b84-7099-f5ef5964404c@kernel.dk> <1545b364-df01-51e7-1786-56dde7c49b5d@kernel.dk> <20181130211117.GQ2217@ZenIV.linux.org.uk> From: Jens Axboe Message-ID: <07803d69-84cc-bb39-686f-2f50874ea184@kernel.dk> Date: Fri, 30 Nov 2018 14:16:38 -0700 MIME-Version: 1.0 In-Reply-To: <20181130211117.GQ2217@ZenIV.linux.org.uk> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On 11/30/18 2:11 PM, Al Viro wrote: > On Fri, Nov 30, 2018 at 01:32:21PM -0700, Jens Axboe wrote: >> On 11/30/18 1:15 PM, Jens Axboe wrote: >>> On 11/30/18 12:21 PM, Al Viro wrote: >>>> On Fri, Nov 30, 2018 at 09:56:43AM -0700, Jens Axboe wrote: >>>>> For an ITER_KVEC, we can just iterate the iov and add the pages >>>>> to the bio directly. >>>> >>>>> + page = virt_to_page(kv->iov_base); >>>>> + size = bio_add_page(bio, page, kv->iov_len, >>>>> + offset_in_page(kv->iov_base)); >>>> >>>> Who said that you *can* do virt_to_page() on those? E.g. vmalloc()'ed >>>> addresses are fine for ITER_KVEC, etc. >>> >>> Then how do you set up a kvec based iter with memory you can safely >>> DMA to/from? >> >> Would this make you happy: >> >> if (!is_vmalloc_addr(kv->iov_base)) >> page = virt_to_page(kv->iov_base); >> else >> page = vmalloc_to_page(kv->iov_base); > > Free advice: don't ever let Linus see anything along those lines. Results > tend to be colourful... We already have those lines in the kernel, XFS for instance. Al, could you please try to be helpful instead of being deliberately obtuse? Examples of being helpful: 1) Informing the sender of why something is a bad idea, instead of just saying it's a bad idea. 2) Making helpful suggestions to improve the current situation. -- Jens Axboe