Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1709489ybk; Thu, 21 May 2020 13:20:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxWsAYaMvLRDh/z7xK63of4CluEBxINfuKBQFy5rAFpnzw/yW3UcK2HN1Y7U2A/JlflSUY5 X-Received: by 2002:a17:906:f916:: with SMTP id lc22mr5268463ejb.96.1590092422339; Thu, 21 May 2020 13:20:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590092422; cv=none; d=google.com; s=arc-20160816; b=sltGp2rB61u23WZt9HEYwKLMyafz4HXC9+9uMQrYcRCziT3CdVBmSe94k4fpWaFzCg rmVew9D2whevlvOB/QG9eX2Vnwz8IqQTHFIfhm61ZNvPlPjSHOzzmw54WRcIagYLm0vA XK2W2hk0gsxkkEdB0XCfTh7gMCYD+kmEGohEBQ/B607/8LDZ9H1rAKnt6jSDgZR/HSiS 6FqUk5fByEW+BeXtFXrAhc9XIbZvQwWQP5eiMBB6ax5ZCYMwfHGzPzVCTEvQo4iGj1t3 7TBdAOPKOLMH0ObXAwRky73+cMEzMNn1QzCiurXWvr5y0VTSOadRSYIIgcvD8X1ungJT 4rAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=huWgXpbDzdljKw3GvlKFMkS9v32YlszvZUodY9Vu2AM=; b=VYTM0z0zxzg0XC34snSmNve93tDqbx0Pu6LWRmDTTkn0xeNh0F3kob8cvw6EmoVnxy aMc23MEWAuUYmfM7XPFw1Nxoi8yX9CGsK366KgCbukHW/G52WgssV9XWzQd3wmIBBZJt 8v6CJ0KjQaLqQh1wCo+2zHD2jZ3WvEJMIdEWRCniPrV9ZAdfleN3onH9eaXcUYNw3BA9 v1z5vVE9xyW1X0Qsb0ecxhNw5Pgf+C3GPmF/UZnzWZBHpWHeIXHilnIFFPChnhJNwwnf xIYLDnMDeVNmc4xTaEtTXILNGx8CxuLXQKWK+6lBIipwPzxOoCy5aDGzDBYOExDtJGvI 1JGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ljg05M5a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hb12si3652560ejb.695.2020.05.21.13.19.59; Thu, 21 May 2020 13:20:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ljg05M5a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728680AbgEUURv (ORCPT + 99 others); Thu, 21 May 2020 16:17:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53206 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726814AbgEUURv (ORCPT ); Thu, 21 May 2020 16:17:51 -0400 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0E76C061A0E for ; Thu, 21 May 2020 13:17:50 -0700 (PDT) Received: by mail-wm1-x344.google.com with SMTP id u1so6659634wmn.3 for ; Thu, 21 May 2020 13:17:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=huWgXpbDzdljKw3GvlKFMkS9v32YlszvZUodY9Vu2AM=; b=ljg05M5aahcskGiy83jjBBWZfs2xI5NxpP4k2fna2chn8rGXb6cpKB3Ef+xrCKF9yn fQC/P/qaZ+2l4SQYIMEb6qRa2UXz12dYEOnRQiH85v1UTuSC4oBFApfWrfv4jSTQp6P2 yoDl/ib6de/OZOfk7HfYqAUJjl1/u8UWS/W/QSGfCiDmKzeNUB/Z8Ib6P50jRUSQVjDM YPfTI5HF8oUlAEgikI2fUumFbbtOfwWNlHE++B0GUji8XWMBv5r+YmHiQ+N90tOpsCSv TYp8Gv596H0ws+AtWZyXGaNYXCgld6k3Tm8qzgYs52/rlQa/zjGouo+MPG/6WsSbm+SO rogg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=huWgXpbDzdljKw3GvlKFMkS9v32YlszvZUodY9Vu2AM=; b=PfbUoNZa8xOjrKy4+cAvnZsAGUCpPc002jKe9rsrWU7fs2knxGEHVEDPe/ZEfWYf7C YJkDpIhJNuMbE2GC62psHL+X9cjZhT8OjkufjpdWrhEjq+kKyDzNwPYEQYfvuQixSS3D zXjevnZQRVQhakD6HheTIYDwMhhsqUDBGpCT7QGpP11SKEMC+hnmk1tLsLbJ1rjKZ/vR m6kTFENUHyQduRhadDrdOXSMLNYgNMfZiJ8kpdM9Gss+/GrQUXJo0bx5Ej2KxqFs09/a fKLwTiFW4m5AYuNbu9BaYWKoFF7pkFV0agTiDP4VpKHgmpkgxsZHeiMeqyA4tp5zhMod 0ezg== X-Gm-Message-State: AOAM531hXlWWVBX6mjkfGcY0IQ2tBKjJfN5oFF0VY7Ze+LRTjXrgtTmX UYKfIHU28UuFMdYG4DtpNk5gJzOuTyDeVXNecNo= X-Received: by 2002:a7b:cf05:: with SMTP id l5mr10778996wmg.100.1590092269456; Thu, 21 May 2020 13:17:49 -0700 (PDT) MIME-Version: 1.0 References: <20200520234520.22563-9-sstabellini@kernel.org> <83c1120f-fe63-dc54-7b82-15a91c748de8@xen.org> In-Reply-To: From: Julien Grall Date: Thu, 21 May 2020 21:17:38 +0100 Message-ID: Subject: Re: [PATCH 09/10] xen/arm: introduce phys/dma translations in xen_dma_sync_for_* To: Stefano Stabellini Cc: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= , Boris Ostrovsky , Konrad Rzeszutek Wilk , xen-devel , linux-kernel@vger.kernel.org, Stefano Stabellini Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 21 May 2020 at 21:08, Stefano Stabellini wrote: > > On Thu, 21 May 2020, Julien Grall wrote: > > > @@ -97,8 +98,7 @@ bool xen_arch_need_swiotlb(struct device *dev, > > > phys_addr_t phys, > > > dma_addr_t dev_addr) > > > { > > > - unsigned int xen_pfn = XEN_PFN_DOWN(phys); > > > - unsigned int bfn = XEN_PFN_DOWN(dev_addr); > > > + unsigned int bfn = XEN_PFN_DOWN(dma_to_phys(dev, dev_addr)); > > > /* > > > * The swiotlb buffer should be used if > > > @@ -115,7 +115,7 @@ bool xen_arch_need_swiotlb(struct device *dev, > > > * require a bounce buffer because the device doesn't support coherent > > > * memory and we are not able to flush the cache. > > > */ > > > - return (!hypercall_cflush && (xen_pfn != bfn) && > > > + return (!hypercall_cflush && !pfn_valid(bfn) && > > > > I believe this change is incorrect. The bfn is a frame based on Xen page > > granularity (always 4K) while pfn_valid() is expecting a frame based on the > > Kernel page granularity. > > Given that kernel granularity >= xen granularity it looks like it would > be safe to use PFN_DOWN instead of XEN_PFN_DOWN: > > unsigned int bfn = PFN_DOWN(dma_to_phys(dev, dev_addr)); Yes. But is the change worth it though? pfn_valid() is definitely going to be more expensive than the current check. Cheers,