All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: mathieu.poirier@linaro.org, zhang.chunyan@linaro.org,
	pratikp@codeaurora.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org
Subject: Re: [PATCH] coresight: STM: Balance enable/disable
Date: Thu, 19 Jan 2017 12:40:37 +0100	[thread overview]
Message-ID: <20170119114037.GR28024@kroah.com> (raw)
In-Reply-To: <1484589600-21397-1-git-send-email-suzuki.poulose@arm.com>

On Mon, Jan 16, 2017 at 06:00:00PM +0000, Suzuki K Poulose wrote:
> The stm is automatically enabled when an application sets the policy
> via ->link() call back by using coresight_enable(), which keeps the
> refcount of the current users of the STM. However, the unlink() callback
> issues stm_disable() directly, which leaves the STM turned off, without
> the coresight layer knowing about it. This prevents any further uses
> of the STM hardware as the coresight layer still thinks the STM is
> turned on and doesn't enable the hardware when required. Even manually
> enabling the STM via sysfs can't really enable the hw.
> 
> e.g,
> 
>  $ echo 1 > $CS_DEVS/$ETR/enable_sink
>  $ mkdir -p $CONFIG_FS/stp-policy/$source.0/stm_test/
>  $ echo 32768 65535 > $CONFIG_FS/stp-policy/$source.0/stm_test/channels
>  $ echo 64 > $CS_DEVS/$source/traceid
>  $ ./stm_app
>  Sending 64000 byte blocks of pattern 0 at 0us intervals
>  Success to map channel(32768~32783) to 0xffffa95fa000
>  Sending on channel 32768
>  $ dd if=/dev/$ETR of=~/trace.bin.1
>  597+1 records in
>  597+1 records out
>  305920 bytes (306 kB) copied, 0.399952 s, 765 kB/s
>  $ ./stm_app
>  Sending 64000 byte blocks of pattern 0 at 0us intervals
>  Success to map channel(32768~32783) to 0xffff7e9e2000
>  Sending on channel 32768
>  $ dd if=/dev/$ETR of=~/trace.bin.2
>  0+0 records in
>  0+0 records out
>  0 bytes (0 B) copied, 0.0232083 s, 0.0 kB/s
> 
>  Note that we don't get any data from the ETR for the second session.
> 
>  Also dmesg shows :
> 
>  [   77.520458] coresight-tmc 20800000.etr: TMC-ETR enabled
>  [   77.537097] coresight-replicator etr_replicator@20890000: REPLICATOR enabled
>  [   77.558828] coresight-replicator main_replicator@208a0000: REPLICATOR enabled
>  [   77.581068] coresight-funnel 208c0000.main_funnel: FUNNEL inport 0 enabled
>  [   77.602217] coresight-tmc 20840000.etf: TMC-ETF enabled
>  [   77.618422] coresight-stm 20860000.stm: STM tracing enabled
>  [  139.554252] coresight-stm 20860000.stm: STM tracing disabled
>   # End of first tracing session
>  [  146.351135] coresight-tmc 20800000.etr: TMC read start
>  [  146.514486] coresight-tmc 20800000.etr: TMC read end
>   # Note that the STM is not turned on via stm_generic_link()->coresight_enable()
>   # and hence none of the components are turned on.
>  [  152.479080] coresight-tmc 20800000.etr: TMC read start
>  [  152.542632] coresight-tmc 20800000.etr: TMC read end
> 
> This patch fixes the problem by balancing the unlink operation by using
> the coresight_disable(), keeping the coresight layer in sync with the
> hardware state and thus allowing normal usage of the STM component.
> 
> Fixes: commit 237483aa5cf43 ("coresight: stm: adding driver for CoreSight STM component")
> Cc: Pratik Patel <pratikp@codeaurora.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: stable@vger.kernel.org # 4.7+
> Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> Reviewed-by: Chunyan Zhang <zhang.chunyan@linaro.org>
> Reported-by: Robert Walker <robert.walker@arm.com>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
> 
> Greg,
> 
> Without this patch, the coresight STM IP can only be used for one tracing
> session per boot, seriously limiting its usability.

When you resend a patch, please tell me what is different from the
previous version you sent.  I figured it out here, but please do this
next time.

thanks,

greg k-h

WARNING: multiple messages have this Message-ID (diff)
From: gregkh@linuxfoundation.org (Greg KH)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] coresight: STM: Balance enable/disable
Date: Thu, 19 Jan 2017 12:40:37 +0100	[thread overview]
Message-ID: <20170119114037.GR28024@kroah.com> (raw)
In-Reply-To: <1484589600-21397-1-git-send-email-suzuki.poulose@arm.com>

