Messages in this thread | | | Date | Wed, 28 Mar 2012 14:57:59 +0400 | From | "Alexandra N. Kossovsky" <> | Subject | Re: Dead circle in epoll file descriptor causes soft lockup on kernel 3.2.12 |
| |
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/)
| |