Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp753767ybe; Fri, 6 Sep 2019 06:51:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqxAFZ1L1dF5H2J6ykxpr+G7FvKlAK/ew+7E5wLwkOJvfHLUhzIpHNmISuLdQxbKYA1YOQ89 X-Received: by 2002:a17:90a:a78b:: with SMTP id f11mr10042119pjq.16.1567777898876; Fri, 06 Sep 2019 06:51:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567777898; cv=none; d=google.com; s=arc-20160816; b=Ho3VmypOoHjlfGpl2pLzt7GIOeQrAh/RJogD6dAATAqZeyjpoqhU+5S2zNUc2RuwN5 fFmyI2kbdU4IaYYlhMds83D1VEbge7o8xp52Hkmb4sa4BUp8u1E3oPUBHfG0NJNrc+SW VzWQB4IkK7TqbHrpT50yeDwH7A9HKK6Q6OuY10ApBv7Cur9+azjH/yBC1fDInVMKmzbp uYRhO/lssNDOlNVEpT3IrttQSIRIMQJGYXVvekbKDHZK4wy39OClCQelD1XXdJ/hm51R dR4wRMvFGvKmczfOupv1xE2oCpHWV7in8/jIOeBdZK4IunQgaL34nAfXzbaHjz6BO+uc M55w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject :dkim-signature; bh=lyJFjdOhyv+b48rolKDKEtLIZloUmKyaiDhuk3zQJkM=; b=QpEP0l/D0JBYqGSbTe/RLo93Sr3N9WidcRmL+6ibIEjtMnsw49YHc5tKxt44uQuIxA ZyHC6I0xa9UGIlJqiV31af3L/9nPMFfZsYv7aXZvedgw+CC9a+4WhnTLxH+MLkicfmhH Bcv0hfpSPZ6jlbiwgz12KsVekG9gb8s6+h5RSeZsvvRbmCHyMn9h6Zlx3l5e7BR1J4c0 pvK8GbqFWiVASlP7W3TD4ma0rAPIuQwLuIA7Y4bvWdq5VRlVxMNOGRi7Cnmj3VuuH8I1 KFgEN3uhBwsk5Lml3Veb0Vm61gXtZBLyyf+/Q7ECOtcWcFXNYpD+VYmeBnk5iPivPasV Pa5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@shipmail.org header.s=mail header.b="buQfI/mr"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g17si4374060pgd.357.2019.09.06.06.51.22; Fri, 06 Sep 2019 06:51:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail (test mode) header.i=@shipmail.org header.s=mail header.b="buQfI/mr"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388583AbfIFHKO (ORCPT + 99 others); Fri, 6 Sep 2019 03:10:14 -0400 Received: from ste-pvt-msa1.bahnhof.se ([213.80.101.70]:24744 "EHLO ste-pvt-msa1.bahnhof.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731486AbfIFHKO (ORCPT ); Fri, 6 Sep 2019 03:10:14 -0400 Received: from localhost (localhost [127.0.0.1]) by ste-pvt-msa1.bahnhof.se (Postfix) with ESMTP id 699053F6C6; Fri, 6 Sep 2019 09:10:11 +0200 (CEST) Authentication-Results: ste-pvt-msa1.bahnhof.se; dkim=pass (1024-bit key; unprotected) header.d=shipmail.org header.i=@shipmail.org header.b=buQfI/mr; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at bahnhof.se X-Spam-Flag: NO X-Spam-Score: -2.099 X-Spam-Level: X-Spam-Status: No, score=-2.099 tagged_above=-999 required=6.31 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no Received: from ste-pvt-msa1.bahnhof.se ([127.0.0.1]) by localhost (ste-pvt-msa1.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4ixBRuMY-L4Q; Fri, 6 Sep 2019 09:10:10 +0200 (CEST) Received: from mail1.shipmail.org (h-205-35.A357.priv.bahnhof.se [155.4.205.35]) (Authenticated sender: mb878879) by ste-pvt-msa1.bahnhof.se (Postfix) with ESMTPA id 7DE5D3F6BB; Fri, 6 Sep 2019 09:10:08 +0200 (CEST) Received: from localhost.localdomain (h-205-35.A357.priv.bahnhof.se [155.4.205.35]) by mail1.shipmail.org (Postfix) with ESMTPSA id A05333605D3; Fri, 6 Sep 2019 09:10:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=shipmail.org; s=mail; t=1567753808; bh=FB65Rj3GcD4Ldfov0vz/hqx02T2cTvUugB7Vb70P7F0=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=buQfI/mr9tW7P1UIN482/LKW64dDcNBWDTWSVURqbg8ocHxrMV/gpCBY50rO5TMhP jsanvRv0/45tI5rxtq7qzdubh1yrrezITdzlulU1aXLDz9Hs6+VEW3E+HtUT4Y6vbi P50iInhPLEYFfnQkic2Je2fZhJ0jj4N3mdYWy4eM= Subject: Re: dma_mmap_fault discussion To: Christoph Hellwig Cc: linux-kernel@vger.kernel.org, "pv-drivers@vmware.com" , Thomas Hellstrom , Dave Hansen , =?UTF-8?Q?Christian_K=c3=b6nig?= References: <20190905103541.4161-1-thomas_os@shipmail.org> <20190905103541.4161-2-thomas_os@shipmail.org> <608bbec6-448e-f9d5-b29a-1984225eb078@intel.com> <20190905152438.GA18286@infradead.org> <20190906063203.GA25415@infradead.org> From: =?UTF-8?Q?Thomas_Hellstr=c3=b6m_=28VMware=29?= Organization: VMware Inc. Message-ID: Date: Fri, 6 Sep 2019 09:10:08 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190906063203.GA25415@infradead.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 9/6/19 8:32 AM, Christoph Hellwig wrote: > On Thu, Sep 05, 2019 at 07:05:43PM +0200, Thomas Hellström (VMware) wrote: >> I took a quick look at the interfaces and have two questions: >> >> 1) dma_mmap_prepare(), would it be possible to drop the references to the >> actual coherent region? The thing is that TTM doesn't know at mmap time what >> memory will be backing the region. It can be VRAM, coherent memory or system > I guess we can shift the argument checking into the fault handler. > >> 2) @cpu_addr and @dma_addr are the values pointing at the beginning of an >> allocated chunk, right? > Yes. > >> The reason I'm asking is that TTM's coherent memory >> pool is sub-allocating from larger chunks into smaller PAGE_SIZE chunks, >> which means that a TTM buffer object may be randomly split across larger >> chunks, which means we have to store these values for each PAGE_SiZE chunk. > For implementations that remap non-contigous regions using vmap we need the > start cpu address passed, as that is used to find the vm_struct structure > for it. That being said I don't see a problem with you keeping track > of the original start and offset into in your suballocation helpers. It's definitely possible. I was just wondering whether it was necessary, but it seems like it. Thanks, Thomas