On Mon, Jan 16, 2017 at 06:00:00PM +0000, Suzuki K Poulose wrote:
> The stm is automatically enabled when an application sets the policy
> via ->link() call back by using coresight_enable(), which keeps the
> refcount of the current users of the STM. However, the unlink() callback
> issues stm_disable() directly, which leaves the STM turned off, without
> the coresight layer knowing about it. This prevents any further uses
> of the STM hardware as the coresight layer still thinks the STM is
> turned on and doesn't enable the hardware when required. Even manually
> enabling the STM via sysfs can't really enable the hw.
> 
> e.g,
> 
>  $ echo 1 > $CS_DEVS/$ETR/enable_sink
>  $ mkdir -p $CONFIG_FS/stp-policy/$source.0/stm_test/
>  $ echo 32768 65535 > $CONFIG_FS/stp-policy/$source.0/stm_test/channels
>  $ echo 64 > $CS_DEVS/$source/traceid
>  $ ./stm_app
>  Sending 64000 byte blocks of pattern 0 at 0us intervals
>  Success to map channel(32768~32783) to 0xffffa95fa000
>  Sending on channel 32768
>  $ dd if=/dev/$ETR of=~/trace.bin.1
>  597+1 records in
>  597+1 records out
>  305920 bytes (306 kB) copied, 0.399952 s, 765 kB/s
>  $ ./stm_app
>  Sending 64000 byte blocks of pattern 0 at 0us intervals
>  Success to map channel(32768~32783) to 0xffff7e9e2000
>  Sending on channel 32768
>  $ dd if=/dev/$ETR of=~/trace.bin.2
>  0+0 records in
>  0+0 records out
>  0 bytes (0 B) copied, 0.0232083 s, 0.0 kB/s
> 
>  Note that we don't get any data from the ETR for the second session.
> 
>  Also dmesg shows :
> 
>  [   77.520458] coresight-tmc 20800000.etr: TMC-ETR enabled
>  [   77.537097] coresight-replicator etr_replicator at 20890000: REPLICATOR enabled
>  [   77.558828] coresight-replicator main_replicator at 208a0000: REPLICATOR enabled
>  [   77.581068] coresight-funnel 208c0000.main_funnel: FUNNEL inport 0 enabled
>  [   77.602217] coresight-tmc 20840000.etf: TMC-ETF enabled
>  [   77.618422] coresight-stm 20860000.stm: STM tracing enabled
>  [  139.554252] coresight-stm 20860000.stm: STM tracing disabled
>   # End of first tracing session
>  [  146.351135] coresight-tmc 20800000.etr: TMC read start
>  [  146.514486] coresight-tmc 20800000.etr: TMC read end
>   # Note that the STM is not turned on via stm_generic_link()->coresight_enable()
>   # and hence none of the components are turned on.
>  [  152.479080] coresight-tmc 20800000.etr: TMC read start
>  [  152.542632] coresight-tmc 20800000.etr: TMC read end
> 
> This patch fixes the problem by balancing the unlink operation by using
> the coresight_disable(), keeping the coresight layer in sync with the
> hardware state and thus allowing normal usage of the STM component.
> 
> Fixes: commit 237483aa5cf43 ("coresight: stm: adding driver for CoreSight STM component")
> Cc: Pratik Patel <pratikp@codeaurora.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: stable at vger.kernel.org # 4.7+
> Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> Reviewed-by: Chunyan Zhang <zhang.chunyan@linaro.org>
> Reported-by: Robert Walker <robert.walker@arm.com>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
> 
> Greg,
> 
> Without this patch, the coresight STM IP can only be used for one tracing
> session per boot, seriously limiting its usability.

When you resend a patch, please tell me what is different from the
previous version you sent.  I figured it out here, but please do this
next time.

thanks,

greg k-h

  reply	other threads:[~2017-01-19 11:40 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-16 18:00 [PATCH] coresight: STM: Balance enable/disable Suzuki K Poulose
2017-01-16 18:00 ` Suzuki K Poulose
2017-01-19 11:40 ` Greg KH [this message]
2017-01-19 11:40   ` Greg KH
2017-01-19 13:55   ` Suzuki K Poulose
2017-01-19 13:55     ` Suzuki K Poulose
  -- strict thread matches above, loose matches on Subject: below --
2017-01-10 11:21 Suzuki K Poulose
2017-01-10 11:21 ` Suzuki K Poulose
2017-01-10 17:36 ` Mathieu Poirier
2017-01-10 17:36   ` Mathieu Poirier
2017-01-11 11:41   ` Chunyan Zhang
2017-01-11 11:41     ` Chunyan Zhang
2017-01-11 11:41     ` Chunyan Zhang
2017-01-11 13:59     ` Suzuki K Poulose
2017-01-11 13:59       ` Suzuki K Poulose
2017-01-11 13:59       ` Suzuki K Poulose
2017-01-13  2:10       ` Chunyan Zhang
2017-01-13  2:10         ` Chunyan Zhang
2017-01-13  2:10         ` Chunyan Zhang
2017-01-13 16:48 ` Mathieu Poirier
2017-01-13 16:48   ` Mathieu Poirier
2017-01-13 16:48   ` Mathieu Poirier
2017-01-13 17:11   ` Suzuki K Poulose
2017-01-13 17:11     ` Suzuki K Poulose
2017-01-13 17:11     ` Suzuki K Poulose
2017-01-16 17:50     ` Mathieu Poirier
2017-01-16 17:50       ` Mathieu Poirier
2017-01-16 17:50       ` Mathieu Poirier

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=20170119114037.GR28024@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=pratikp@codeaurora.org \
    --cc=stable@vger.kernel.org \
    --cc=suzuki.poulose@arm.com \
    --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.