All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: "Rizvi, Mohammad Faiz Abbas" <faiz_abbas@ti.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	DTML <devicetree@vger.kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	linux-omap <linux-omap@vger.kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>, Kishon <kishon@ti.com>,
	Chunyan Zhang <zhang.chunyan@linaro.org>
Subject: Re: [PATCH v2 1/8] mmc: sdhci: Get rid of finish_tasklet
Date: Thu, 14 Mar 2019 12:40:19 +0100	[thread overview]
Message-ID: <CAK8P3a1KJpWtyUOyyyab03tFYwkeROQXXV1+jM7EJ2d8So2bbA@mail.gmail.com> (raw)
In-Reply-To: <842caafd-1547-1ea6-faf0-27a85a912622@ti.com>

On Tue, Mar 12, 2019 at 6:32 PM Rizvi, Mohammad Faiz Abbas
<faiz_abbas@ti.com> wrote:
> On 3/8/2019 7:06 PM, Adrian Hunter wrote:
> > On 6/03/19 12:00 PM, Faiz Abbas wrote:
> > It is a performance drop that can be avoided, so it might as well be.
> > Splitting the success path from the failure path is common for I/O drivers
> > for similar reasons as here: the success path can be optimized whereas the
> > failure path potentially needs to sleep.
>
> Understood. You wanna keep the success path as fast as possible.

I looked at the sdhci_request_done() function and found that almost all
of it is executed inside of a 'spin_lock_irqsave()', including the potentially
expensive dma_sync_single_for_cpu() calls.

This means there is very little benefit in using the tasklet in the first place,
it could just as well run in the hwirq context that triggered it.

The part that is actually run with interrupts enabled in the tasklet
is mmc_blk_cqe_req_done(), but other drivers also call this from
IRQ context.

       Arnd

  parent reply	other threads:[~2019-03-14 11:40 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-15 19:20 [PATCH v2 0/8] Port am335 and am437 devices to sdhci-omap Faiz Abbas
2019-02-15 19:20 ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 1/8] mmc: sdhci: Get rid of finish_tasklet Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-25  8:17   ` Adrian Hunter
2019-03-06 10:00     ` Faiz Abbas
2019-03-06 10:00       ` Faiz Abbas
2019-03-08 13:36       ` Adrian Hunter
2019-03-12 17:30         ` Rizvi, Mohammad Faiz Abbas
2019-03-12 17:30           ` Rizvi, Mohammad Faiz Abbas
2019-03-14 11:15           ` Grygorii Strashko
2019-03-14 11:15             ` Grygorii Strashko
2019-03-14 11:41             ` Faiz Abbas
2019-03-14 11:41               ` Faiz Abbas
2019-03-14 11:40           ` Arnd Bergmann [this message]
2019-03-18  9:33   ` Ulf Hansson
2019-03-26  7:33     ` Adrian Hunter
2019-04-02  7:59       ` Faiz Abbas
2019-04-02 13:12         ` Adrian Hunter
2019-02-15 19:20 ` [PATCH v2 2/8] mmc: sdhci: add support for using external DMA devices Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 3/8] dt-bindings: sdhci-omap: Add properties for using external dma Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 20:07   ` Tony Lindgren
2019-02-18 13:41     ` Faiz Abbas
2019-02-18 13:41       ` Faiz Abbas
2019-02-18 16:20       ` Tony Lindgren
2019-02-18 16:28         ` Tony Lindgren
2019-02-18 20:12       ` Rob Herring
2019-02-19 13:32         ` Faiz Abbas
2019-02-19 13:32           ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 4/8] mmc: sdhci-omap: Add " Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 5/8] mmc: sdhci: Add quirk for disabling DTO during erase command Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 6/8] mmc: sdhci-omap: Add DISABLE_DTO_FOR_ERASE Quirk Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 7/8] dt-bindings: sdhci-omap: Add am335x and am437x specific bindings Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 19:20 ` [PATCH v2 8/8] mmc: sdhci-omap: Add am335x and am437x specific compatibles Faiz Abbas
2019-02-15 19:20   ` Faiz Abbas
2019-02-15 20:02 ` [PATCH v2 0/8] Port am335 and am437 devices to sdhci-omap Tony Lindgren
2019-02-18 13:49   ` Faiz Abbas
2019-02-18 13:49     ` Faiz Abbas
2019-02-18 16:25     ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK8P3a1KJpWtyUOyyyab03tFYwkeROQXXV1+jM7EJ2d8So2bbA@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=adrian.hunter@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=faiz_abbas@ti.com \
    --cc=kishon@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=zhang.chunyan@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.