Tags: patch I got the same problem. When using the kernel PPPoE driver, pppd never closes /dev/ppp when the link has come down.
It opens superfluous fds to the device each time it re-opens the connection, with the unclosed ones falsely reported always ready for data by select(). This makes pppd eat up 100% CPU time after the first persist because of the always instantly returning select() on the unclosed fds. The problem also occurs with the upstream version, but does not occur when a pty/tty device is used for the ppp connection. I attached a patch, which removes the problem by closing the fd first, when it was already open, upon establishment of the PPP phase. I use Linux 2.6.10 with Debian patches. Simon
close_dev_ppp.patch
Description: Binary data