Messages in this thread |  | | Date | Mon, 24 Sep 2001 15:08:04 -0700 (PDT) | From | Davide Libenzi <> | Subject | Re: [PATCH] /dev/epoll update ... |
| |
On 24-Sep-2001 Jamie Lokier wrote: > Davide Libenzi wrote: >> > You could even keep the memory for the queued signal / event inside > the file structure. >> >> By keeping the event structure inside the file* require you to collect >> these events ( read memory moves ) at peek time. >> With /dev/epoll the event is directly dropped inside the mmaped area. > > Well, memory move consists of 2 words: (a) file descriptor; (b) poll > state/edge flags.
2-words * number-of-ready-fds == pretty-high-cache-drain
> That will be completely swamped by the system calls and so on needed to > processes each of the file descriptors. I.e. no scalability problem here.
The other issue is that by keeping infos in file* you'll have to scan each fd to report the ready ones, that will make the method to fall back in O(n). Anyway there's a pretty good patch ( http://www.luban.org/GPL/gpl.html ), that has been tested here :
http://www.xmailserver.org/linux-patches/nio-improve.html
that implement the signal-per-fd mechanism and it achieves a very good scalability too.
- Davide
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |