Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-11-09 Thread Mark Brown
On Mon, Nov 09, 2009 at 09:49:11AM +0200, Peter Ujfalusi wrote:

> Just want to bring up this thread.
> Should I resend the patch?

This is an arch/arm thing so I'd expect it to go via the OMAP tree.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-11-08 Thread Peter Ujfalusi
On Thursday 29 October 2009 09:15:24 ext Jarkko Nikula wrote:
> On Thu, 29 Oct 2009 08:35:51 +0200
> 
> Peter Ujfalusi  wrote:
> > > The spinlocks are unnecessary. In the above example, you get the same
> > > with just "return mcbsp->dma_op_mode;"
> > >
> > > -> Peter's patch is a good cleanup.
> >
> > Jarkko: are we going to take this?
> 
> Yep, you can have my
> 
> Acked-by: Jarkko Nikula 

Just want to bring up this thread.
Should I resend the patch?

-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-29 Thread Jarkko Nikula
On Thu, 29 Oct 2009 08:35:51 +0200
Peter Ujfalusi  wrote:

> > The spinlocks are unnecessary. In the above example, you get the same
> > with just "return mcbsp->dma_op_mode;"
> > 
> > -> Peter's patch is a good cleanup.
> 
> Jarkko: are we going to take this?
> 
Yep, you can have my

Acked-by: Jarkko Nikula 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-29 Thread Jarkko Nikula
On Wed, 28 Oct 2009 08:53:34 +0200
Eero Nurkkala  wrote:

> On Wed, 2009-10-28 at 06:52 +0100, Ujfalusi Peter (Nokia-D/Tampere)
> > Yeah, but I think this locking issue has nothing to do with SMP safe or not.
> > On playback start in omap_mcbsp_request the mcbsp->free is cleared.
> > Further modification to the dma_op_mode in dma_op_mode_store is not allowed 
> > if 
> > the mcbsp port is in use, thus the dma_op_mode is protected against change 
> > while 
> > the port is in use (ensuring that the mode is same in 
> > omap34xx_mcbsp_request and 
> > omap_mcbsp_get_dma_op_mode functions). This alone makes the use of spinlock 
> > around the dma_op_mode unnecessary.
> > 
> 
...
> Right, I reviewed the code, and it was first looking really bad at
> sound/soc/omap/omap-mcbsp.c, where it calls omap_mcbsp_get_dma_op_mode()
> from different places. However, it's not an issue because in:
> arch/arm/plat-omap/mcbsp.c : dma_op_mode_store(),
> the dma_op_mode is written only if the mcbsp is unoccupied. So it is SMP
> safe.
> 
... 
> The spinlocks are unnecessary. In the above example, you get the same
> with just "return mcbsp->dma_op_mode;"
> 
> -> Peter's patch is a good cleanup.
> 
Yeah, agree, only now I looked the patch itself :-)

Sorry that I didn't express it clearly that my comment was a side note
for general awareness that SMP's are becoming reality for ARMs as well
than nak for Peter's patch.

According to defconfigs the OMAP4 will be the first commercial ARM SMP
having mainline support (I count realview as development device):

grep 'CONFIG_SMP=y' -r arch/arm/configs/ 
arch/arm/configs/realview-smp_defconfig:CONFIG_SMP=y
arch/arm/configs/omap_4430sdp_defconfig:CONFIG_SMP=y


-- 
Jarkko
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-28 Thread Peter Ujfalusi
On Wednesday 28 October 2009 08:53:34 Nurkkala Eero.An (EXT-Offcode/Oulu) wrote:
> Yeah, maybe I took the SMP safeness into play without looking any code,
> my bad =) I was remembering a different version of this McBSP thing, now
> that I looked into it, it looked different.
> 
> Right, I reviewed the code, and it was first looking really bad at
> sound/soc/omap/omap-mcbsp.c, where it calls omap_mcbsp_get_dma_op_mode()
> from different places. However, it's not an issue because in:
> arch/arm/plat-omap/mcbsp.c : dma_op_mode_store(),
> the dma_op_mode is written only if the mcbsp is unoccupied. So it is SMP
> safe.
> 
> ..and a single read is always atomic, so this is buggy code:
> 
> 301 spin_lock_irq(&mcbsp->lock);
> 302 dma_op_mode = mcbsp->dma_op_mode;
> 303 spin_unlock_irq(&mcbsp->lock);
> 304
> 305 return dma_op_mode;
> 
> The spinlocks are unnecessary. In the above example, you get the same
> with just "return mcbsp->dma_op_mode;"
> 
> -> Peter's patch is a good cleanup.

