Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jan 2018 20:35:24 +0000
From:      Johannes Lundberg <johalun0@gmail.com>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: Periodical interrupt storm when playing game with USB keyboard
Message-ID:  <CAECmPwvgMDBTUjhAERe4bKLgNYCim9bwdHw2JEL0RgTckMjSDw@mail.gmail.com>
In-Reply-To: <e2851846-0678-5cb9-0fce-e9cf49c41a2e@selasky.org>
References:  <CAECmPwvDQBYw=mKJpZfUdKpXSC8GysZKSk0f9qaZEXCvy_QeMA@mail.gmail.com> <e2851846-0678-5cb9-0fce-e9cf49c41a2e@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Sending the same again, this time cc the list.


On Sun, Jan 21, 2018 at 7:34 PM, Hans Petter Selasky <hps@selasky.org>
wrote:

> On 01/21/18 16:41, Johannes Lundberg wrote:
>
>> Hi
>>
>> Finally I found the root to the problem that's been having me puzzled fo=
r
>> the last week.
>>
>> I started playing UT2004 on my laptop while away from home. Worked
>> perfectly. When I'm home and connect external display+mouse/keyboard, I
>> get
>> weird random lag.
>>
>> It is intr process that goes up to 100% CPU usage (swi4: clock) for a
>> couple of seconds every 30 seconds or so, but only when I'm moving aroun=
d
>> in the game. To move around you need to hold down any of the wasd-keys.
>>
>> Turns out, the interrupt storms only happen when I use my external
>> keyboard, not with the laptop keyboard.
>>
>> The internal keyboard is:
>> atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
>> atkbd0: <AT Keyboard> irq 1 on atkbdc0
>>
>> and external (Microsoft sculpt ergonomic desktop):
>> ugen0.2: <Microsoft Microsoft 2.4GHz Transceiver v9.0> at usbus0
>> ukbd0: <Microsoft Microsoft 2.4GHz Transceiver v9.0, class 0/0, rev
>> 2.00/7.97, addr 1> on usbus0
>>
>> The game runs with a linux binary. 32/64bit both act the same.
>> It uses libSDL-1.2 from /compat/linux/lib for rendering but not sure abo=
ut
>> input events.
>>
>> I tried lowering the key repeat rate both with xset and kbdcontrol but i=
t
>> has no effect.
>>
>> I don't have any wired USB keyboard to try with.
>>
>> Anyone have a clue to what's going on?
>>
>> Hardware is Dell Latitude E7270
>> with
>> FreeBSD 12-CURRENT
>> drm-next-kmod
>> linux-c6
>>
>
> Hi,
>
> What does "vmstat -i" say?
>

Don=E2=80=99t remember the exact values now but it says cpu0:timer is getti=
ng A LOT
of interrupts. Like at least 10-50x the others. Otherwise normal.


>
> The issue can also be caused by a timer with a small or zero timeout.
>
> This can be checked by setting:
> kern.eventtimer.periodic=3D1
>
> in /boot/loader.conf and rebooting.
>

Wow, kern.eventtimer.periodic=3D1 really made all the difference.
No problem at all now and all cpu timers have equal interrupt total and
rate.

What does kern.eventtimer.periodic do?  The sysctl description wasn't that
elaborate...



> --HPS
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAECmPwvgMDBTUjhAERe4bKLgNYCim9bwdHw2JEL0RgTckMjSDw>