All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] rt_heap_alloc priority inversion
@ 2013-10-25 21:59 George Broz
  2013-10-25 22:02 ` Gilles Chanteperdrix
  2013-10-26 10:30 ` Philippe Gerum
  0 siblings, 2 replies; 7+ messages in thread
From: George Broz @ 2013-10-25 21:59 UTC (permalink / raw)
  To: Xenomai

Hello All,

I'm running Linux 2.6.37.6 w/Xenomai 2.6.1, native API 
on x86 (Atom, SMP, 32-bit). 

I have two tasks, both running in Xenomai user-space. 
One is priority=99 and blocks on rt_intr_wait(), 
running every 250 us with 125us margin. This task does 
not make direct calls to rt_heap_alloc/free().

The other task is priority=50, wakes 1msec, sleeps 1msec.
This task routinely makes rt_heap_alloc/free calls. 

When the priority=50 task makes rt_heap_alloc() calls
for "size" greater than 5 MB, the priority=99 task
appears to be held off from executing for several ms.

Plenty of memory is available (vmalloc=320M as linux 
boot arg). TM_NONBLOCK is used when calling 
rt_heap_alloc(). Both "0" and H_PRIO have been tried
for "mode" when creating the area with rt_heap_create().

Is this expected behavior? 

How can large memory allocations be built without a 
"realloc" equivalent offered in the memory heap 
services?


Thanks in advance!
---
George Broz
Moog, Inc. Industrial Group


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

end of thread, other threads:[~2013-10-27 18:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-25 21:59 [Xenomai] rt_heap_alloc priority inversion George Broz
2013-10-25 22:02 ` Gilles Chanteperdrix
2013-10-25 22:27   ` George Broz
2013-10-26 10:30 ` Philippe Gerum
2013-10-27 16:54   ` George Broz
2013-10-27 17:13     ` Gilles Chanteperdrix
2013-10-27 18:32     ` Gilles Chanteperdrix

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.