> is there any need we maintain wait queues as circular lists ?
> the only reason I can think of is that we might have to remove an
> element without knowing which list it belongs to. but __remove_wait_queue
> is passed the address of the list head and just ignores it, going the full
> circle every time. seems to me that it might be slightly faster, on the
> average, to use good old linear null-terminated lists. plus we would
> avoid the hairiness of WAIT_QUEUE_HEAD.
About two years ago, in the days of 2.0.30 and 2.1.43, I carefully
tuned __{add,remove}_wait_queue in kernel-typical contexts for
gcc-2.7.2 on i586s & K5s for speed and size. I had a version of
__remove_wait_queue using the wait_queue argument too. It didn't
crash linux in my configuration, but I decided not to use it, as it
could have exposed broken kernel-code and I didn't want to risk to
break anything.
Using the list argument to remove_wait_queue in my opinion is not
something to do in the 2.2.x series.
Christian.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/