On 12/16/2014 08:41 PM, Ronny Meeus wrote: > On Tue, Dec 16, 2014 at 6:58 PM, Philippe Gerum <[email protected]> wrote: >> On 12/16/2014 06:36 PM, Ronny Meeus wrote: >>> On Sun, Dec 7, 2014 at 5:26 PM, Ronny Meeus <[email protected]> wrote: >>>> Hello >>>> >>>> we are using the xenomai-forge implementation. >>>> We from time to time see an issue that the timer-internal thread is >>>> consuming a complete core. It is seen when we send broadcast traffic that >>>> needs to be handled by the Linux kernel (ARP). >>>> >>>> The kernel thread's priority handling the packets in the middle between the >>>> timer-internal thread and the application thread's priority. All threads >>>> run >>>> on the same core. >>>> If the priority of the timer-internal is lowered below the kernel thread, >>>> the load disappears immediately. >>>> So it looks like there is some busy polling on a common resource that is >>>> currently held by the application thread running at the lowest prio. >>>> >>>> I see that the timer lock being used is a mutex with priority inheritance >>>> so >>>> I would expect that the prio of the application is raised as soon as the >>>> timer-internal thread tries to obtain the mutex. >>> >>> After investigating this issue in more detail I have the impression that it >>> has >>> nothing to do with the mutex used to protect the timer but with the >>> conditional >>> variable used to implement the psos event interface. >>> >>> I found references on the web that explain an issue with the internal mutex >>> used >>> inside the posix library to implement a conditional variable. See: >>> https://bugzilla.redhat.com/show_bug.cgi?id=438484 >>> http://marc.info/?t=134688711000002&r=1&w=2 >>> >>> If this is indeed true, it means that the usage of conditional >>> variables is not safe >>> at all (from priority inheritance point of view). >> >> Yes, condvars are known not to work nicely with PI mutexes on the glibc. > > Philippe, > I do not understand. > > We just use the pSOS interface of the xenomai-forge, which internally uses > conditional variables. > Does this mean that we cannot use the pSOS interface with glibc? > > If above statement is correc, what libc should we use to make it work? >
A release of the glibc that fixes this issue. I must admit that I did not track this problem lately. Jan likely knows better here. -- Philippe. _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
