Re: poll() in 2.6 and beyond

From: Richard B. Johnson
Date: Wed Mar 03 2004 - 15:11:27 EST


On Wed, 3 Mar 2004, Dave Dillow wrote:

> On Wed, 2004-03-03 at 13:23, Richard B. Johnson wrote:
> > The very great problems that exist with poll on linux-2.6.0
> > are being quashed by those who just like to argue.
>
> No, the argument has always been that your understanding of poll()'s
> internals is not entirely correct. We have simply asked you to post code
> that shows poll()'s problems, which you have finally provided. Sort of.
>
> > Therefore,
> > I wrote some code that emulates the environment in which I
> > discovered the poll failure. Experts can decide whatever they
> > want about the inner workings of poll(). I supposed that if
> > `ps` showed that a task was sleeping in poll() then it must
> > be sleeping in poll().
>
> This we all agree on -- poll() sleeps. Duh. No argument there.
> poll_wait() doesn't and never has, which was your original assertion.
>
> But on to the code!
>
> > So, even it that's wrong, here is
> > irrefutable proof that there is a problem with polling events
> > getting lost on 2.6.0.
>
> Ahem, no, not so much. What you have here is proof that your user
> program is not getting control again withing 0.488ms of the interrupt
> happening. That does not mean poll() is loosing events.
>

Well that should mean the same thing in the final wash.

> You are definately seeing some significant latency -- 50 lost increments
> is ~25ms.
>
> What else is running when you perform this test? Can you repeat with a
> more recent kernel? Can you repeat in single user mode, with it being
> the only process present? With as few extra modules loaded as possible?
>

I would need to install a more recent kernel and I think I should. That
will mean some re-write of the module code, so I am told. I wrote the
module and another Engineer, Terry Skillman, wrote the test-code and the
Makefile. He also performed the tests. He says that it will not compile
on a newer 2.6.x so I would have to do more work if true. I will
have to put that off until Monday because I have to take a work-break.

Nothing else is running. Although there is a network board, there is no
network line from the hub to that machine when the tests are made.

> I still think your problem is not poll() -- if there were problems
> there, bug reports would be coming out of the woodwork.
> --
> Dave Dillow <dave@xxxxxxxxxxxxxx>
>

Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/