Hi all, I have now identified the issue and provided a workaround. I am using a kernel module as a hardware driver. The kernel module was originally designed for standard linux and I modified it only slightly to have Xenomai support. For configuring the driver, a /dev/xxx character file is provided.
When this file is opened (which lead to the module's open that is registered via register_chrdev) an interrupt routine is registered. I do here a rt_intr_create() followed by a rt_intr_enable(). When the /dev/xxx file is closed, the module's release function is called. This function calls rt_intr_disable() and rt_intr_delete() to stop using the interrupt. This looks very fine, however it seems to cause problems. Having this situation, I get the kernel "cannot allocate memory" message. I did a restructuring of the kernel module to disable the interrupt routine and to delete the interrupt object not with the release() function but within cleanup_module(). And this works now perfect. I do not understand the reason for this but now it is working. Thanks for all the hints on that issue. Regards Mathias ----- Original Nachricht ---- Von: "M. Koehrer" <[EMAIL PROTECTED]> An: [EMAIL PROTECTED],[EMAIL PROTECTED] Datum: 02.02.2007 11:16 Betreff: Re: Re: [Xenomai-help] Error: cat: /proc/xenomai/stat: Cannot allocate > Hi! > > I have one kernel module for a special driver running. > If I do not load this kernel module, everything seems to work fine. > That means, this kernel module is probably causing the issue... > I have to look closer to it... > Sorry for any confusion! > > Regards > > Mathias > > > > On Fri, 2007-02-02 at 10:33 +0100, Philippe Gerum wrote: > > > On Fri, 2007-02-02 at 09:43 +0100, M. Koehrer wrote: > > > > Hi everybody, > > > > > > > > I have a strange issue frequently when reading /proc/xenomai/stat. > > > > I do a cat /proc/xenomai/stat and I get an "Cannot allocate memory" > > error. > > > > This happens typcially after I have started and terminated by > > application that uses a number of tasks. > > > > I am able to reproduce it deterministically... > > > > While the application is running, I can see the stat values > perfectly. > > > > Here is the head output of all /proc/xenomai/* files: > > > > > > At first sight looking at the code, there seems to be a memory leak > > > caused by an unfree kmalloc() block in the sched & stat sequence > > > routines. Will confirm and fix. Thanks, > > > > > > > Not confirmed for the leakage part regarding kmalloc(). We do have a > > seq_release_private() freeing the allocated block, so back to square #1. > > This said, some kernel memory is not released somewhere, as running > > vmstat tells me here. > > > > Btw, is the rest of your system functional after the error occurs, or is > > a reboot needed afterwise? > > > > -- > > Philippe. > > > > > > > > -- > Mathias Koehrer > [EMAIL PROTECTED] > > > Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren > ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig > und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer, > nur 44,85 inkl. DSL- und ISDN-Grundgebühr! > http://www.arcor.de/rd/emf-dsl-2 > -- Mathias Koehrer [EMAIL PROTECTED] Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer, nur 44,85 inkl. DSL- und ISDN-Grundgebühr! http://www.arcor.de/rd/emf-dsl-2 _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
