On Thursday 05 October 2006 12:55, Evgeniy Polyakov wrote: > On Thu, Oct 05, 2006 at 12:45:03PM +0200, Eric Dumazet ([EMAIL PROTECTED]) > > > > What is missing or not obvious is : If events are skipped because of > > overflows, What happens ? Connections stuck forever ? Hope that > > everything will restore itself ? Is kernel able to SIGNAL this problem to > > user land ? > > Exisitng code does not overflow by design, but can consume a lot of > memory. I talked about the case, when there will be some limit on > number of entries put into mapped buffer.
You still dont answer my question. Please answer the question. Recap : You have a max of XXXX events queued. A network message come and kernel want to add another event. It cannot because limit is reached. How the User Program knows that this problem was hit ? > It is the same. > What if reing buffer was grown upto 3 entry, and is now empty, and we > need to put there 4 entries? Grow it again? > It can be done, easily, but it looks like a workaround not as solution. > And it is highly unlikely that in situation, when there are a lot of > event, ring can be empty. I dont speak of re-allocation of ring buffer. I dont care to allocate at startup a big enough buffer. Say you have allocated a ring buffer of 1024*1024 entries. Then you queue 100 events per second, and dequeue them immediatly. No need to blindly use all 1024*1024 slots in the ring buffer, doing index = (index+1)%(1024*1024) > epoll() does not have mmap. > Problem is not about how many events can be put into the kernel, but how > many of them can be put into mapped buffer. > There is no problem if mmap is turned off. So zap mmap() support completely, since it is not usable at all. We wont discuss on it. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html