Re: epoll_wait inaccurate timeout

From: Eric Wong
Date: Mon Dec 12 2016 - 06:41:28 EST


+Cc folks who may know about timer stuff on epoll.

Dmitry Banschikov <me@xxxxxxxxxxxxx> wrote:
> Hi!
>
> I have a problem caused by inaccurate timeouts in epoll_wait(2).
> Here are some parts of strace -tt output:

Which kernel version are you using?

> 22578 09:33:46.959791 epoll_wait(5, <unfinished ...>
> 22578 09:33:50.010794 <... epoll_wait resumed> [], 128, 1498) = 0
> ...
> 22034 09:35:07.686896 epoll_wait(5, <unfinished ...>
> 22034 09:35:09.482526 <... epoll_wait resumed> [{EPOLLIN,
> {u32=151458248, u64=151458248}}], 128, 362) = 1
> ...
> 22036 09:35:41.433241 epoll_wait(5, <unfinished ...>
> 22036 09:35:43.176881 <... epoll_wait resumed> [], 128, 97) = 0
>
> In each example epoll_wait is blocked for too longer then asked in timeout.
>
> Is it normal?

I don't think so, unless you have a huge /proc/<pid>/timerslack_ns
set. But I mainly use -1 or 0 as the timeout value.

> Please CC me.

That's standard procedure, here :)