проблемы со странными тормозами были вызваны использованием непонятного clocksource. В связи с отсутствием „hpet” (видимо баги в BIOS не дают работать ACPI) пришлось ограничиться „tsc” добавив к параметрам ядра clocksource=tsc
теперь осталось понять откуда этот timeout в DRM. При перезапуске иксов всё работает, а если грузиться из BIOS boot menu то этот timeout никогда не возникает.
Похоже что вот Bugzilla подходящая: https://bugzilla.kernel.org/show_bug.cgi?id=68451
Продолжаем докапываться до причины проблем. Теперь насчёт двойных кликов при касании. Похоже что в xorg приходит двойное нажатие от драйвера при кратком одиночном касании экрана:
[root@localhost]# evtest /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x416 product 0x1001 version 0x28bb
Input device name: "Goodix Capacitive TouchScreen"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 58
Min 0
Max 800
Event code 1 (ABS_Y)
Value 1240
Min 0
Max 1280
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 9
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 255
Event code 50 (ABS_MT_WIDTH_MAJOR)
Value 0
Min 0
Max 255
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 800
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 1280
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1419200731.157492, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 111
Event: time 1419200731.157492, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 38
Event: time 1419200731.157492, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1247
Event: time 1419200731.157492, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 51
Event: time 1419200731.157492, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 51
Event: time 1419200731.157492, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1419200731.157492, type 3 (EV_ABS), code 0 (ABS_X), value 38
Event: time 1419200731.157492, type 3 (EV_ABS), code 1 (ABS_Y), value 1247
Event: time 1419200731.157492, -------------- SYN_REPORT ------------
Event: time 1419200731.161582, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1419200731.161582, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1419200731.161582, -------------- SYN_REPORT ------------
Event: time 1419200731.167270, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 112
Event: time 1419200731.167270, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1419200731.167270, -------------- SYN_REPORT ------------
Event: time 1419200731.189487, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 47
Event: time 1419200731.189487, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 47
Event: time 1419200731.189487, -------------- SYN_REPORT ------------
Event: time 1419200731.210812, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1419200731.210812, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1419200731.210812, -------------- SYN_REPORT ------------
^C
decembrie 15, 2014 17:25
UPD:
проблемы со странными тормозами были вызваны использованием непонятного clocksource. В связи с отсутствием „hpet” (видимо баги в BIOS не дают работать ACPI) пришлось ограничиться „tsc” добавив к параметрам ядра clocksource=tsc
decembrie 17, 2014 16:48
UPD2:
Вот скорее всего причина, по которой Xorg не заводится иногда:
[ 18.256603] ------------[ cut here ]------------
[ 18.256790] WARNING: CPU: 1 PID: 880 at drivers/gpu/drm/i915/intel_display.c:901 intel_wait_for_vblank+0x1f7/0x200 [i915]()
[ 18.256871] vblank wait on pipe A timed out
[ 18.256881] Modules linked in: xt_conntrack cfg80211 ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw bnep vfat fat joydev gpio_keys snd_soc_sst_byt_rt5640_mach snd_soc_sst_baytrail_pcm snd_soc_sst_dsp iTCO_wdt intel_soc_dts_thermal iTCO_vendor_support btusb coretemp bluetooth kvm_intel snd_soc_rt5640 snd_soc_rl6231 kvm snd_soc_core 8723bs(OE) crc32_pclmul snd_compress snd_seq crc32c_intel snd_seq_device snd_pcm snd_timer dw_dmac dw_dmac_core soc_button_array snd i2c_hid soundcore goodix rfkill_gpio acpi_pad rfkill int3402_thermal
[ 18.257174] iosf_mbi i2c_designware_platform int3400_thermal int3403_thermal acpi_thermal_rel pwm_lpss_platform pwm_lpss mei_txe i2c_designware_core lpc_ich mei snd_soc_sst_acpi mmc_block i915 i2c_algo_bit drm_kms_helper drm video sdhci_acpi sdhci mmc_core
[ 18.257266] CPU: 1 PID: 880 Comm: Xorg.bin Tainted: G OE 3.18.0-1.1awb.i686 #1
[ 18.257279] Hardware name: CUBE IWORK7/IWORK7, BIOS 5.6.5 10/31/2014
[ 18.257290] 00000000 7e395223 00000000 e7fb1cbc c0a4bd86 e7fb1d00 e7fb1cf0 c0456222
[ 18.257325] f89f6dc8 e7fb1d20 00000370 f89f5370 00000385 f899fc77 00000385 f899fc77
[ 18.257359] f6ee0000 001f0040 0000044e e7fb1d0c c045627e 00000009 e7fb1d00 f89f6dc8
[ 18.257393] Call Trace:
[ 18.257425] [] dump_stack+0x41/0x52
[ 18.257448] [] warn_slowpath_common+0x82/0xa0
[ 18.257618] [] ? intel_wait_for_vblank+0x1f7/0x200 [i915]
[ 18.257772] [] ? intel_wait_for_vblank+0x1f7/0x200 [i915]
[ 18.257822] [] warn_slowpath_fmt+0x3e/0x60
[ 18.257888] [] intel_wait_for_vblank+0x1f7/0x200 [i915]
[ 18.257956] [] intel_pipe_set_base+0x161/0x360 [i915]
[ 18.257965] [] ? __kmalloc+0x1fe/0x210
[ 18.257974] [] ? idr_get_empty_slot+0x159/0x350
[ 18.258038] [] intel_crtc_set_config+0x9ed/0xc70 [i915]
[ 18.258047] [] ? __ww_mutex_lock+0x14/0x90
[ 18.258088] [] drm_mode_set_config_internal+0x4e/0xc0 [drm]
[ 18.258123] [] drm_mode_setcrtc+0x24c/0x590 [drm]
[ 18.258159] [] ? drm_mode_setplane+0x240/0x240 [drm]
[ 18.258189] [] drm_ioctl+0x1f5/0x560 [drm]
[ 18.258199] [] ? inotify_free_event+0xd/0x10
[ 18.258206] [] ? fsnotify_destroy_event+0x27/0x50
[ 18.258241] [] ? drm_mode_setplane+0x240/0x240 [drm]
[ 18.258251] [] ? security_compute_sid+0x412/0x5d0
[ 18.258292] [] ? drm_getmap+0xc0/0xc0 [drm]
[ 18.258302] [] do_vfs_ioctl+0x302/0x4f0
[ 18.258310] [] ? inode_has_perm.isra.30+0x32/0x50
[ 18.258318] [] ? file_has_perm+0x97/0xa0
[ 18.258327] [] ? vfs_write+0x165/0x1e0
[ 18.258334] [] ? selinux_file_ioctl+0x4b/0xe0
[ 18.258342] [] SyS_ioctl+0x60/0x90
[ 18.258349] [] ? security_compute_sid+0x412/0x5d0
[ 18.258357] [] ? security_compute_sid+0x412/0x5d0
[ 18.258365] [] sysenter_do_call+0x12/0x12
[ 18.258401] [] ? security_compute_sid+0x412/0x5d0
[ 18.258430] [] ? security_compute_sid+0x412/0x5d0
[ 18.258460] [] ? rt_mutex_slowlock+0x150/0x1b0
[ 18.258477] ---[ end trace cae4b4fc22cb2a00 ]---
теперь осталось понять откуда этот timeout в DRM. При перезапуске иксов всё работает, а если грузиться из BIOS boot menu то этот timeout никогда не возникает.
Похоже что вот Bugzilla подходящая: https://bugzilla.kernel.org/show_bug.cgi?id=68451
decembrie 22, 2014 0:35
Продолжаем докапываться до причины проблем. Теперь насчёт двойных кликов при касании. Похоже что в xorg приходит двойное нажатие от драйвера при кратком одиночном касании экрана:
[root@localhost]# evtest /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x416 product 0x1001 version 0x28bb
Input device name: "Goodix Capacitive TouchScreen"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 58
Min 0
Max 800
Event code 1 (ABS_Y)
Value 1240
Min 0
Max 1280
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 9
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 255
Event code 50 (ABS_MT_WIDTH_MAJOR)
Value 0
Min 0
Max 255
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 800
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 1280
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1419200731.157492, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 111
Event: time 1419200731.157492, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 38
Event: time 1419200731.157492, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1247
Event: time 1419200731.157492, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 51
Event: time 1419200731.157492, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 51
Event: time 1419200731.157492, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1419200731.157492, type 3 (EV_ABS), code 0 (ABS_X), value 38
Event: time 1419200731.157492, type 3 (EV_ABS), code 1 (ABS_Y), value 1247
Event: time 1419200731.157492, -------------- SYN_REPORT ------------
Event: time 1419200731.161582, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1419200731.161582, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1419200731.161582, -------------- SYN_REPORT ------------
Event: time 1419200731.167270, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 112
Event: time 1419200731.167270, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1419200731.167270, -------------- SYN_REPORT ------------
Event: time 1419200731.189487, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 47
Event: time 1419200731.189487, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 47
Event: time 1419200731.189487, -------------- SYN_REPORT ------------
Event: time 1419200731.210812, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1419200731.210812, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1419200731.210812, -------------- SYN_REPORT ------------
^C
сам драйвер при этом очень мелкий:
https://github.com/hadess/gt9xx/blob/master/goodix.c
Надеюсь удастся методом тыка побороть эту проблему.