Received: by 10.192.165.156 with SMTP id m28csp1987320imm; Thu, 12 Apr 2018 06:55:20 -0700 (PDT) X-Google-Smtp-Source: AIpwx48Y30otVt7cVe5GWMvRQua2s03aZIDGHDt1LdPpBysf+u0hof+cBVq7l0IdbNrJk4p/BIHN X-Received: by 2002:a17:902:9001:: with SMTP id a1-v6mr1131567plp.211.1523541320800; Thu, 12 Apr 2018 06:55:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523541320; cv=none; d=google.com; s=arc-20160816; b=sM3pFWk0EPpblOZ7EXb20SduuDG7yFg1RcgsBwOVQT3+BybhjOfqcZFVlRP5fzZ59j PhaPTXFk2JoDVbgNUZULH2oS5rF1QtL7zFHvipJp9y0x4+RXYPW5HN5Gdos4NIzAHNJ6 zzSlyYDqte136lQ2TbHeyyMj56RPpOSYlcpjOeTchjr0MJUO8lCeQ5dqduFAVQeHVjRc iB1V/UC5vQTv3tt3WJdpPK++58Xb/nguTqA/1KCHxiVWPFUbSGnQesCDpBrVp1WzUnjy P7lanBHX1kf9D3bGovLD3WUZPDtkvWiOj4IPS7WrRcllNFvWaHekXqmPpiImZ4cZ5ZvC Yldg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=cJXArtcCQxE3IJwRNUnJD3S8sa9l0TNL++Mnz6Cr4AM=; b=Xynh2WTMBe0SvCVez27DdX7ROTxUd01rnrs9MQhW27wjZGpaqG8ZuGH9GB+KbOSeA3 /4d1XI8+3mqttNgqWvpf7d9AfRfeicRSnXY39BvYWQCTM6Kj8TDrMmRt1srBH1cdeIJo rx1+PZaMEXJ7VOtV6v/nZqNUoaBQm3BoErM/P8BJpt3oRXDI01hri287BUHjJkPWgbWD 2gp69LjKewA35SFL0SbFK4XxX8hTJOm2lg7ldpdr4n+ZrxWFlXV2XZxFY5w7hJd9p1Co YOeP3/iWyr2YA6Zq6a1hUuOtTcZZuUQcFXl0k1wG6fyOXaLHFC7peRvgYLzGg/NyeJMm SQ8A== ARC-Authentication-Results: i=1; mx.google.com; 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 o17si2278498pge.787.2018.04.12.06.54.43; Thu, 12 Apr 2018 06:55:20 -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; 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 S1752777AbeDLNvH (ORCPT + 99 others); Thu, 12 Apr 2018 09:51:07 -0400 Received: from foss.arm.com ([217.140.101.70]:33516 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752721AbeDLNvF (ORCPT ); Thu, 12 Apr 2018 09:51:05 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3CE2680D; Thu, 12 Apr 2018 06:51:05 -0700 (PDT) Received: from [10.1.210.88] (e110467-lin.cambridge.arm.com [10.1.210.88]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 991AA3F246; Thu, 12 Apr 2018 06:51:01 -0700 (PDT) Subject: Re: [PATCH V2] drm/amdgpu: limit DMA size to PAGE_SIZE for scatter-gather buffers To: =?UTF-8?Q?Christian_K=c3=b6nig?= , Christoph Hellwig Cc: Sinan Kaya , amd-gfx@lists.freedesktop.org, timur@codeaurora.org, sulrich@codeaurora.org, Tom St Denis , "David (ChunMing) Zhou" , Emily Deng , David Airlie , linux-arm-msm@vger.kernel.org, Felix Kuehling , open list , "open list:DRM DRIVERS" , David Panariti , Jim Qu , Huang Rui , Roger He , Monk Liu , Feifei Xu , Alex Deucher , linux-arm-kernel@lists.infradead.org, iommu@lists.linux-foundation.org References: <1523394001-4615-1-git-send-email-okaya@codeaurora.org> <32b82296-bba5-b5f1-266b-45c1ed66da94@arm.com> <20180412062600.GB30499@lst.de> <6802bd0c-7da6-659a-7e34-8f05d7c6422c@amd.com> From: Robin Murphy Message-ID: <7a3e7459-2965-54c8-ff0c-6edb3a6aecb5@arm.com> Date: Thu, 12 Apr 2018 14:51:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <6802bd0c-7da6-659a-7e34-8f05d7c6422c@amd.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/04/18 10:42, Christian König wrote: > Am 12.04.2018 um 08:26 schrieb Christoph Hellwig: >> On Wed, Apr 11, 2018 at 01:03:59PM +0100, Robin Murphy wrote: >>> On 10/04/18 21:59, Sinan Kaya wrote: >>>> Code is expecing to observe the same number of buffers returned from >>>> dma_map_sg() function compared to sg_alloc_table_from_pages(). This >>>> doesn't hold true universally especially for systems with IOMMU. >>> So why not fix said code? It's clearly not a real hardware >>> limitation, and >>> the map_sg() APIs have potentially returned fewer than nents since >>> forever, >>> so there's really no excuse. >> Yes, relying on dma_map_sg returning the same number of entries as passed >> it is completely bogus. > > I agree that the common DRM functions should be able to deal with both, > but we should let the driver side decide if it wants multiple addresses > combined or not. > >> >>>> IOMMU driver tries to combine buffers into a single DMA address as much >>>> as it can. The right thing is to tell the DMA layer how much combining >>>> IOMMU can do. >>> Disagree; this is a dodgy hack, since you'll now end up passing >>> scatterlists into dma_map_sg() which already violate max_seg_size to >>> begin >>> with, and I think a conscientious DMA API implementation would be at >>> rights >>> to fail the mapping for that reason (I know arm64 happens not to, but >>> that >>> was a deliberate design decision to make my life easier at the time). >> Agreed. > > Sounds like my understanding of max_seg_size is incorrect, what exactly > should that describe? The segment size and boundary mask are there to represent a device's hardware scatter-gather capabilities - a lot of things have limits on the size and alignment of the data pointed to by a single descriptor (e.g. an xHCI TRB, where the data buffer must not cross a 64KB boundary) - although they can also be relevant to non-scatter-gather devices if they just have limits on how big/aligned a single DMA transfer can be. Robin.