Jarkko: are we going to take this?


-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Eero Nurkkala
On Wed, 2009-10-28 at 06:52 +0100, Ujfalusi Peter (Nokia-D/Tampere)
wrote:
> On Tuesday 27 October 2009 16:00:00 ext Jarkko Nikula wrote:
> > On Tue, 27 Oct 2009 13:07:23 +0200
> > 
> > Eero Nurkkala  wrote:
> > > Otherwise, that spinlocking is highly unnecessary and things are
> > > far better without than with it. The only case it could be useful
> > > is in SMPs, but OMAPs are not such quite yet - and when they
> > > are, things will need to be re-though anyway.
> > 
> > Following commit is suggesting that mcbsp code *must* be SMP safe
> > already now:
> > 
> > commit a5b92cc348299c20be215b9f4b50853ecfbf3864
> > Author: Syed Rafiuddin 
> > Date:   Tue Jul 28 18:57:10 2009 +0530
> > 
> > ARM: OMAP4: Add McBSP support
> 
> Yeah, but I think this locking issue has nothing to do with SMP safe or not.
> On playback start in omap_mcbsp_request the mcbsp->free is cleared.
> Further modification to the dma_op_mode in dma_op_mode_store is not allowed 
> if 
> the mcbsp port is in use, thus the dma_op_mode is protected against change 
> while 
> the port is in use (ensuring that the mode is same in omap34xx_mcbsp_request 
> and 
> omap_mcbsp_get_dma_op_mode functions). This alone makes the use of spinlock 
> around the dma_op_mode unnecessary.
> 

Yeah, maybe I took the SMP safeness into play without looking any code,
my bad =) I was remembering a different version of this McBSP thing, now
that I looked into it, it looked different.

Right, I reviewed the code, and it was first looking really bad at
sound/soc/omap/omap-mcbsp.c, where it calls omap_mcbsp_get_dma_op_mode()
from different places. However, it's not an issue because in:
arch/arm/plat-omap/mcbsp.c : dma_op_mode_store(),
the dma_op_mode is written only if the mcbsp is unoccupied. So it is SMP
safe.

..and a single read is always atomic, so this is buggy code:

301 spin_lock_irq(&mcbsp->lock);
302 dma_op_mode = mcbsp->dma_op_mode;
303 spin_unlock_irq(&mcbsp->lock);
304 
305 return dma_op_mode;

The spinlocks are unnecessary. In the above example, you get the same
with just "return mcbsp->dma_op_mode;"

-> Peter's patch is a good cleanup.


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Peter Ujfalusi
On Tuesday 27 October 2009 16:00:00 ext Jarkko Nikula wrote:
> On Tue, 27 Oct 2009 13:07:23 +0200
> 
> Eero Nurkkala  wrote:
> > Otherwise, that spinlocking is highly unnecessary and things are
> > far better without than with it. The only case it could be useful
> > is in SMPs, but OMAPs are not such quite yet - and when they
> > are, things will need to be re-though anyway.
> 
> Following commit is suggesting that mcbsp code *must* be SMP safe
> already now:
> 
> commit a5b92cc348299c20be215b9f4b50853ecfbf3864
> Author: Syed Rafiuddin 
> Date:   Tue Jul 28 18:57:10 2009 +0530
> 
> ARM: OMAP4: Add McBSP support

Yeah, but I think this locking issue has nothing to do with SMP safe or not.
On playback start in omap_mcbsp_request the mcbsp->free is cleared.
Further modification to the dma_op_mode in dma_op_mode_store is not allowed if 
the mcbsp port is in use, thus the dma_op_mode is protected against change 
while 
the port is in use (ensuring that the mode is same in omap34xx_mcbsp_request 
and 
omap_mcbsp_get_dma_op_mode functions). This alone makes the use of spinlock 
around the dma_op_mode unnecessary.

-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Jarkko Nikula
On Tue, 27 Oct 2009 13:07:23 +0200
Eero Nurkkala  wrote:

> Otherwise, that spinlocking is highly unnecessary and things are
> far better without than with it. The only case it could be useful
> is in SMPs, but OMAPs are not such quite yet - and when they
> are, things will need to be re-though anyway.
> 
Following commit is suggesting that mcbsp code *must* be SMP safe
already now:

