Re: function call fw_iso_resource_mange(..) (core-iso.c) does notreturn

From: Peter Hurley
Date: Wed May 22 2013 - 09:39:10 EST


On 05/21/2013 05:13 PM, Stefan Richter wrote:
FWIW, I still believe that we should revert to the original bus reset
as tasklet and redo the TI workaround to use TI-workaround-specific versions
of non-sleeping PHY accesses.

Regards,
Peter Hurley

I am a friend of the self-ID-complete worklet, for two reasons:
- Even if there was no need for the TI TSB41BA3D workaround (e.g. even
if we simply stopped supporting TSB41BA3D), it would still be
worthwhile to have at least the self-ID-complete IRQ BH performed in
a non-atomic context. We should try to move as much of the
firewire-core self-ID-complete handler as possible out of the currently
spinlock protected section in order make more of this stuff
preemptible and replace a few GFP_ATOMIC slab allocations by GFP_NOFS
ones. (Could be GFP_KERNEL in absence of firewire-sbp2.)
I would have liked to work on this already long ago, but such is life.

Sure. I understand reducing the card->lock critical section is desirable
(although even more care would be required when switching the work item).

- How do you propose to access the PHY registers without sleeping?
Or more to the point: How do you propose to mix sleeping and
non-sleeping PHY register accesses? (Since we can't get rid of
the sleeping ones.) If the accesses are not fully serialized, you will
get corrupt PHY reg reads or writes. If they are fully serialized, the
non-sleeping PHY reg accesses need to go a try-lock route and will be
forced to error out during periods when a sleeping PHY reg access goes
on, without even the ability to reschedule if it is done in a tasklet
context.

Although this point is largely irrelevant now, I wasn't suggesting mixing
sleeping and non-sleeping PHY access -- simply that the TI quirk would
require non-sleeping PHY access and every other host controller would
use sleeping PHY access.

Regards,
Peter Hurley
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/