Re: Why can not processes switch in atomic context?
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
On Jul 3, 2012 7:55 PM, "Parmenides" <mobile.parmenides@xxxxxxxxx> wrote:
> It is said that kernel can not be preempted in interrupt context
> and when it is in a critical section protected by a spin lock.
> 1. For the spinlock case, it is easy to get if preemption is allowed
> in critical section, the purpose of protection provided by spinlock
> can not be achieved readily.
I don't know about Linux kernel. But the very prime purpose of a spin lock is to synchronize in the presence of pre-emption. Are u talking about implementing spin lock in the absence of an atomic hardware instruction?
> 2. For the interrupt context case, I think when processing interrupt,
> kernel can be preempted in principle. But, this really increases the
> interrupt processing time which further cause longer response time and
> data missing in device. Except that, is there any other reasons?
> 3. Kernel is responsible for prohibiiting passive process switches,
> namely preemption, in the above cases. But, It seems that it does not
> take care of active process swtiches, namely yield. For example, some
> code in a critical section protected by a spinlock can invoke
> schedule() to switch process passively. Is this the case?
> Kernelnewbies mailing list
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
[Newbies FAQ] [Linux Kernel Development] [IETF Annouce] [Git] [Networking] [Security] [Bugtraq] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Linux Networking] [Linux RAID] [Linux SCSI] [Linux ACPI]