On Fri Mar 18 11, Alexander Best wrote:
> On Fri Mar 18 11, Alexander Best wrote:
> > On Thu Mar 17 11, Alexander Best wrote:
> > > On Thu Mar 17 11, Alexander Best wrote:
> > > > On Fri Jan 21 11, Attilio Rao wrote:
> > > > > 2011/1/21 Alexander Best <arun...@freebsd.org>:
> > > > > > hi there,
> > > > > >
> > > > > > i've reported this issue quite a while ago [1], but back then 
> > > > > > nobody was able
> > > > > > to help me. i have an issue with my usb mouse. when there's a high 
> > > > > > CPU load it
> > > > > > produces random mouse clicks. this doesn't happen on other OSes. 
> > > > > > i've attached
> > > > > > a different usb mouse to my freebsd box and i could't observe the 
> > > > > > same
> > > > > > behavior. so it seems this problem is only related to specific mice.
> > > > > 
> > > > > I can experience the same problem.
> > 
> > switching to sched_4bsd and turning on preemption improves the situation a 
> > lot:
> > 
> > == low CPU load ==
> > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > 100+0 records in
> > 100+0 records out
> > 104857600 bytes transferred in 4.382537 secs (23926233 bytes/sec)
> > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > 100+0 records in
> > 100+0 records out
> > 104857600 bytes transferred in 4.379637 secs (23942076 bytes/sec)
> > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > 100+0 records in
> > 100+0 records out
> > 104857600 bytes transferred in 4.380993 secs (23934666 bytes/sec)
> > 
> > == high CPU load on cores 1 and 2 ==
> > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > 100+0 records in
> > 100+0 records out
> > 104857600 bytes transferred in 4.364027 secs (24027716 bytes/sec)
> > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > 100+0 records in
> > 100+0 records out
> > 104857600 bytes transferred in 4.364638 secs (24024353 bytes/sec)
> > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > 100+0 records in
> > 100+0 records out
> > 104857600 bytes transferred in 4.366761 secs (24012672 bytes/sec)
> > 
> > ...i'll check whether sched_ule and preemption enabled also returns such 
> > nice
> > results.
> 
> same results with sched_ule and preemption enabled. :) so enabling preemption
> seems to get rid of the issue. i suspect sched_4bsd with preemption disabled
> will also produce the issue and slow usb transfers during high CPU load.

hmm...no actually. the complete results are:

SCHED | PREEMPTION | RESULTS
------|------------|--------
ULE   | enabled    | OK
ULE   | disabled   | SLOW
4BSD  | enabled    | OK
4BSD  | disabled   | OK

cheers.
alex

