public inbox for linux-rt-users@vger.kernel.org
 help / color / mirror / Atom feed
* -rt kernel hitting yield()s in I2C non-default code paths (2.6.24)
@ 2009-10-31  9:39 Leon Woestenberg
  2009-11-02 14:58 ` Thomas Gleixner
  0 siblings, 1 reply; 2+ messages in thread
From: Leon Woestenberg @ 2009-10-31  9:39 UTC (permalink / raw)
  To: rt-users

Hello,


yesterday while debugging embedded systems I noticed the non-happy
paths in the I2C code hitting yield() code, this resulted in
a BUG: RT-Task yielding. This was with 2.6.24 (yes I know).

A real-time task (prio 99, low real-time priority) on the generic
workqueue was executing I2C functions, such as try_address() and
hitting the yield().

http://lxr.linux.no/#linux+v2.6.31/drivers/i2c/algos/i2c-algo-bit.c#L319

Further grepping shows yield()s sprinkled throughout device driver
code, especially in the non-default execution paths.

What's the -rt devs opinion on this one?

For most of the yield()s I really could not think why they are there...

Regards,
-- 
Leon

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

* Re: -rt kernel hitting yield()s in I2C non-default code paths (2.6.24)
  2009-10-31  9:39 -rt kernel hitting yield()s in I2C non-default code paths (2.6.24) Leon Woestenberg
@ 2009-11-02 14:58 ` Thomas Gleixner
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Gleixner @ 2009-11-02 14:58 UTC (permalink / raw)
  To: Leon Woestenberg; +Cc: rt-users

On Sat, 31 Oct 2009, Leon Woestenberg wrote:
> Hello,
> 
> 
> yesterday while debugging embedded systems I noticed the non-happy
> paths in the I2C code hitting yield() code, this resulted in
> a BUG: RT-Task yielding. This was with 2.6.24 (yes I know).
> 
> A real-time task (prio 99, low real-time priority) on the generic
> workqueue was executing I2C functions, such as try_address() and
> hitting the yield().
> 
> http://lxr.linux.no/#linux+v2.6.31/drivers/i2c/algos/i2c-algo-bit.c#L319
> 
> Further grepping shows yield()s sprinkled throughout device driver
> code, especially in the non-default execution paths.
> 
> What's the -rt devs opinion on this one?

yield() in kernel code is either a bug or useless nonsense.
 
> For most of the yield()s I really could not think why they are there...

Exactly. Most likely some blindly copied old code, which needs to be
fixed. Going through it later today.

Thanks for pointing it out.

       tglx

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

end of thread, other threads:[~2009-11-02 14:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-31  9:39 -rt kernel hitting yield()s in I2C non-default code paths (2.6.24) Leon Woestenberg
2009-11-02 14:58 ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox