linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8
@ 2019-04-17  8:46 twischer
  2019-04-17  9:21 ` [ALSA patch] " Takashi Iwai
  0 siblings, 1 reply; 5+ messages in thread
From: twischer @ 2019-04-17  8:46 UTC (permalink / raw)
  To: patch, broonie, perex, tiwai; +Cc: alsa-devel, linux-kernel, Timo Wischer

From: Timo Wischer <twischer@de.adit-jv.com>

Since ARMv7 hardware cache coherence is supported.
"The SCU maintains coherency between the individual data caches in the
Cortex-A5 MPCore processor using a variation of the MOESI protocol" [1].

Therefore this patch enables the MMAP access to the status and control
structures. This avoids HWSYYNC ioctl calls and therefore lowers the CPU
usage.

[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0434c/
BABJECBF.html

Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
---
 sound/core/pcm_native.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 1d84529..b8019ef 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -3225,7 +3225,8 @@ static __poll_t snd_pcm_poll(struct file *file, poll_table *wait)
  * Only on coherent architectures, we can mmap the status and the control records
  * for effcient data transfer.  On others, we have to use HWSYNC ioctl...
  */
-#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA)
+#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) || \
+	(defined(CONFIG_ARM) && defined(CONFIG_CPU_V7)) || defined(CONFIG_ARM64)
 /*
  * mmap status record
  */
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [ALSA patch] [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8
  2019-04-17  8:46 [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8 twischer
@ 2019-04-17  9:21 ` Takashi Iwai
  2019-04-17  9:30   ` Timo Wischer
  0 siblings, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2019-04-17  9:21 UTC (permalink / raw)
  To: twischer; +Cc: broonie, perex, tiwai, alsa-devel, linux-kernel

On Wed, 17 Apr 2019 10:46:11 +0200,
<twischer@de.adit-jv.com> wrote:
> 
> From: Timo Wischer <twischer@de.adit-jv.com>
> 
> Since ARMv7 hardware cache coherence is supported.
> "The SCU maintains coherency between the individual data caches in the
> Cortex-A5 MPCore processor using a variation of the MOESI protocol" [1].
> 
> Therefore this patch enables the MMAP access to the status and control
> structures. This avoids HWSYYNC ioctl calls and therefore lowers the CPU
> usage.
> 
> [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0434c/
> BABJECBF.html

Interesting...  I thought it would never work properly on ARM.
If it really works like that, I'd happily apply the change.
But I'd like to hear a confirmation from ARM people before merging
such an intensive change.


thanks,

Takashi

> 
> Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
> ---
>  sound/core/pcm_native.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
> index 1d84529..b8019ef 100644
> --- a/sound/core/pcm_native.c
> +++ b/sound/core/pcm_native.c
> @@ -3225,7 +3225,8 @@ static __poll_t snd_pcm_poll(struct file *file, poll_table *wait)
>   * Only on coherent architectures, we can mmap the status and the control records
>   * for effcient data transfer.  On others, we have to use HWSYNC ioctl...
>   */
> -#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA)
> +#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) || \
> +	(defined(CONFIG_ARM) && defined(CONFIG_CPU_V7)) || defined(CONFIG_ARM64)
>  /*
>   * mmap status record
>   */
> -- 
> 2.7.4
> 
> _______________________________________________
> Patch mailing list
> Patch@alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/patch
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ALSA patch] [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8
  2019-04-17  9:21 ` [ALSA patch] " Takashi Iwai
@ 2019-04-17  9:30   ` Timo Wischer
  2019-04-17  9:40     ` Takashi Iwai
  0 siblings, 1 reply; 5+ messages in thread
From: Timo Wischer @ 2019-04-17  9:30 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: broonie, perex, tiwai, alsa-devel, linux-kernel

