On Tue, 6 Mar 2007, Eric Dumazet wrote: > Davide Libenzi a écrit : > > On Mon, 5 Mar 2007, H. Peter Anvin wrote: > > > > > Davide Libenzi wrote: > > > > Right now is using: > > > > > > > > this.len = sprintf(name, "[%u.%d]", current->pid, fd); > > > > > > > > That should be unique and not have the wraparound problem. Ack? > > > > > > > NAK, very much NAK. > > > > > > File descriptors aren't file structures, they're *pointers* to file > > > structures. > > > > > > It's perfectly possible -- downright common -- for a file descriptor to be > > > inherited by another process, and then the pid is recycled -- collision. > > > > Ugh! Right! 64 bit counter it is ... :) > > For epoll, I suspect this is harmless : Programs dont allocate epolls fd every > milli second, but at startup only. > > For pipes/sockets, using a 64 bits would be problematic, because sprintf() > uses a divide for each digit. And a divide is slow. Ten divides are *very* > slow.
This would be used for epoll, signalfd and timerfd. And the printf format is %llu ;) - Davide