Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3517787imm; Sun, 29 Jul 2018 21:23:31 -0700 (PDT) X-Google-Smtp-Source: AAOMgpc6Eq+AU+dTMnYIE0m7jqd+ZhLop7HZlWqWuJeHwr1eY1udOl4WquagcO5KF/XCImhh9GB0 X-Received: by 2002:a17:902:6ac7:: with SMTP id i7-v6mr15299910plt.288.1532924611435; Sun, 29 Jul 2018 21:23:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532924611; cv=none; d=google.com; s=arc-20160816; b=EFU6Fov1yiJKZ6cXFQz6APOP3riWYg2m6DbDRT/vtB6XgjCZNvVCgo2pGP1GJINIDy pqAh35zgDysTjAur3fOHPQr9ZZdbkHwITUGJIHYua+BR0brPj49VsA+oMda4v4BuL77J HV3xlAHNnUCUiur5yVNLQdPeNZNLkC7bI+T+QVQki9kcgCr1ZVBK7q3f/VjfVxHLh+C9 0accUUnYUbX7pJJvzjQLYmOBH4yLKneWBdqmY/FT5Dt3kdfR4qR1JcpuCoi5SPm3fYcs 5iKrVs7giwQBbdK/7OuHyP4RtYpOyATuSxSKU1y9NrlX58VUCqqwghPtciV3ebU5K91/ XDUg== 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 :arc-authentication-results; bh=FhwskOzh+cnqLX4ce0ESOWWEyTVi5P+K+pd2aEMqJTE=; b=h5IRXw5wi1iCcGrdybrxGxnJ1FXqHEYLVf3P7Fe1UvktpFDv70arLLceFQ0RAKxBwm JUioAXFzn3zqqMTFvgx+rPzRpXDgUEyoj2ZeCWa3L7gmg6DPAV0cPcREX+agsSAjK94j 4IyZfsI1YM02N5lzkvVV4h7wppToRi7Yf7UjQTtfnWCnZVJfepSX7cG8grCDLkXSugQv Db92SmZkatjEt9hU2Vjn/OtC/DU1POzBaYSq77+dPA09txeZglFmLFDBjuS1xBuOizD7 NcDc0Q930bOdorNW6WxWpCaR8fcGBNWwsakSiecDaaaDRLNAPp1dEau4WfewOIPnq332 itUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=enkzUHbZ; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 137-v6si10203115pfx.155.2018.07.29.21.23.16; Sun, 29 Jul 2018 21:23:31 -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=pass header.i=@chromium.org header.s=google header.b=enkzUHbZ; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726370AbeG3Fzc (ORCPT + 99 others); Mon, 30 Jul 2018 01:55:32 -0400 Received: from mail-yb0-f195.google.com ([209.85.213.195]:39516 "EHLO mail-yb0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725845AbeG3Fzc (ORCPT ); Mon, 30 Jul 2018 01:55:32 -0400 Received: by mail-yb0-f195.google.com with SMTP id k124-v6so4251504ybk.6 for ; Sun, 29 Jul 2018 21:22:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=FhwskOzh+cnqLX4ce0ESOWWEyTVi5P+K+pd2aEMqJTE=; b=enkzUHbZFupzTnHLitLIu8LoeocSXc1MlI7Xe+sS5Z57fQZb1363cIuP8pM25tkCm/ Odcs53/wNDUsjb90rUWWgUFRwTaWCVy9zUOAjQ7eQe2WiLUcmNw1lOv96N45vyJ+h34B 3816a/nvEYN/r/M4aX/thaOznkFgsKRuXCY38= 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=FhwskOzh+cnqLX4ce0ESOWWEyTVi5P+K+pd2aEMqJTE=; b=hxiTNZMcBDbtTSir98tpaSYB5/Ojp3mY41FRzQuKGuZ+QUJ/nFGFmopB/xhAKW5lyN vQ5Gd7LFVggrahzgxIK/g6dyoRtAa8pq1XU+YQEOr02Y34CHA2MeP3Zq9IjRh9tPNFec D0U2cRdIAocDy6e66/0Wq+n395ZS0/XfykGCt+9mUEbwZ53VBMe2VsdDsi13TmWRKji0 h86BrV8uMJrfAZTKO7VZa/LGD/wTu3Je0qZ0TGc/zJG1kkiJThGsM/+OZFNnUKRI4jrn iNPy7OQQJ0ySsMEsm2UHBYInaPfIzl0WP8R9D+l6MSM6Eluf6xsliMif/PpQzj1iTjdx CFJA== X-Gm-Message-State: AOUpUlF9ka3upk28wRTElYTkCCrQuGAbN8P/SS2KouNahDleXMxr5b62 J5FVALjPlBKz37gBERoWHNRzSCuWQyQ= X-Received: by 2002:a5b:bc5:: with SMTP id c5-v6mr8125468ybr.290.1532924548320; Sun, 29 Jul 2018 21:22:28 -0700 (PDT) Received: from mail-yw0-f171.google.com (mail-yw0-f171.google.com. [209.85.161.171]) by smtp.gmail.com with ESMTPSA id 139-v6sm5470351ywk.41.2018.07.29.21.22.28 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 29 Jul 2018 21:22:28 -0700 (PDT) Received: by mail-yw0-f171.google.com with SMTP id t18-v6so3907940ywg.2 for ; Sun, 29 Jul 2018 21:22:28 -0700 (PDT) X-Received: by 2002:a0d:dcc3:: with SMTP id f186-v6mr7708778ywe.66.1532924083649; Sun, 29 Jul 2018 21:14:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Tomasz Figa Date: Mon, 30 Jul 2018 13:14:32 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] media: usb: pwc: Don't use coherent DMA buffers for ISO transfer To: "Matwey V. Kornilov" Cc: Alan Stern , Ezequiel Garcia , hdegoede@redhat.com, Hans Verkuil , Mauro Carvalho Chehab , Laurent Pinchart , rostedt@goodmis.org, mingo@redhat.com, Mike Isely , Bhumika Goyal , Colin King , Linux Media Mailing List , Linux Kernel Mailing List , Kieran Bingham , keiichiw@chromium.org 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 Wed, Jul 25, 2018 at 10:47 PM Matwey V. Kornilov wrote: > > 2018-07-24 23:55 GMT+03:00 Alan Stern : > > On Tue, 24 Jul 2018, Matwey V. Kornilov wrote: > > > >> 2018-07-23 21:57 GMT+03:00 Alan Stern : > >> > On Mon, 23 Jul 2018, Matwey V. Kornilov wrote: > >> > > >> >> I've tried to strategies: > >> >> > >> >> 1) Use dma_unmap and dma_map inside the handler (I suppose this is > >> >> similar to how USB core does when there is no URB_NO_TRANSFER_DMA_MAP) > >> > > >> > Yes. > >> > > >> >> 2) Use sync_cpu and sync_device inside the handler (and dma_map only > >> >> once at memory allocation) > >> >> > >> >> It is interesting that dma_unmap/dma_map pair leads to the lower > >> >> overhead (+1us) than sync_cpu/sync_device (+2us) at x86_64 platform. > >> >> At armv7l platform using dma_unmap/dma_map leads to ~50 usec in the > >> >> handler, and sync_cpu/sync_device - ~65 usec. > >> >> > >> >> However, I am not sure is it mandatory to call > >> >> dma_sync_single_for_device for FROM_DEVICE direction? > >> > > >> > According to Documentation/DMA-API-HOWTO.txt, the CPU should not write > >> > to a DMA_FROM_DEVICE-mapped area, so dma_sync_single_for_device() is > >> > not needed. > >> > >> Well, I measured the following at armv7l. The handler execution time > >> (URB_NO_TRANSFER_DMA_MAP is used for all cases): > >> > >> 1) coherent DMA: ~3000 usec (pwc is not functional) > >> 2) explicit dma_unmap and dma_map in the handler: ~52 usec > >> 3) explicit dma_sync_single_for_cpu (no dma_sync_single_for_device): ~56 usec That's very strange because on ARM dma_unmap_single() does exactly the same thing as dma_sync_single_for_cpu(): arm_dma_map_page() https://elixir.bootlin.com/linux/v4.18-rc7/source/arch/arm/mm/dma-mapping.c#L129 arm_dma_unmap_page() https://elixir.bootlin.com/linux/v4.18-rc7/source/arch/arm/mm/dma-mapping.c#L159 arm_dma_sync_single_for_cpu() https://elixir.bootlin.com/linux/v4.18-rc7/source/arch/arm/mm/dma-mapping.c#L167 Could you post the code you used for testing of cases 2) and 3)? Best regards, Tomasz