On 4/17/19 11:21, Takashi Iwai wrote:
> On Wed, 17 Apr 2019 10:46:11 +0200,
> <twischer@de.adit-jv.com> wrote:
>> From: Timo Wischer <twischer@de.adit-jv.com>
>>
>> Since ARMv7 hardware cache coherence is supported.
>> "The SCU maintains coherency between the individual data caches in the
>> Cortex-A5 MPCore processor using a variation of the MOESI protocol" [1].
>>
>> Therefore this patch enables the MMAP access to the status and control
>> structures. This avoids HWSYYNC ioctl calls and therefore lowers the CPU
>> usage.
>>
>> [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0434c/
>> BABJECBF.html
> Interesting...  I thought it would never work properly on ARM.
> If it really works like that, I'd happily apply the change.
> But I'd like to hear a confirmation from ARM people before merging
> such an intensive change.

Hi Takashi,

do I need to send this patch to any other mailing list or do you think 
some corresponding guy is already on the lists I have used?

>
>
> thanks,
>
> Takashi
>
>> Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
>> ---
>>   sound/core/pcm_native.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
>> index 1d84529..b8019ef 100644
>> --- a/sound/core/pcm_native.c
>> +++ b/sound/core/pcm_native.c
>> @@ -3225,7 +3225,8 @@ static __poll_t snd_pcm_poll(struct file *file, poll_table *wait)
>>    * Only on coherent architectures, we can mmap the status and the control records
>>    * for effcient data transfer.  On others, we have to use HWSYNC ioctl...
>>    */
>> -#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA)
>> +#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) || \
>> +	(defined(CONFIG_ARM) && defined(CONFIG_CPU_V7)) || defined(CONFIG_ARM64)
>>   /*
>>    * mmap status record
>>    */
>> -- 
>> 2.7.4
>>
>> _______________________________________________
>> Patch mailing list
>> Patch@alsa-project.org
>> https://mailman.alsa-project.org/mailman/listinfo/patch
>>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ALSA patch] [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8
  2019-04-17  9:30   ` Timo Wischer
@ 2019-04-17  9:40     ` Takashi Iwai
  2019-07-10  8:42       ` Timo Wischer
  0 siblings, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2019-04-17  9:40 UTC (permalink / raw)
  To: Timo Wischer; +Cc: broonie, perex, tiwai, alsa-devel, linux-kernel

On Wed, 17 Apr 2019 11:30:10 +0200,
Timo Wischer wrote:
> 
> On 4/17/19 11:21, Takashi Iwai wrote:
> > On Wed, 17 Apr 2019 10:46:11 +0200,
> > <twischer@de.adit-jv.com> wrote:
> >> From: Timo Wischer <twischer@de.adit-jv.com>
> >>
> >> Since ARMv7 hardware cache coherence is supported.
> >> "The SCU maintains coherency between the individual data caches in the
> >> Cortex-A5 MPCore processor using a variation of the MOESI protocol" [1].
> >>
> >> Therefore this patch enables the MMAP access to the status and control
> >> structures. This avoids HWSYYNC ioctl calls and therefore lowers the CPU
> >> usage.
> >>
> >> [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0434c/
> >> BABJECBF.html
> > Interesting...  I thought it would never work properly on ARM.
> > If it really works like that, I'd happily apply the change.
> > But I'd like to hear a confirmation from ARM people before merging
> > such an intensive change.
> 
> Hi Takashi,
> 
> do I need to send this patch to any other mailing list or do you think
> some corresponding guy is already on the lists I have used?

Well, maybe we need to ping ARM people if no one on the lists you
Cc'ed give comments.  Let's see.


Takashi

> 
> >
> >
> > thanks,
> >
> > Takashi
> >
> >> Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
> >> ---
> >>   sound/core/pcm_native.c | 3 ++-
> >>   1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
> >> index 1d84529..b8019ef 100644
> >> --- a/sound/core/pcm_native.c
> >> +++ b/sound/core/pcm_native.c
> >> @@ -3225,7 +3225,8 @@ static __poll_t snd_pcm_poll(struct file *file, poll_table *wait)
> >>    * Only on coherent architectures, we can mmap the status and the control records
> >>    * for effcient data transfer.  On others, we have to use HWSYNC ioctl...
> >>    */
> >> -#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA)
> >> +#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) || \
> >> +	(defined(CONFIG_ARM) && defined(CONFIG_CPU_V7)) || defined(CONFIG_ARM64)
> >>   /*
> >>    * mmap status record
> >>    */
> >> -- 
> >> 2.7.4
> >>
> >> _______________________________________________
> >> Patch mailing list
> >> Patch@alsa-project.org
> >> https://mailman.alsa-project.org/mailman/listinfo/patch
> >>
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [ALSA patch] [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8
  2019-04-17  9:40     ` Takashi Iwai
@ 2019-07-10  8:42       ` Timo Wischer
  0 siblings, 0 replies; 5+ messages in thread
From: Timo Wischer @ 2019-07-10  8:42 UTC (permalink / raw)
  To: Takashi Iwai, kuninori.morimoto.gx, hiroyuki.yokoyama.vx,
	colin.king, gregkh, chanho.min
  Cc: broonie, perex, tiwai, alsa-devel, linux-kernel

Hello all,

it would be great if someone from Renesas or someone else could 
acknowledge the patch.
I think it is a good improvement especially when using ALSA plugins like 
dmix.

Feel free to forward if you know someone who is aware of the cache 
coherency of ARM architectures.

Best regards
*Timo Wischer*
Engineering Software Multimedia (ADITG/ESM)

Tel. +49 5121 49 6938
On 4/17/19 11:40 AM, Takashi Iwai wrote:
> On Wed, 17 Apr 2019 11:30:10 +0200,
> Timo Wischer wrote:
>> On 4/17/19 11:21, Takashi Iwai wrote:
>>> On Wed, 17 Apr 2019 10:46:11 +0200,
>>> <twischer@de.adit-jv.com> wrote:
>>>> From: Timo Wischer <twischer@de.adit-jv.com>
>>>>
>>>> Since ARMv7 hardware cache coherence is supported.
>>>> "The SCU maintains coherency between the individual data caches in the
>>>> Cortex-A5 MPCore processor using a variation of the MOESI protocol" [1].
>>>>
>>>> Therefore this patch enables the MMAP access to the status and control
>>>> structures. This avoids HWSYYNC ioctl calls and therefore lowers the CPU
>>>> usage.
>>>>
>>>> [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0434c/
>>>> BABJECBF.html
>>> Interesting...  I thought it would never work properly on ARM.
>>> If it really works like that, I'd happily apply the change.
>>> But I'd like to hear a confirmation from ARM people before merging
>>> such an intensive change.
>> Hi Takashi,
>>
>> do I need to send this patch to any other mailing list or do you think
>> some corresponding guy is already on the lists I have used?
> Well, maybe we need to ping ARM people if no one on the lists you
> Cc'ed give comments.  Let's see.
>
>
> Takashi
>
>>>
>>> thanks,
>>>
>>> Takashi
>>>
>>>> Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
>>>> ---
>>>>    sound/core/pcm_native.c | 3 ++-
>>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
>>>> index 1d84529..b8019ef 100644
>>>> --- a/sound/core/pcm_native.c
>>>> +++ b/sound/core/pcm_native.c
>>>> @@ -3225,7 +3225,8 @@ static __poll_t snd_pcm_poll(struct file *file, poll_table *wait)
>>>>     * Only on coherent architectures, we can mmap the status and the control records
>>>>     * for effcient data transfer.  On others, we have to use HWSYNC ioctl...
>>>>     */
>>>> -#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA)
>>>> +#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) || \
>>>> +	(defined(CONFIG_ARM) && defined(CONFIG_CPU_V7)) || defined(CONFIG_ARM64)
>>>>    /*
>>>>     * mmap status record
>>>>     */
>>>> -- 
>>>> 2.7.4
>>>>
>>>> _______________________________________________
>>>> Patch mailing list
>>>> Patch@alsa-project.org
>>>> https://mailman.alsa-project.org/mailman/listinfo/patch
>>>>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-10  8:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-17  8:46 [PATCH] ALSA: pcm: Enable MMAP status and control for ARMv7 and ARMv8 twischer
2019-04-17  9:21 ` [ALSA patch] " Takashi Iwai
2019-04-17  9:30   ` Timo Wischer
2019-04-17  9:40     ` Takashi Iwai
2019-07-10  8:42       ` Timo Wischer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).