• Michael Ellerman's avatar
    [PATCH] powerpc: Make rtas console _much_ faster · b5374461
    Michael Ellerman authored
    Currently the hvc_rtas driver is painfully slow to use. Our "benchmark" is
    ls -R /etc, which spits out about 27866 characters. The theoretical maximum
    speed would be about 2.2 seconds, the current code takes ~50 seconds.
    
    The core of the problem is that sometimes when the tty layer asks us to push
    characters the firmware isn't able to handle some or all of them, and so
    returns an error. The current code sees this and just returns to the tty code
    with the buffer half sent.
    
    The khvcd thread will eventually wake up and try to push more characters, which
    will usually work because by then the firmware's had time to make room. But
    the khvcd thread only wakes up every 10 milliseconds, which isn't fast enough.
    
    So change the khvcd thread logic so that if there's an incomplete write we
    yield() and then immediately try writing again. Doing so makes POLL_QUICK and
    POLL_WRITE synonymous, so remove POLL_QUICK.
    
    With this patch our "benchmark" takes ~2.8 seconds.
    Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    b5374461
hvc_console.c 20.5 KB