The problem appears to be localized to the new upstart boot stuff. X is trying to call tcflush() to flush the console of any unwritten output, but is getting an EIO error now. Since the console doesn't get flushed, that's leaving stuff there and makes the console fd appear to still be readable all the time, so X never gets a chance to sleep. Since it's never sleeping, the CPU goes to 100%.
jcristau found the EIO error is being returned at this point in tcflush():
if (is_current_pgrp_orphaned()) { ret = -EIO; goto out;
}
So next question is, why is is_current_pgrp_orphaned() failing?
The problem appears to be localized to the new upstart boot stuff. X is trying to call tcflush() to flush the console of any unwritten output, but is getting an EIO error now. Since the console doesn't get flushed, that's leaving stuff there and makes the console fd appear to still be readable all the time, so X never gets a chance to sleep. Since it's never sleeping, the CPU goes to 100%.
jcristau found the EIO error is being returned at this point in tcflush():
if (is_current_ pgrp_orphaned( )) {
ret = -EIO;
goto out;
}
So next question is, why is is_current_ pgrp_orphaned( ) failing?