Re: Preemption Problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Hello together,
> 
> I'm currently working on the l2cap module for the Bluetooth subsystem.
> Everything worked fine so far until I used a kernel with enabled PREEMPT
> in its configuration. At first my kernel log was flooded with messages
> like »scheduling while atomic« etc. Now the whole system just freezes
> when I try to test my code. I get the common Debug messages from my code
> but suddenly I get messages (shortened):
> 
> scheduling while atomic: swapper/0x00000001/0
> [<c030b03d>] schedule+0x9cd/0xd60
> 	     irq_exit+...
> 	     do_IRQ+...
> 	     common_interrupt+...
> 	     acpi_processor_idle+...
> 	     cpu_idle+...
> 	     start_kernel+...
> 	     unknown_bootoption+...
> 
> and the system hangs (I have only the option to use the SysRq key
> combinations).
> 
> Without knowing the details of my code (I can give you snippets that are
> related to my problem) -- what might be useful to look at? This is the
> first time I encounter such problems and I read various chapters in
> great books (Greg's LDD book for example) and so I assume it is related
> to some locking issues -- but I have no clue how to figure that out.
> Are there any advices?
> 
> Thanks,
> Martin
> 

Hello Martin

Probably You are using preempt_disable() and preempt_enable() to protect 
large parts of code. These functions work well when local interrupts are 
disabled, but with interrupts enabled I had similar problem.

Regards
Rafal


----------------------------------------------------------------------
INTERIA.PL dla kobiet... >>> http://link.interia.pl/f193b


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux