Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

mouse jumps with tcp_usrreq_wrapper



Hi Chuck,

thanks for fixing the mouse jumps with disk io (PR 46325).
I still can reproduce mouse jumps with network io.

The way I can reproduce:

Use NetBSD/amd64 as desktop machine and ssh to
a remote machine. Do something that keeps the
local xterm busy (e.g. run a build on the remote
machine).

A second way I can reproduce is to have $HOME
mounted via nfs and run thunderbird. Fetch mails
and tell thunderbird to store it somewhere under $HOME/.

I run 'lockstat cat' several times and whenever I
reproduced a mouse jump I got this:


-- Kernel lock spin

Total%  Count   Time/ms          Lock                       Caller
------ ------- --------- ----------------------
------------------------------
100.00     355      7.53 kernel_lock            <all>
 68.49      39      5.16 kernel_lock            VOP_POLL+40
 22.36     174      1.68 kernel_lock            cdev_poll+4d
  3.87      53      0.29 kernel_lock            VOP_UNLOCK+40
  1.51      12      0.11 kernel_lock            intr_biglock_wrapper+16
  1.28      48      0.10 kernel_lock            tcp_usrreq_wrapper+2d
  1.11      11      0.08 kernel_lock            VOP_READ+48
  0.63      11      0.05 kernel_lock            VOP_LOCK+43
  0.31       1      0.02 kernel_lock            cdev_read+4d
  0.27       2      0.02 kernel_lock            VOP_WRITE+48
  0.09       2      0.01 kernel_lock            softint_dispatch+161
  0.06       1      0.00 kernel_lock            ipintr+41
  0.01       1      0.00 kernel_lock            ip_slowtimo+1a


Also 'top -u' shows that the Xorg process eats most cpu time
and interrupt load is about 2.0% on cpu0 when the mouse jump happens.

My theory is that the mouse jump happens everytime when the
Xorg process is blocked by the big kernel lock used with
tcp_usrreq_wrapper().

Christoph


Home | Main Index | Thread Index | Old Index