[lkml]   [2001]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Question regarding kernel threads and userlevel
At 09:32 28/04/2001, Anton Altaparmakov wrote:
>At 01:42 28/04/2001, Steffen Persvold wrote:
>>I have a question regarding kernel threads : Are kernel threads treated
>>equally in terms of scheduling as normal userlevel processes ??
>I'm sure someone will correct me if I am wrong but I would think that
>kernel threads are treated the same as the kernel, i.e. they are not
>pre-emptied unless you call schedule yourself or you sleep.
>>kernel thread gets scheduled and tries to get the same lock it will
>>deadlock because the userlevel process never gets back control and
>>releases the lock.
>It never gets pre-emptied according to the above so it would spin for
>ever. You would need a SMP system which would be running the user space
>code on a second CPU to unlock again. (And if your kernel thread is
>holding any other locks which the user mode thread will take along it's
>kernel code path you will deadlock, too.)
>If my suggestion above is correct then you can fix this by doing:
>while (!spin_trylock())
> schedule();

Obviously dropping any other locks you hold onto before the schedule() and
reacquiring them afterwards... Or you will probably deadlock anyway.


>Which will forcefully schedule to allow your processes to run and you know
>that as soon as you drop out of the loop you are holding the lock. If you
>want you could also add in a counter a display a warning or something if
>you don't manage to acquire a lock after several tries, perhaps just for
>debugging purposes.
>Best regards,
> Anton
>Anton Altaparmakov <aia21 at> (replace at with @)
>Linux NTFS Maintainer / WWW:
>ICQ: 8561279 / WWW:
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to
>More majordomo info at
>Please read the FAQ at

Anton Altaparmakov <aia21 at> (replace at with @)
Linux NTFS Maintainer / WWW:
ICQ: 8561279 / WWW:

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:52    [W:0.066 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site