-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vc4-fkms-v3d slows down Xorg startup #149
Comments
fkms is a disgusting awful hack in the downstream tree. Does kms have the same issues? (probably, I'm just not going to even pretend to support fkms if it's an issue there) If the CPU is busy during the delays, you should probably try to use sysprof or perf to look into it. |
I tested VC4-KMS-V3D driver today and it seems to have the same issue. Xorg loads much slower than with generic driver.
But I cannot test how it behaves after disabling HDMI output ("tvservice -o"), because RPi touch display does not work with this driver so HDMI monitor needs to be connected. |
We do check for a bad block during namespace init and that use region bad block list. We need to initialize the bad block for volatile regions for this to work. We also observe a lockdep warning as below because the lock is not initialized correctly since we skip bad block init for volatile regions. INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.3.0-rc1-15699-g3dee241c937e #149 Call Trace: [c0000000f95cb250] [c00000000147dd84] dump_stack+0xe8/0x164 (unreliable) [c0000000f95cb2a0] [c00000000022ccd8] register_lock_class+0x308/0xa60 [c0000000f95cb3a0] [c000000000229cc0] __lock_acquire+0x170/0x1ff0 [c0000000f95cb4c0] [c00000000022c740] lock_acquire+0x220/0x270 [c0000000f95cb580] [c000000000a93230] badblocks_check+0xc0/0x290 [c0000000f95cb5f0] [c000000000d97540] nd_pfn_validate+0x5c0/0x7f0 [c0000000f95cb6d0] [c000000000d98300] nd_dax_probe+0xd0/0x1f0 [c0000000f95cb760] [c000000000d9b66c] nd_pmem_probe+0x10c/0x160 [c0000000f95cb790] [c000000000d7f5ec] nvdimm_bus_probe+0x10c/0x240 [c0000000f95cb820] [c000000000d0f844] really_probe+0x254/0x4e0 [c0000000f95cb8b0] [c000000000d0fdfc] driver_probe_device+0x16c/0x1e0 [c0000000f95cb930] [c000000000d10238] device_driver_attach+0x68/0xa0 [c0000000f95cb970] [c000000000d1040c] __driver_attach+0x19c/0x1c0 [c0000000f95cb9f0] [c000000000d0c4c4] bus_for_each_dev+0x94/0x130 [c0000000f95cba50] [c000000000d0f014] driver_attach+0x34/0x50 [c0000000f95cba70] [c000000000d0e208] bus_add_driver+0x178/0x2f0 [c0000000f95cbb00] [c000000000d117c8] driver_register+0x108/0x170 [c0000000f95cbb70] [c000000000d7edb0] __nd_driver_register+0xe0/0x100 [c0000000f95cbbd0] [c000000001a6baa4] nd_pmem_driver_init+0x34/0x48 [c0000000f95cbbf0] [c0000000000106f4] do_one_initcall+0x1d4/0x4b0 [c0000000f95cbcd0] [c0000000019f499c] kernel_init_freeable+0x544/0x65c [c0000000f95cbdb0] [c000000000010d6c] kernel_init+0x2c/0x180 [c0000000f95cbe20] [c00000000000b954] ret_from_kernel_thread+0x5c/0x68 Signed-off-by: Aneesh Kumar K.V <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Dan Williams <[email protected]>
I reported in raspberry/firmware, but this is probably more related place. After enabling KMS fake driver (dtoverlay=vc4-fkms-v3d), the Xorg startup is much slower.
We are able to boot RPi3B+ (with 7" Pi Touch screen) into our GTK+2 application (from .xinitrc) in 4.5 secs with legacy driver, but after enabling fake KMS driver, the boot takes threetimes more time. The issue is not related to our application. It happens even where starting e.g. lxterminal. I can notice two delays in Xorg.0.log.
One short 800 ms delay directly when glamor driver loads:
One long delay at the end of the log:
This second delay is random, sometimes is shorter, sometimes very long. I noticed that application started via .xinitrc is already running at this time ("ps aux" shows it) but its window is not visible on the screen until this "Disabling kernel updates" log message appears.
I also noticed that disabling HDMI output ("tvservice -o") increases this Xorg delay rapidly and it also takes a minutes to device restart (long time of black screen before device actually reboots after "sudo reboot"). No problem with legacy driver.
Application appears after 125 seconds since boot!
The text was updated successfully, but these errors were encountered: