Re: Dead circle in epoll file descriptor causes soft lockup on kernel 3.2.12

Alexandra N. Kossovsky
2012-03-28T11:06:54Z

On Tue, Mar 27, 2012 at 10:05:10AM -0400, Jason Baron wrote:
> On Tue, Mar 27, 2012 at 11:51:16AM +0400, Yurij M. Plotnikov wrote:
> > Adding epoll file descriptors in each other in circle causes soft
> > lockup on kernel 3.2.12 (I'm using Debian kernel
> > 3.2.0-0.bpo.1-amd64). The following steps describe the problem:
> >
> > 1. epoll_create(1) -> 3
> > 2. epoll_create(1) -> 4
> > 3. socket(SOCK_STREAM) -> 5
> > 4. bind(5, 0.0.0.0:0) -> 0
> > 5. listen(5, 1) -> 0
> > 6. epoll_ctl(3, ADD, 5, events = 0) -> 0
> > 7. epoll_ctl(3, ADD, 4, events = EPOLLIN) -> 0
> > 8. epoll_ctl(4, ADD, 3, events = EPOLLIN) -> -1(ELOOP)
> > 9. close(3) -> 0
> > 10. close(4) -> 0
> > 11. close(5) -> 0
> >
> > After repetaing this sequence 2-3 times soft lockup appers. In
> > attachment c program to reproduce this problem.
> >
>
> Good catch. The patch below should fix this - please verify. Thanks.

Verified. You patch solves our problem. Thank you very much for fast
response.

--
Alexandra N. Kossovsky
OKTET Labs (http://www.oktetlabs.ru/)