Messages in this thread | | | Date | Tue, 12 Jan 1999 15:00:38 -0500 | From | Benjamin Scherrey <> | Subject | Re: Kernel Threads: Dr. Russinovich's response |
| |
Alan Cox wrote:
> I suspect we can learn useful things from his comments even if they arent > the ones you want to hear.
Perhaps to get this thread back on topic you would care to clarify/comment on a couple of issues that he brings up. To me, this item about multiple threads blocked an a select() waking up when only one is able to successfully perform the accept() would certainly appear to be a significant performance issue. My question is, is this a valid criticism of the kernel implementation or simply an out of scope criticism that is an example of poor application design? I would expect that the device throughput is the inevitable limiting factor and that an application would possibly be better served to dedicate a single thread to reading/writing to it and have application threads throw their data into a queue and be done with it (The example given was a web server as I recall). This way there'd never be multiple threads waking up on the select() for that device. I'm curious as to kernel developer's opinions of this issue, if it could be implemented better and also what POSIX says (if anything) about this.
I'm also curious as to whether or not his criticisms about signal handling are correct. Linux became a usable development environment for me when kernel threads were finally introduced. I thought the implementation model was novel and was initially concerned about the idea but found that my application code seemed to perform pretty well with it (as compared to WindowsNT (Linux was much faster) on i86 and Solaris (Linux compared well and depends on the app) on SPARC) so I've not paid too much attention about the details nor have I used any "Linux-specific" features of its threading model. I will be doing some multi-cpu, thread intensive, real-time development under Linux over the next couple of months and this issue could impact me if true.
I haven't had a lot of experience with SMP under Linux yet but that's about to change. I pretty much have stayed with Solaris for this as it seems to scale pretty well. NT had never approached linear increases in performance for my applications in SMP. OS/2 did surprisingly well but was unfortunately not made part of the standard released and kept getting left behind. I see that 2.2.0 has really focused on SMP improvements and hope that it will scale well compared to Solaris. Are my expectations too high and are the criticisms brought up by Dr. Russ potentially going to impact me in this area?
thanx & later,
Ben Scherrey
- 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/
| |