> 
> > 
> > cheers.
> > alex
> > 
> > > 
> > > also i did a few i/o tests using dd in combination with high CPU load:
> > > 
> > > == low CPU load ==
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 4.433087 secs (23653404 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 4.414529 secs (23752841 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 4.433871 secs (23649222 bytes/sec)
> > > 
> > > == high CPU load on cores 1 and 2 ==
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 39.220969 secs (2673509 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 41.791827 secs (2509046 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 58.067697 secs (1805782 bytes/sec)
> > > 
> > > == high CPU load on core 1 ==
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 4.552803 secs (23031438 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 4.593116 secs (22829295 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 4.588891 secs (22850314 bytes/sec)
> > > 
> > > = high CPU load on core 0 ==
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 13.381070 secs (7836264 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 12.810288 secs (8185421 bytes/sec)
> > > otaku% dd if=/dev/da0 of=/dev/null bs=1m count=100
> > > 100+0 records in
> > > 100+0 records out
> > > 104857600 bytes transferred in 13.519533 secs (7756008 bytes/sec)
> > > 
> > > cheers.
> > > alex
> > > 
> > > > 
> > > > i've captured the iostat ouput during the random mouse clicks:
> > > > 
> > > >        tty            ada0             ada1              cd0            
> > > >  cpu
> > > >  tin  tout  KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy 
> > > > in id
> > > >   36   227 31.97   2  0.05  31.47  16  0.50  59.61   0  0.02   9  0  3  
> > > > 0 88
> > > >    7   232  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   5  0  2 
> > > >  1 92
> > > >    9    82  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   4  0  3  
> > > > 0 94
> > > >    6    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   6  0  3  
> > > > 1 91
> > > >   16   676  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   6  0  4  
> > > > 0 89
> > > >    8    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   7  0  2 
> > > >  1 90
> > > >    2    78  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00  16  0  3  
> > > > 0 80
> > > >    4    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   6  0  2 
> > > >  1 91
> > > >  121    78  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   3  0  1  
> > > > 0 96
> > > >  290    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   4  0  3 
> > > >  1 92
> > > >  998    78  0.00   0  0.00  32.00   1  0.03   0.00   0  0.00   6  0  5  
> > > > 0 89
> > > > 3231 30024  7.20   5  0.03  13.23 1583 20.45   0.00   0  0.00  25  0 28 
> > > >  3 44
> > > > 2437 18319  4.00   2  0.01  13.04 916 11.66   0.00   0  0.00  16  0 17  
> > > > 0 67
> > > > 1291  8441  0.00   0  0.00  13.08 1085 13.86   0.00   0  0.00  15  0 14 
> > > >  3 68
> > > >  737   243  0.00   0  0.00  13.13 359  4.61   0.00   0  0.00   7  0  4  
> > > > 0 88
> > > >  396    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   7  0  5 
> > > >  1 87
> > > >  124    78  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   5  0  1  
> > > > 0 94
> > > >    8    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   7  0  3 
> > > >  1 89
> > > >   12   169  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   8  0  2  
> > > > 0 89
> > > >    8    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00   7  0  2 
> > > >  1 91
> > > >    4    78 16.00   6  0.09   0.00   0  0.00   0.00   0  0.00   4  0  2  
> > > > 0 94
> > > >   24    77 36.00  16  0.56  24.34  35  0.82   0.00   0  0.00  16  0  6  
> > > > 1 77
> > > >    8    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   4  0  3  
> > > > 0 92
> > > >    8    77  0.00   0  0.00  14.62  16  0.23   0.00   0  0.00   7  0  2  
> > > > 0 91
> > > >    4    77  0.00   0  0.00  18.24  17  0.30   0.00   0  0.00   5  0  5  
> > > > 0 90
> > > >    6    77  0.00   0  0.00  32.00   2  0.06   0.00   0  0.00  16  0  3  
> > > > 1 81
> > > >    6    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   7  0  2  
> > > > 0 91
> > > >    0    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   4  0  2  
> > > > 1 93
> > > >    5    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   4  0  4  
> > > > 0 91
> > > >    1    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   3  0  0  
> > > > 1 96
> > > >    0    77  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00   2  0  1  
> > > > 0 97
> > > > 
> > > > ...in fact if i move the mouse fast enough i'm able to reproduce the 
> > > > issue
> > > > without any high CPU activity.
> > > > 
> > > > the following iostat output was taken during high CPU load. now also 
> > > > slow mouse
> > > > movements can cause random mouse events (i.e. clicks) to happen:
> > > > 
> > > >        tty            ada0             ada1              cd0            
> > > >  cpu
> > > >  tin  tout  KB/t tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy 
> > > > in id
> > > >   36   230 31.80   2  0.05  31.39  16  0.49  59.61   0  0.02   9  0  3  
> > > > 0 88
> > > >    1   233  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00  96  0  4 
> > > >  0  0
> > > >  467    78  0.00   0  0.00  128.00   4  0.50   0.00   0  0.00  96  0  3 
> > > >  1  0
> > > >  451    78  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00  96  0  4 
> > > >  0  0
> > > >  325    83  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00  93  0  6 
> > > >  1  0
> > > >    7    86  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00  97  0  3  
> > > > 0  0
> > > >   21   684  4.00   1  0.00   0.00   0  0.00   0.00   0  0.00  95  0  4  
> > > > 1  0
> > > >  540   625  0.00   0  0.00  13.60  98  1.30   0.00   0  0.00  95  0  5  
> > > > 0  0
> > > >  676  1222  0.00   0  0.00  13.43 307  4.03   0.00   0  0.00  91  0  7  
> > > > 2  0
> > > >  411    76  0.00   0  0.00  14.48 312  4.42   0.00   0  0.00  95  0  5  
> > > > 0  0
> > > >  388    77  0.00   0  0.00  128.00   4  0.50   0.00   0  0.00  94  0  5 
> > > >  1  0
> > > >  206    78  0.00   0  0.00   0.00   0  0.00   0.00   0  0.00  98  0  2  
> > > > 0  0
> > > >   17    77  0.00   0  0.00  128.00   1  0.12   0.00   0  0.00  97  0  3 
> > > >  0  0
> > > >    0    78  0.00   0  0.00  16.00  32  0.49   0.00   0  0.00  98  0  2  
> > > > 0  0
> > > > 
> > > > i'm still under the impression this is a scheduler problem, but who 
> > > > knows...
> > > > 
> > > > cheers.
> > > > alex
> > > > 
> > > > > 
> > > > > Attilio
> > > > > 
> > > > > 
> > > > > -- 
> > > > > Peace can only be achieved by understanding - A. Einstein
> > > > 
> > > > -- 
> > > > a13x
> > > 
> > > -- 
> > > a13x
> > 
> > -- 
> > a13x
> 
> -- 
> a13x

-- 
a13x
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to