commit a5b92cc348299c20be215b9f4b50853ecfbf3864
Author: Syed Rafiuddin 
Date:   Tue Jul 28 18:57:10 2009 +0530

ARM: OMAP4: Add McBSP support


-- 
Jarkko
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Eero Nurkkala
On Tue, 2009-10-27 at 13:00 +0100, ext Mark Brown wrote:
> On Tue, Oct 27, 2009 at 01:17:52PM +0200, Peter Ujfalusi wrote:
> > On Tuesday 27 October 2009 13:07:23 Nurkkala Eero.An (EXT-Offcode/Oulu) 
> > wrote:
> 
> > > You may wish to double read the message above, as it's quite
> > > confusing =)
> 
> > Yes it is ;)
> > I have left one spinlock around the dma_op_mode, when it also protects the 
> > mcbsp->active, so that is why that last sentence.
> 
> I have to confess that I'm still not entirely clear what the lock is
> supposed to be doing or why it's OK to drop it.  I gather that it's just
> that dmap_on_mode() doesn't need a lock at all?

Mostly thinko's with this locking:

-   spin_lock_irq(&mcbsp->lock);
 dma_op_mode = mcbsp->dma_op_mode;
-   spin_unlock_irq(&mcbsp->lock);
 
 return dma_op_mode;


--> same as 
return mcbsp->dma_op_mode;

and worst, it's called from pcm_trigger() ->
so irqs are enabled -> lockdep isn't happy ->
so currently things are pretty much "broken".

- Eero

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Peter Ujfalusi
On Tuesday 27 October 2009 14:00:09 ext Mark Brown wrote:
> 
> I have to confess that I'm still not entirely clear what the lock is
> supposed to be doing or why it's OK to drop it.  I gather that it's just
> that dmap_on_mode() doesn't need a lock at all?

In my opinion it does not need a lock.
If the user space is so broken that it is doing different things in parallel, I 
would rather crash the kernel if it is possible to force someone to fix the 
mess 
upstairs.
But the lock is not needed, I think it was a result of over-engineering.


-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Mark Brown
On Tue, Oct 27, 2009 at 01:17:52PM +0200, Peter Ujfalusi wrote:
> On Tuesday 27 October 2009 13:07:23 Nurkkala Eero.An (EXT-Offcode/Oulu) wrote:

> > You may wish to double read the message above, as it's quite
> > confusing =)

> Yes it is ;)
> I have left one spinlock around the dma_op_mode, when it also protects the 
> mcbsp->active, so that is why that last sentence.

I have to confess that I'm still not entirely clear what the lock is
supposed to be doing or why it's OK to drop it.  I gather that it's just
that dmap_on_mode() doesn't need a lock at all?
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Peter Ujfalusi
On Tuesday 27 October 2009 13:07:23 Nurkkala Eero.An (EXT-Offcode/Oulu) wrote:
> On Tue, 2009-10-27 at 12:00 +0100, Ujfalusi Peter (Nokia-D/Tampere)
> 
> wrote:
> > The use of the spin lock, which supposed to protect the the
> > dma_op_mode causing "INFO: inconsistent lock state" on
> > playback start.
> > Remove the spin locks around the dma_op_mode, when it's
> > purpuse is to protect the dma_op_mode.
> >
> > Signed-off-by: Peter Ujfalusi 
> > ---
> 
> You may wish to double read the message above, as it's quite
> confusing =)

Yes it is ;)
I have left one spinlock around the dma_op_mode, when it also protects the 
mcbsp->active, so that is why that last sentence.


-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH] OMAP: McBSP: Do not use extensive spin locks for dma_op_mode

2009-10-27 Thread Eero Nurkkala
On Tue, 2009-10-27 at 12:00 +0100, Ujfalusi Peter (Nokia-D/Tampere)
wrote:
> The use of the spin lock, which supposed to protect the the
> dma_op_mode causing "INFO: inconsistent lock state" on
> playback start.
> Remove the spin locks around the dma_op_mode, when it's
> purpuse is to protect the dma_op_mode.
> 
> Signed-off-by: Peter Ujfalusi 
> ---

You may wish to double read the message above, as it's quite
confusing =)

Otherwise, that spinlocking is highly unnecessary and things are
far better without than with it. The only case it could be useful
is in SMPs, but OMAPs are not such quite yet - and when they
are, things will need to be re-though anyway.

- Eero

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html