加载论坛时出错,请强制刷新页面重试。

我正在把龙芯独显驱动的内核模块gsgpu移植到最新的主线内核上

autistic-chad

大家好,我正在把龙芯7A2000的独显芯片(貌似代号叫LG100?)内核驱动模块gsgpu移植到最新的主线内核上。目前的状态是可以通过编译但是还在调试之中(还没有调试通),大家有兴趣的可以一起加入进来,代码在github上 https://github.com/cl91/linux/tree/gsgpu 注意是gsgpu branch. 这个内核模块需要固件,我打包在 https://github.com/cl91/linux-gsgpu-archpkg

gsgpu这个内核模块是8月底龙芯公司推送到loongnix的,可以比较好的支持背光和硬件加速(我就是因为天创者笔记本背光的问题才想到移植这个内核模块的),但是是基于4.19内核版本。Linux内核的DRM子系统从4.19到6.6rc2已经发生了比较大的变化,所以原厂的驱动代码有很多地方需要修改。很不幸7A2000的GPU部分是完全没有文档的,但是放出来的这个内核模块很显然是基于amdgpu大概2018年中的某个版本(估计就是v4.19)改的。大部分代码基本上是直接进行了字符串替换 amdgpu -> gsgpu。所以我个人猜测硬件本身是仿照早期的AMDGPU设计的,根据内核代码和loongnix里的libLLVM-8-loonggpu.so中的某些符号我猜测可能是基于ATI大概07年左右的R600架构设计的。(我个人不太认为是直接买AMD的软IP核,AMD貌似也不卖?摩尔线程是直接买的PowerVR的IP核,龙芯要是走拿来主义路线为啥不选择一个比较新的架构?所以这说不通。)

貌似官方内部团队对这个内核模块也没有搞得很清楚,只是大概能跑通,代码质量比较一般。代码中AMDGPU-specific的部分貌似也没删干净,很多代码我猜测硬件是没有相应的功能的(看代码的时候有一个很好的判断到底那些代码是AMDGPU驱动直接字符串替换的还是龙芯团队后来修改的的方法,就是代码比较工整特别是注释的英语语法非常标准的地方一定是AMDGPU原来的代码,代码比较混乱特别是注释有大量语法错误的十有八九是龙芯团队后来加上去的 😆 )。

我本人对AMDGPU也不是非常熟悉,大家有什么想法请告诉我。在移植的过程中我整理了v4.19到v6.6rc2中DRM子系统的相关commit,放在github上(https://github.com/cl91/linux-gsgpu-archpkg/blob/master/gsgpu-notes),大家可以参考。


杜比

支持


autistic-chad

现在遇到的一个问题是加载完gsgpu内核驱动后系统马上就卡死了,没有机会做下一步的诊断。有没有人用过天创者上的USB串口界面调试过内核?可以告诉我一些经验不。

更正一下我原帖里的猜测:看了更多的代码之后我比较倾向于认为7A2000独显是模仿AMD的GFX8架构设计的,这样就把时间拉到了2014年,和主流的差距小了一点(gfx8直到18年还属于主流架构,这样一看差距就更小了)。当然AMD显卡设计的特点是不同的IP block独立性比较高,所以不确定是不是所有的ip block都是gfx8时代的设计。


杜比

autistic-chad 可以在天创者笔记本bios界面上,打开串口,然后用双头usb线,连结到另一台计算机上,会识别成一个串口

这个gsgpu,loongnix 上内核驱动和xserver-video-loongson代码可以找到一些,在uos上也可以找到gsgpu-dri的代码,目前大致上是这样。

关于这个gpu,从收集的参数和实际性能看,我觉得更接近于r600,也就是amd 780e上集成的hd3000显卡核心,后续的gpgpu应该还会加上通用计算部分的支持。下面这个链接是收集到的信息,仅供参考

龙芯新桥片7A2000的一些特性和主板图片视频资源
https://bbs.loongarch.org/d/99-7a2000


xen0n

加 Telegram 群 loongson_users,有技术问题可以在那儿尽情讨论(懂的人会更多)。

这是重要的开发工作,我看到这些很感动,目前社区里开发者多少都不算多。祝你好运!如果有我搞过的东西,只要你问我和朋友们都会教你。


TSiNGKONG

我也在移植 gsgpu,硬件系统是3A5000+7A2000,OS是 ArchLinux (6.3.0内核)。我遇到的问题是,ArchLinux中无法启动Gnome,我怀疑是因为缺少GPU驱动,所以就想把 loongnix 里的 gsgpu 移植到 ArchLinux。

从 loognix 的源里下载了内核代码(http://pkg.loongnix.cn/loongnix/pool/main/l/linux/linux_4.19.190.8.6.orig.tar.gz), 参考了 AMDGPU 驱动在 4.19 和 6.3 的差异,通过 dkms 编译成功了,但是在 insmod 后,应该触发 IH: XDMA trap 的地方却触发了 GPU 的 0x92(146) 异常。

GSGPU 异常后,系统还活着,所以能看 log,但是 0x92异常卡了我两个多月了,一直搞不定。希望能和大佬交流一下,wx: tsingkong


autistic-chad

TSiNGKONG 噢噢我加你微信了 我的微信号是 cl91tp


autistic-chad

TSiNGKONG 我现在的status是虽然加载gsgpu模块后屏幕黑屏系统卡死,但sysrq还能用,所以用sysrq sync fs一下内核panic的log其实都是保留下来了,重启后能在journalctl里看到。这样我就能用printk大法定位问题。我修了几个小bug,但现在还没有到你说的那个gpu异常那儿。我现在的panic log是

Oct 02 23:13:04 mako kernel: [drm] Got VBIOS from mapped PCI ROM!
Oct 02 23:13:04 mako kernel: [drm] gsgpu kernel modesetting enabled.
Oct 02 23:13:04 mako kernel: Console: switching to colour dummy device 80x25
Oct 02 23:13:04 mako kernel: [drm] initializing kernel modesetting (LG100 0x0014:0x7A25 0x0000:0x0000 0x01).
Oct 02 23:13:04 mako kernel: [drm] Set 7A2000 device in gsgpu driver
Oct 02 23:13:04 mako kernel: [drm] register mmio base: 0x41254000
Oct 02 23:13:04 mako kernel: [drm] register mmio size: 256
Oct 02 23:13:04 mako kernel: [drm] gsgpu dc register mmio base: 0x41210000
Oct 02 23:13:04 mako kernel: [drm] gsgpu dc register mmio size: 65536
Oct 02 23:13:04 mako kernel: [drm] gsgpu dc io base: 0x8000000010010000
Oct 02 23:13:05 mako kernel: [drm] GPU Family: LG100 series LG110, Feature:0x00000000
Oct 02 23:13:05 mako kernel: [drm] Firmware Version: 1.0.0
Oct 02 23:13:05 mako kernel: [drm] aper_base 0xe0100000000 SIZE 0x40000000 bytes 
Oct 02 23:13:05 mako kernel: gsgpu 0000:00:06.0: Video RAM: 256M 0x0001000000000000 - 0x000100000FFFFFFF (256M used)
Oct 02 23:13:05 mako kernel: gsgpu 0000:00:06.0: GART: 256M 0x0000000000000000 - 0x000000000FFFFFFF
Oct 02 23:13:05 mako kernel: [drm] Detected VRAM RAM=256M, BAR=1024M
Oct 02 23:13:05 mako kernel: [drm] RAM width 32bits UNKNOWN
Oct 02 23:13:05 mako kernel: [drm] gsgpu: 256M of VRAM memory ready
Oct 02 23:13:05 mako kernel: [drm] gsgpu: 3072M of GTT memory ready.
Oct 02 23:13:05 mako kernel: [drm] GART: num cpu pages 16384, num gpu pages 16384
Oct 02 23:13:05 mako kernel: [drm] vm size is 1024 GB, 3 levels, block size is 11-bit
Oct 02 23:13:05 mako kernel: [drm] PCIE GART of 256M enabled (table at 0x000100000FFE0000).
Oct 02 23:13:05 mako kernel: [drm] ZIP META: num cpu pages 128, num gpu pages 128
Oct 02 23:13:05 mako kernel: [drm] Got VBIOS from mapped PCI ROM!
Oct 02 23:13:05 mako kernel: [drm:parse_vbios_default [gsgpu]] *ERROR* Current descriptor[T-7][V-0] cannot be interprete.
Oct 02 23:13:05 mako kernel: Parse T-0 V-7 failed[0]
Oct 02 23:13:05 mako kernel: [drm] GSGPU vbios header info:
Oct 02 23:13:05 mako kernel: [drm] ver:2.1 links2 max_planes0 name Loongson-VBIOS
Oct 02 23:13:05 mako kernel: [35B blob data]
Oct 02 23:13:05 mako kernel: [drm] GSGPU vbios crtc0 max frep340000 width4096 height4096
Oct 02 23:13:05 mako kernel: [drm] GSGPU vbios crtc1 max frep340000 width4096 height4096
Oct 02 23:13:05 mako kernel: gsgpu 0000:00:06.0: VRAM: 1024M DDR4 32bit 2400Mhz.
Oct 02 23:13:05 mako kernel: gsgpu 0000:00:06.0: GSGPU: shaders_num: 64, shaders_freq: 500, freq_count: 3.
Oct 02 23:13:05 mako kernel: [drm] No ext encoder chip 0x2.
Oct 02 23:13:05 mako kernel: [drm] Encoder Parse: #0x02-Unknown type:tmds hotplug:polling.
Oct 02 23:13:05 mako kernel: [drm] Encoder Parse: config_type:timing, edid_method:i2c.
Oct 02 23:13:05 mako kernel: [drm] No ext encoder chip 0x2.
Oct 02 23:13:05 mako kernel: [drm] Encoder Parse: #0x02-Unknown type:tmds hotplug:connected.
Oct 02 23:13:05 mako kernel: [drm] Encoder Parse: config_type:timing, edid_method:i2c.
Oct 02 23:13:05 mako kernel: [drm] GSGPU Display Core initialized with v1.0!
Oct 02 23:13:05 mako kernel: [drm] GSGPU DC construct links:2
Oct 02 23:13:05 mako kernel: [drm] PCIE ZIP META of 2M enabled (table at 0x000100000FC00000).
Oct 02 23:13:05 mako kernel: [drm] GSGPU DC irq init sources number:9
Oct 02 23:13:05 mako kernel: [drm] GSGPU DC init gpio 0 addr 0x50 finish
Oct 02 23:13:05 mako kernel: [drm] GSGPU DC init gpio 1 addr 0x50 finish
Oct 02 23:13:05 mako kernel: [drm] pwm: id=3, period=1000000ns, polarity=1.
Oct 02 23:13:05 mako kernel: [drm:gsgpu_backlight_register [gsgpu]] *ERROR* Failed to get the pwm chip
Oct 02 23:13:05 mako kernel: [drm] GSGPU Display Crtcs
Oct 02 23:13:05 mako kernel: [drm] Crtc 0: name:crtc-0
Oct 02 23:13:05 mako kernel: [drm] Crtc 1: name:crtc-1
Oct 02 23:13:05 mako kernel: [drm] GSGPU Display Connectors
Oct 02 23:13:05 mako kernel: [drm] Connector 0: name:HDMI-A-1
Oct 02 23:13:05 mako kernel: [drm] Connector 1: name:eDP-1
Oct 02 23:13:05 mako kernel: [drm] GSGPU Display Encoders
Oct 02 23:13:05 mako kernel: [drm] Encoder 0: name:TMDS-43
Oct 02 23:13:05 mako kernel: [drm] Encoder 1: name:TMDS-45
Oct 02 23:13:05 mako kernel: [drm] Config crtc number:2 meta addr 0x100000fa00000
Oct 02 23:13:06 mako kernel: ------------[ cut here ]------------
Oct 02 23:13:06 mako kernel: refcount_t: addition on 0; use-after-free.
Oct 02 23:13:06 mako kernel: WARNING: CPU: 0 PID: 10 at lib/refcount.c:25 refcount_warn_saturate+0xac/0x140
Oct 02 23:13:06 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_dev>
Oct 02 23:13:06 mako kernel: CPU: 0 PID: 10 Comm: kworker/0:1 Tainted: G           O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb6953214>
Oct 02 23:13:06 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010>
Oct 02 23:13:06 mako kernel: Workqueue: events work_for_cpu_fn
Oct 02 23:13:06 mako kernel: pc 9000000001c46484 ra 9000000001c46484 tp 90000001001bc000 sp 90000001001bfa60
Oct 02 23:13:06 mako kernel: a0 000000000000002a a1 9000000002977678 a2 90000001001bf888 a3 9000000002977680
Oct 02 23:13:06 mako kernel: a4 9000000002977678 a5 90000001001bf880 a6 0000000000000001 a7 0000000000000001
Oct 02 23:13:06 mako kernel: t0 dd22f8a5002a7849 t1 dd22f8a5002a7849 t2 0000000000000000 t3 0000000000000001
Oct 02 23:13:06 mako kernel: t4 0000000000000003 t5 0000000000000000 t6 07300720076e076f t7 077307750720073b
Oct 02 23:13:06 mako kernel: t8 000000000000000a u0 9000000002732f20 s9 0000000000000021 s0 90000001001bfab0
Oct 02 23:13:06 mako kernel: s1 9000000120094400 s2 9000000123d07940 s3 9000000100438000 s4 9000000116d3e000
Oct 02 23:13:06 mako kernel: s5 0000000000000000 s6 9000000116d3e0b8 s7 900000010043ac80 s8 000000000000000b
Oct 02 23:13:06 mako kernel:    ra: 9000000001c46484 refcount_warn_saturate+0xac/0x140
Oct 02 23:13:06 mako kernel:   ERA: 9000000001c46484 refcount_warn_saturate+0xac/0x140
Oct 02 23:13:06 mako kernel:  CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE)
Oct 02 23:13:06 mako kernel:  PRMD: 0000000c (PPLV0 +PIE +PWE)
Oct 02 23:13:06 mako kernel:  EUEN: 00000000 (-FPE -SXE -ASXE -BTE)
Oct 02 23:13:06 mako kernel:  ECFG: 00071c1d (LIE=0,2-4,10-12 VS=7)
Oct 02 23:13:06 mako kernel: ESTAT: 000c0000 [BRK] (IS= ECode=12 EsubCode=0)
Oct 02 23:13:06 mako kernel:  PRID: 0014c011 (Loongson-64bit, Loongson-3A5000M)
Oct 02 23:13:06 mako kernel: CPU: 0 PID: 10 Comm: kworker/0:1 Tainted: G           O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb6953214>
Oct 02 23:13:06 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010>
Oct 02 23:13:06 mako kernel: Workqueue: events work_for_cpu_fn
Oct 02 23:13:06 mako kernel: Stack : 000000000000000a 0000000000000000 900000000188350c 90000001001bc000
Oct 02 23:13:06 mako kernel:         90000001001bf6d0 90000001001bf6d8 0000000000000000 90000001001bf818
Oct 02 23:13:06 mako kernel:         90000001001bf810 90000001001bf810 90000001001bf5b0 0000000000000001
Oct 02 23:13:06 mako kernel:         0000000000000001 90000001001bf6d8 dd22f8a5002a7849 9000000100170c00
Oct 02 23:13:06 mako kernel:         0000000000000001 0000000000000003 0000000000000000 076f0766075f076b
Oct 02 23:13:06 mako kernel:         07700763075f0772 000000000000000a 0000000005b24000 0000000000000021
Oct 02 23:13:06 mako kernel:         0000000000000000 0000000000000000 9000000002727088 9000000002889000
Oct 02 23:13:06 mako kernel:         0000000000000000 0000000000000000 9000000116d3e0b8 900000010043ac80
Oct 02 23:13:06 mako kernel:         000000000000000b 0000000000000000 9000000001883534 00007ffff1197a08
Oct 02 23:13:06 mako kernel:         00000000000002b0 000000000000000c 0000000000000000 0000000000071c1d
Oct 02 23:13:06 mako kernel:         ...
Oct 02 23:13:06 mako kernel: Call Trace:
Oct 02 23:13:06 mako kernel: [<9000000001883534>] show_stack+0x6c/0x180
Oct 02 23:13:06 mako kernel: [<90000000023899a0>] dump_stack_lvl+0x60/0x88
Oct 02 23:13:06 mako kernel: [<9000000002379774>] __warn+0x84/0xc8
Oct 02 23:13:06 mako kernel: [<900000000234d794>] report_bug+0x11c/0x1f4
Oct 02 23:13:06 mako kernel: [<900000000238a010>] do_bp+0x1c0/0x344
Oct 02 23:13:06 mako kernel: [<9000000002c4192c>] exception_handlers+0x192c/0x10000
Oct 02 23:13:06 mako kernel: [<9000000001c46484>] refcount_warn_saturate+0xac/0x140
Oct 02 23:13:06 mako kernel: [<ffff80000305c040>] gsgpu_job_submit+0x70/0x134 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000304b80c>] gsgpu_vm_clear_bo.isra.0+0x15c/0x214 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000304e6d4>] gsgpu_vm_init+0x2c4/0x44c [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000303be84>] gsgpu_driver_open_kms+0xd8/0x1b4 [gsgpu]
Oct 02 23:13:06 mako kernel: [<9000000001e9f9e4>] drm_file_alloc+0x1b0/0x24c
Oct 02 23:13:06 mako kernel: [<9000000001e8d19c>] drm_client_init+0x144/0x178
Oct 02 23:13:06 mako kernel: [<9000000001ecef88>] drm_fb_helper_init+0x3c/0x54
Oct 02 23:13:06 mako kernel: [<ffff800003043ca0>] gsgpu_fbdev_init+0xa4/0xe4 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff800003039dd0>] gsgpu_device_init+0x8a8/0xa48 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000303bd64>] gsgpu_driver_load_kms+0x98/0xdc [gsgpu]
Oct 02 23:13:06 mako kernel: [<9000000001e95508>] drm_dev_register+0x13c/0x224
Oct 02 23:13:06 mako kernel: [<ffff8000030382a0>] gsgpu_pci_probe+0xb8/0x12c [gsgpu]
Oct 02 23:13:06 mako kernel: [<9000000001d71ec0>] local_pci_probe+0x48/0xa0
Oct 02 23:13:06 mako kernel: [<90000000018b96ac>] work_for_cpu_fn+0x1c/0x30
Oct 02 23:13:06 mako kernel: [<90000000018bb300>] process_one_work+0x180/0x260
Oct 02 23:13:06 mako kernel: [<90000000018bb750>] worker_thread+0x370/0x438
Oct 02 23:13:06 mako kernel: [<90000000018c53f4>] kthread+0x124/0x128
Oct 02 23:13:06 mako kernel: [<90000000018812b0>] ret_from_kernel_thread+0xc/0x9c
Oct 02 23:13:06 mako kernel: 
Oct 02 23:13:06 mako kernel: ---[ end trace 0000000000000000 ]---
Oct 02 23:13:06 mako kernel: CPU 0 Unable to handle kernel paging request at virtual address 0000000000000020, era == ffff80000304a378, ra == fff>
Oct 02 23:13:06 mako kernel: Oops[#1]:
Oct 02 23:13:06 mako kernel: CPU: 0 PID: 10 Comm: kworker/0:1 Tainted: G        W  O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb6953214>
Oct 02 23:13:06 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010>
Oct 02 23:13:06 mako kernel: Workqueue: events work_for_cpu_fn
Oct 02 23:13:06 mako kernel: pc ffff80000304a378 ra ffff80000304a364 tp 90000001001bc000 sp 90000001001bfa40
Oct 02 23:13:06 mako kernel: a0 900000010043a0e0 a1 0000000000000000 a2 9000000123d07940 a3 9000000002977680
Oct 02 23:13:06 mako kernel: a4 9000000002977678 a5 90000001001bf880 a6 0000000000000001 a7 0000000000000001
Oct 02 23:13:06 mako kernel: t0 0000000000000000 t1 9000000002398000 t2 0000000000000001 t3 0000000000000001
Oct 02 23:13:06 mako kernel: t4 0000000000000003 t5 0000000000000000 t6 07300720076e076f t7 077307750720073b
Oct 02 23:13:06 mako kernel: t8 000000000000000a u0 0000000000000000 s9 0000000000000021 s0 9000000120094600
Oct 02 23:13:06 mako kernel: s1 9000000123d07940 s2 900000010043a0e0 s3 900000010043a7e0 s4 0000000000000028
Oct 02 23:13:06 mako kernel: s5 0000000000000000 s6 9000000116d3e0b8 s7 900000010043ac80 s8 000000000000000b
Oct 02 23:13:06 mako kernel:    ra: ffff80000304a364 gsgpu_sa_bo_free+0x38/0x128 [gsgpu]
Oct 02 23:13:06 mako kernel:   ERA: ffff80000304a378 gsgpu_sa_bo_free+0x4c/0x128 [gsgpu]
Oct 02 23:13:06 mako kernel:  CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE)
Oct 02 23:13:06 mako kernel:  PRMD: 0000000c (PPLV0 +PIE +PWE)
Oct 02 23:13:06 mako kernel:  EUEN: 00000000 (-FPE -SXE -ASXE -BTE)
Oct 02 23:13:06 mako kernel:  ECFG: 00071c1d (LIE=0,2-4,10-12 VS=7)
Oct 02 23:13:06 mako kernel: ESTAT: 00010000 [PIL] (IS= ECode=1 EsubCode=0)
Oct 02 23:13:06 mako kernel:  BADV: 0000000000000020
Oct 02 23:13:06 mako kernel:  PRID: 0014c011 (Loongson-64bit, Loongson-3A5000M)
Oct 02 23:13:06 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_dev>
Oct 02 23:13:06 mako kernel: Process kworker/0:1 (pid: 10, threadinfo=000000007d169ef3, task=00000000646282bd)
Oct 02 23:13:06 mako kernel: Stack : 000000000000000c 900000010043a7e0 9000000123d07940 9000000120094400
Oct 02 23:13:06 mako kernel:         0000000000000001 ffff80000305c0a4 0000000000000008 0000000000000800
Oct 02 23:13:06 mako kernel:         9000000116d3e000 9000000100438000 ffff800002e64000 9000000120094c00
Oct 02 23:13:06 mako kernel:         0000000000000000 ffff80000304b80c 9000000123d07940 9000000120094400
Oct 02 23:13:06 mako kernel:         0000000000000001 0000000000000000 0000000000000000 dd22f8a5002a7849
Oct 02 23:13:06 mako kernel:         000000000000000b 9000000116d3e0b8 0000000000008000 9000000100438bb0
Oct 02 23:13:06 mako kernel:         ffff800002e64000 9000000120094c00 0000000000000000 9000000100438000
Oct 02 23:13:06 mako kernel:         9000000116d3e000 ffff80000304e6d4 0000000000000000 9000000120094c00
Oct 02 23:13:06 mako kernel:         900000010043ac80 0000000000004000 0000000400004000 0000000000000000
Oct 02 23:13:06 mako kernel:         0000000000000021 0000000000000001 0000000000000000 dd22f8a5002a7849
Oct 02 23:13:06 mako kernel:         ...
Oct 02 23:13:06 mako kernel: Call Trace:
Oct 02 23:13:06 mako kernel: [<ffff80000304a378>] gsgpu_sa_bo_free+0x4c/0x128 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000305c0a4>] gsgpu_job_submit+0xd4/0x134 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000304b80c>] gsgpu_vm_clear_bo.isra.0+0x15c/0x214 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000304e6d4>] gsgpu_vm_init+0x2c4/0x44c [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000303be84>] gsgpu_driver_open_kms+0xd8/0x1b4 [gsgpu]
Oct 02 23:13:06 mako kernel: [<9000000001e9f9e4>] drm_file_alloc+0x1b0/0x24c
Oct 02 23:13:06 mako kernel: [<9000000001e8d19c>] drm_client_init+0x144/0x178
Oct 02 23:13:06 mako kernel: [<9000000001ecef88>] drm_fb_helper_init+0x3c/0x54
Oct 02 23:13:06 mako kernel: [<ffff800003043ca0>] gsgpu_fbdev_init+0xa4/0xe4 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff800003039dd0>] gsgpu_device_init+0x8a8/0xa48 [gsgpu]
Oct 02 23:13:06 mako kernel: [<ffff80000303bd64>] gsgpu_driver_load_kms+0x98/0xdc [gsgpu]
Oct 02 23:13:06 mako kernel: [<9000000001e95508>] drm_dev_register+0x13c/0x224
Oct 02 23:13:06 mako kernel: [<ffff8000030382a0>] gsgpu_pci_probe+0xb8/0x12c [gsgpu]
Oct 02 23:13:06 mako kernel: [<9000000001d71ec0>] local_pci_probe+0x48/0xa0
Oct 02 23:13:06 mako kernel: [<90000000018b96ac>] work_for_cpu_fn+0x1c/0x30
Oct 02 23:13:06 mako kernel: [<90000000018bb300>] process_one_work+0x180/0x260
Oct 02 23:13:06 mako kernel: [<90000000018bb750>] worker_thread+0x370/0x438
Oct 02 23:13:06 mako kernel: [<90000000018c53f4>] kthread+0x124/0x128
Oct 02 23:13:06 mako kernel: [<90000000018812b0>] ret_from_kernel_thread+0xc/0x9c
Oct 02 23:13:06 mako kernel: 
Oct 02 23:13:06 mako kernel: Code: 0340058c  4400a180  28c0230c <28c0818c> 40001d80  00150304  4c000181  40001080  00150304 
Oct 02 23:13:06 mako kernel: 
Oct 02 23:13:06 mako kernel: ---[ end trace 0000000000000000 ]---
Oct 02 23:13:06 mako kernel: pstore: backend (efi_pstore) writing error (-5)
Oct 02 23:13:06 mako kernel: note: kworker/0:1[10] exited with preempt_count 1
Oct 02 23:13:12 mako kernel: sysrq: Emergency Sync
Oct 02 23:13:12 mako kernel: Emergency Sync complete

autistic-chad

TSiNGKONG 我现在遇到了和你类似的问题,就是gpu初始化的最后gsgpu_submit_job后gpu没法正确返回结果,而是ring xdma0 timeout. drm 的job scheduling从v4.19到v6.6变化还是比较大的,所以可能是我对这一块的理解有点问题。

Oct 05 16:54:59 mako kernel: [drm] gsgpu kernel modesetting enabled.
Oct 05 16:54:59 mako kernel: Console: switching to colour dummy device 80x25
Oct 05 16:54:59 mako kernel: [drm] initializing kernel modesetting (LG100 0x0014:0x7A25 0x0000:0x0000 0x01).
Oct 05 16:54:59 mako kernel: [drm] Set 7A2000 device in gsgpu driver
Oct 05 16:54:59 mako kernel: [drm] register mmio base: 0x41254000
Oct 05 16:54:59 mako kernel: [drm] register mmio size: 256
Oct 05 16:54:59 mako kernel: [drm] gsgpu dc register mmio base: 0x41210000
Oct 05 16:54:59 mako kernel: [drm] gsgpu dc register mmio size: 65536
Oct 05 16:54:59 mako kernel: [drm] gsgpu dc io base: 0x8000000010010000
Oct 05 16:54:59 mako kernel: [drm] GPU Family: LG100 series LG110, Feature:0x00000000
Oct 05 16:54:59 mako kernel: [drm] Firmware Version: 1.0.0
Oct 05 16:54:59 mako kernel: [drm] aper_base 0xe0100000000 SIZE 0x40000000 bytes 
Oct 05 16:54:59 mako kernel: gsgpu 0000:00:06.0: Video RAM: 256M 0x0001000000000000 - 0x000100000FFFFFFF (256M used)
Oct 05 16:54:59 mako kernel: gsgpu 0000:00:06.0: GART: 256M 0x0000000000000000 - 0x000000000FFFFFFF
Oct 05 16:54:59 mako kernel: [drm] Detected VRAM RAM=256M, BAR=1024M
Oct 05 16:54:59 mako kernel: [drm] RAM width 32bits UNKNOWN
Oct 05 16:54:59 mako kernel: [drm] gsgpu: 256M of VRAM memory ready
Oct 05 16:54:59 mako kernel: [drm] gsgpu: 3072M of GTT memory ready.
Oct 05 16:54:59 mako kernel: [drm] GART: num cpu pages 16384, num gpu pages 16384
Oct 05 16:54:59 mako kernel: [drm] vm size is 1024 GB, 3 levels, block size is 11-bit
Oct 05 16:55:00 mako kernel: [drm] PCIE GART of 256M enabled (table at 0x000100000FFE0000).
Oct 05 16:55:00 mako kernel: [drm] ZIP META: num cpu pages 128, num gpu pages 128
Oct 05 16:55:00 mako kernel: [drm] Got VBIOS from mapped PCI ROM!
Oct 05 16:55:00 mako kernel: [drm:dc_vbios_init [gsgpu]] *ERROR* No parser for descriptor type 7, version 0, data 0000000013f3c4c1.
Oct 05 16:55:00 mako kernel: [drm:dc_vbios_init [gsgpu]] *ERROR* No parser for descriptor type 65535, version 0, data 000000000a697c07.
Oct 05 16:55:00 mako kernel: [drm] GSGPU vbios header info:
Oct 05 16:55:00 mako kernel: [drm] ver: 2.1, links: 2, max_planes: 0, name: Loongson-VBIOS
Oct 05 16:55:00 mako kernel: [38B blob data]
Oct 05 16:55:00 mako kernel: [drm] GSGPU vbios crtc: 0, max freq: 340000Hz, width: 4096, height: 4096
Oct 05 16:55:00 mako kernel: [drm] GSGPU vbios crtc: 1, max freq: 340000Hz, width: 4096, height: 4096
Oct 05 16:55:00 mako kernel: gsgpu 0000:00:06.0: VRAM: 1024M DDR4 32bit 2400Mhz.
Oct 05 16:55:00 mako kernel: gsgpu 0000:00:06.0: GSGPU: shaders_num: 64, shaders_freq: 500MHz, freq_count: 3.
Oct 05 16:55:00 mako kernel: [drm] No ext encoder chip 0x2.
Oct 05 16:55:00 mako kernel: [drm] Encoder Parse: #0x02-Unknown type:tmds hotplug:polling.
Oct 05 16:55:00 mako kernel: [drm] Encoder Parse: config_type:timing, edid_method:i2c.
Oct 05 16:55:00 mako kernel: [drm] No ext encoder chip 0x2.
Oct 05 16:55:00 mako kernel: [drm] Encoder Parse: #0x02-Unknown type:tmds hotplug:connected.
Oct 05 16:55:00 mako kernel: [drm] Encoder Parse: config_type:timing, edid_method:i2c.
Oct 05 16:55:00 mako kernel: [drm] GSGPU Display Core initialized with v1.0!
Oct 05 16:55:00 mako kernel: [drm] GSGPU DC construct links:2
Oct 05 16:55:00 mako kernel: [drm] PCIE ZIP META of 2M enabled (table at 0x000100000FC00000).
Oct 05 16:55:00 mako kernel: [drm] GSGPU DC irq init sources number:9
Oct 05 16:55:00 mako kernel: [drm] GSGPU DC init gpio 0 addr 0x50 finish
Oct 05 16:55:00 mako kernel: [drm] GSGPU DC init gpio 1 addr 0x50 finish
Oct 05 16:55:00 mako kernel: [drm] pwm: id=3, period=1000000ns, polarity=1.
Oct 05 16:55:00 mako kernel: [drm:gsgpu_backlight_register [gsgpu]] *ERROR* Failed to get the pwm chip
Oct 05 16:55:00 mako kernel: [drm] GSGPU Display Crtcs
Oct 05 16:55:00 mako kernel: [drm] Crtc 0: name:crtc-0
Oct 05 16:55:00 mako kernel: [drm] Crtc 1: name:crtc-1
Oct 05 16:55:00 mako kernel: [drm] GSGPU Display Connectors
Oct 05 16:55:00 mako kernel: [drm] Connector 0: name:HDMI-A-1
Oct 05 16:55:00 mako kernel: [drm] Connector 1: name:eDP-1
Oct 05 16:55:00 mako kernel: [drm] GSGPU Display Encoders
Oct 05 16:55:00 mako kernel: [drm] Encoder 0: name:TMDS-43
Oct 05 16:55:00 mako kernel: [drm] Encoder 1: name:TMDS-45
Oct 05 16:55:00 mako kernel: [drm] Config crtc number:2 meta addr 0x100000fa00000
Oct 05 16:55:11 mako kernel: [drm:gsgpu_job_timedout [gsgpu]] *ERROR* ring xdma0 timeout, signaled seq=0, emitted seq=2
Oct 05 16:55:11 mako kernel: gsgpu 0000:00:06.0: GPU reset begin!
Oct 05 16:55:11 mako kernel: ------------[ cut here ]------------
Oct 05 16:55:11 mako kernel: WARNING: CPU: 2 PID: 341 at kernel/kthread.c:659 kthread_park+0x68/0xb0
Oct 05 16:55:11 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm cmac algif_hash ecb algif_skcipher af_alg bnep nls_cp936 vfat fat btusb btrtl btbcm btmtk btintel snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mt7921e mt7921_common mt792x_lib mt76_connac_lib snd_hda_codec_hdmi mt76 mac80211 acpi_ipmi ipmi_si libarc4 ipmi_devintf cfg80211 snd_hda_intel bluetooth snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer ecdh_generic snd rfkill r8169 soundcore ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage usbhid nvme atkbd vivaldi_fmap serio_raw nvme_core xhci_pci xhci_pci_renesas nvme_common
Oct 05 16:55:11 mako kernel: CPU: 2 PID: 341 Comm: kworker/2:2 Tainted: G           O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb69532149d33024a96bcb14f20892cde3
Oct 05 16:55:11 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Oct 05 16:55:11 mako kernel: Workqueue: events drm_sched_job_timedout [gpu_sched]
Oct 05 16:55:11 mako kernel: pc 90000000020e3d90 ra ffff800002c90a34 tp 900000010deb8000 sp 900000010debbc60
Oct 05 16:55:11 mako kernel: a0 90000001126d3e40 a1 900000010f347800 a2 900000010deb8000 a3 9000000002bb1be4
Oct 05 16:55:11 mako kernel: a4 9000000121bebd90 a5 9000000002d12598 a6 0000000000000001 a7 0000000000000001
Oct 05 16:55:11 mako kernel: t0 0000000000000001 t1 0000000000000001 t2 0000000000000000 t3 00000028397f3d1e
Oct 05 16:55:11 mako kernel: t4 0000000000000008 t5 0000000000000000 t6 0000000000000001 t7 900000010ddd5fc0
Oct 05 16:55:11 mako kernel: t8 0000000000000000 u0 0000000000000000 s9 900000010f5c20d8 s0 90000001126d3e40
Oct 05 16:55:11 mako kernel: s1 900000010363ea00 s2 900000010f5c27e0 s3 900000010f5c2768 s4 900000010f347800
Oct 05 16:55:11 mako kernel: s5 900000010f5c2988 s6 90000001021ee880 s7 0000000000000000 s8 00000000000035b8
Oct 05 16:55:11 mako kernel:    ra: ffff800002c90a34 drm_sched_stop+0x44/0x1ac [gpu_sched]
Oct 05 16:55:11 mako kernel:   ERA: 90000000020e3d90 kthread_park+0x68/0xb0
Oct 05 16:55:11 mako kernel:  CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE)
Oct 05 16:55:11 mako kernel:  PRMD: 0000000c (PPLV0 +PIE +PWE)
Oct 05 16:55:11 mako kernel:  EUEN: 00000000 (-FPE -SXE -ASXE -BTE)
Oct 05 16:55:11 mako kernel:  ECFG: 00071c1c (LIE=2-4,10-12 VS=7)
Oct 05 16:55:11 mako kernel: ESTAT: 000c0000 [BRK] (IS= ECode=12 EsubCode=0)
Oct 05 16:55:11 mako kernel:  PRID: 0014c011 (Loongson-64bit, Loongson-3A5000M)
Oct 05 16:55:11 mako kernel: CPU: 2 PID: 341 Comm: kworker/2:2 Tainted: G           O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb69532149d33024a96bcb14f20892cde3
Oct 05 16:55:11 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Oct 05 16:55:11 mako kernel: Workqueue: events drm_sched_job_timedout [gpu_sched]
Oct 05 16:55:11 mako kernel: Stack : 0000000000000155 0000000000000000 90000000020a350c 900000010deb8000
Oct 05 16:55:11 mako kernel:         900000010debb8d0 900000010debb8d8 0000000000000000 900000010debba18
Oct 05 16:55:11 mako kernel:         900000010debba10 900000010debba10 900000010debb7b0 0000000000000001
Oct 05 16:55:11 mako kernel:         0000000000000001 900000010debb8d8 f2a128414da7ddbc 900000010017c440
Oct 05 16:55:11 mako kernel:         0000000000000001 0000000000000003 0000000000000000 076807630773075f
Oct 05 16:55:11 mako kernel:         076a075f07640765 0000000000000155 0000000006304000 900000010f5c20d8
Oct 05 16:55:11 mako kernel:         0000000000000000 0000000000000000 9000000002f47088 90000000030a9000
Oct 05 16:55:11 mako kernel:         0000000000000000 900000010f5c2988 90000001021ee880 0000000000000000
Oct 05 16:55:11 mako kernel:         00000000000035b8 0000000000000000 90000000020a3534 0000555592f154b8
Oct 05 16:55:11 mako kernel:         00000000000002b0 000000000000000c 0000000000000000 0000000000071c1c
Oct 05 16:55:11 mako kernel:         ...
Oct 05 16:55:11 mako kernel: Call Trace:
Oct 05 16:55:11 mako kernel: [<90000000020a3534>] show_stack+0x6c/0x180
Oct 05 16:55:11 mako kernel: [<9000000002ba99a0>] dump_stack_lvl+0x60/0x88
Oct 05 16:55:11 mako kernel: [<9000000002b99774>] __warn+0x84/0xc8
Oct 05 16:55:11 mako kernel: [<9000000002b6d794>] report_bug+0x11c/0x1f4
Oct 05 16:55:11 mako kernel: [<9000000002baa010>] do_bp+0x1c0/0x344
Oct 05 16:55:11 mako kernel: [<900000010025192c>] 0x900000010025192c
Oct 05 16:55:11 mako kernel: [<90000000020e3d90>] kthread_park+0x68/0xb0
Oct 05 16:55:11 mako kernel: [<ffff800002c90a34>] drm_sched_stop+0x44/0x1ac [gpu_sched]
Oct 05 16:55:11 mako kernel: [<ffff800002d766f4>] gsgpu_device_gpu_recover+0x124/0x760 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d97824>] gsgpu_job_timedout+0x44/0x5c [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002c90c14>] drm_sched_job_timedout+0x78/0x130 [gpu_sched]
Oct 05 16:55:11 mako kernel: [<90000000020db300>] process_one_work+0x180/0x260
Oct 05 16:55:11 mako kernel: [<90000000020db750>] worker_thread+0x370/0x438
Oct 05 16:55:11 mako kernel: [<90000000020e53f4>] kthread+0x124/0x128
Oct 05 16:55:11 mako kernel: [<90000000020a12b0>] ret_from_kernel_thread+0xc/0x9c
Oct 05 16:55:11 mako kernel: 
Oct 05 16:55:11 mako kernel: ---[ end trace 0000000000000000 ]---
Oct 05 16:55:11 mako kernel: gsgpu 0000:00:06.0: GPU reset succeeded, trying to resume
Oct 05 16:55:11 mako kernel: [drm] PCIE GART of 256M enabled (table at 0x000100000FFE0000).
Oct 05 16:55:11 mako kernel: [drm:gsgpu_device_gpu_recover [gsgpu]] *ERROR* VRAM is lost!
Oct 05 16:55:11 mako kernel: BUG: scheduling while atomic: kworker/2:2/341/0x00000002
Oct 05 16:55:11 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm cmac algif_hash ecb algif_skcipher af_alg bnep nls_cp936 vfat fat btusb btrtl btbcm btmtk btintel snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mt7921e mt7921_common mt792x_lib mt76_connac_lib snd_hda_codec_hdmi mt76 mac80211 acpi_ipmi ipmi_si libarc4 ipmi_devintf cfg80211 snd_hda_intel bluetooth snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer ecdh_generic snd rfkill r8169 soundcore ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage usbhid nvme atkbd vivaldi_fmap serio_raw nvme_core xhci_pci xhci_pci_renesas nvme_common
Oct 05 16:55:11 mako kernel: CPU: 2 PID: 341 Comm: kworker/2:2 Tainted: G        W  O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb69532149d33024a96bcb14f20892cde3
Oct 05 16:55:11 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Oct 05 16:55:11 mako kernel: Workqueue: events drm_sched_job_timedout [gpu_sched]
Oct 05 16:55:11 mako kernel: Stack : 0000000000000155 0000000000000000 90000000020a350c 900000010deb8000
Oct 05 16:55:11 mako kernel:         900000010debb920 900000010debb928 0000000000000000 900000010debba68
Oct 05 16:55:11 mako kernel:         900000010debba60 900000010debba60 900000010debb800 0000000000000001
Oct 05 16:55:11 mako kernel:         0000000000000001 900000010debb928 f2a128414da7ddbc 900000010017c440
Oct 05 16:55:11 mako kernel:         0000000000000001 0000000000000004 0000000000000000 076807630773075f
Oct 05 16:55:11 mako kernel:         076a075f07640765 0000000000000155 0000000006304000 900000010debbb90
Oct 05 16:55:11 mako kernel:         0000000000000000 0000000000000000 9000000002f47088 90000000030a9000
Oct 05 16:55:11 mako kernel:         9000000002bb1be4 90000000030a9000 0000000000000001 0000000000000000
Oct 05 16:55:11 mako kernel:         900000010ddd5fc0 0000000000000000 90000000020a3534 0000555592f154b8
Oct 05 16:55:11 mako kernel:         00000000000002b0 000000000000000c 0000000000000000 0000000000071c1c
Oct 05 16:55:11 mako kernel:         ...
Oct 05 16:55:11 mako kernel: Call Trace:
Oct 05 16:55:11 mako kernel: [<90000000020a3534>] show_stack+0x6c/0x180
Oct 05 16:55:11 mako kernel: [<9000000002ba99a0>] dump_stack_lvl+0x60/0x88
Oct 05 16:55:11 mako kernel: [<90000000020ec6d8>] __schedule_bug+0x48/0x60
Oct 05 16:55:11 mako kernel: [<9000000002bb1298>] __schedule+0x90/0x978
Oct 05 16:55:11 mako kernel: [<9000000002bb1be4>] schedule+0x64/0xc4
Oct 05 16:55:11 mako kernel: [<9000000002bb7844>] schedule_timeout+0xc4/0x10c
Oct 05 16:55:11 mako kernel: [<9000000002152df4>] msleep+0x28/0x3c
Oct 05 16:55:11 mako kernel: [<ffff800002d74d9c>] gsgpu_cmd_exec+0x194/0x214 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d7e290>] gsgpu_gart_bind+0xb4/0xd4 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d7ae24>] gsgpu_ttm_gart_bind+0x2c/0x60 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d8e190>] gsgpu_gtt_mgr_recover+0x4c/0x80 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d76938>] gsgpu_device_gpu_recover+0x368/0x760 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d97824>] gsgpu_job_timedout+0x44/0x5c [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002c90c14>] drm_sched_job_timedout+0x78/0x130 [gpu_sched]
Oct 05 16:55:11 mako kernel: [<90000000020db300>] process_one_work+0x180/0x260
Oct 05 16:55:11 mako kernel: [<90000000020db750>] worker_thread+0x370/0x438
Oct 05 16:55:11 mako kernel: [<90000000020e53f4>] kthread+0x124/0x128
Oct 05 16:55:11 mako kernel: [<90000000020a12b0>] ret_from_kernel_thread+0xc/0x9c
Oct 05 16:55:11 mako kernel: 
Oct 05 16:55:11 mako kernel: BUG: scheduling while atomic: kworker/2:2/341/0x00000000
Oct 05 16:55:11 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm cmac algif_hash ecb algif_skcipher af_alg bnep nls_cp936 vfat fat btusb btrtl btbcm btmtk btintel snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mt7921e mt7921_common mt792x_lib mt76_connac_lib snd_hda_codec_hdmi mt76 mac80211 acpi_ipmi ipmi_si libarc4 ipmi_devintf cfg80211 snd_hda_intel bluetooth snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer ecdh_generic snd rfkill r8169 soundcore ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage usbhid nvme atkbd vivaldi_fmap serio_raw nvme_core xhci_pci xhci_pci_renesas nvme_common
Oct 05 16:55:11 mako kernel: CPU: 2 PID: 341 Comm: kworker/2:2 Tainted: G        W  O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb69532149d33024a96bcb14f20892cde3
Oct 05 16:55:11 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Oct 05 16:55:11 mako kernel: Workqueue: events drm_sched_job_timedout [gpu_sched]
Oct 05 16:55:11 mako kernel: Stack : 0000000000000155 0000000000000000 90000000020a350c 900000010deb8000
Oct 05 16:55:11 mako kernel:         900000010debb930 900000010debb938 0000000000000000 900000010debba78
Oct 05 16:55:11 mako kernel:         900000010debba70 900000010debba70 900000010debb810 0000000000000001
Oct 05 16:55:11 mako kernel:         0000000000000001 900000010debb938 f2a128414da7ddbc 900000010017c440
Oct 05 16:55:11 mako kernel:         0000000000000001 0000000000000002 0000000000000000 076807630773075f
Oct 05 16:55:11 mako kernel:         076a075f07640765 0000000000000155 0000000006304000 900000010debbba0
Oct 05 16:55:11 mako kernel:         0000000000000000 0000000000000000 9000000002f47088 90000000030a9000
Oct 05 16:55:11 mako kernel:         9000000002bb1be4 90000000030a9000 0000000000000001 0000000000000000
Oct 05 16:55:11 mako kernel:         900000010ddd5fc0 0000000000000000 90000000020a3534 0000555592f154b8
Oct 05 16:55:11 mako kernel:         00000000000002b0 000000000000000c 0000000000000000 0000000000071c1c
Oct 05 16:55:11 mako kernel:         ...
Oct 05 16:55:11 mako kernel: Call Trace:
Oct 05 16:55:11 mako kernel: [<90000000020a3534>] show_stack+0x6c/0x180
Oct 05 16:55:11 mako kernel: [<9000000002ba99a0>] dump_stack_lvl+0x60/0x88
Oct 05 16:55:11 mako kernel: [<90000000020ec6d8>] __schedule_bug+0x48/0x60
Oct 05 16:55:11 mako kernel: [<9000000002bb1298>] __schedule+0x90/0x978
Oct 05 16:55:11 mako kernel: [<9000000002bb1be4>] schedule+0x64/0xc4
Oct 05 16:55:11 mako kernel: [<9000000002bb7844>] schedule_timeout+0xc4/0x10c
Oct 05 16:55:11 mako kernel: [<9000000002152df4>] msleep+0x28/0x3c
Oct 05 16:55:11 mako kernel: [<ffff800002d74d9c>] gsgpu_cmd_exec+0x194/0x214 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d92d0c>] zip_meta_enable+0x70/0xf0 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d747a8>] gsgpu_device_ip_resume_phase2+0x70/0xe0 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d76940>] gsgpu_device_gpu_recover+0x370/0x760 [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002d97824>] gsgpu_job_timedout+0x44/0x5c [gsgpu]
Oct 05 16:55:11 mako kernel: [<ffff800002c90c14>] drm_sched_job_timedout+0x78/0x130 [gpu_sched]
Oct 05 16:55:11 mako kernel: [<90000000020db300>] process_one_work+0x180/0x260
Oct 05 16:55:11 mako kernel: [<90000000020db750>] worker_thread+0x370/0x438
Oct 05 16:55:11 mako kernel: [<90000000020e53f4>] kthread+0x124/0x128
Oct 05 16:55:11 mako kernel: [<90000000020a12b0>] ret_from_kernel_thread+0xc/0x9c
Oct 05 16:55:11 mako kernel: 
Oct 05 16:55:11 mako kernel: [drm] PCIE ZIP META of 2M enabled (table at 0x000100000FC00000).
Oct 05 16:55:11 mako kernel: [drm] DC META of 2M enabled (table at 0x000100000FA00000).
Oct 05 16:55:12 mako kernel: BUG: scheduling while atomic: kworker/2:2/341/0x00000002
Oct 05 16:55:12 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm cmac algif_hash ecb algif_skcipher af_alg bnep nls_cp936 vfat fat btusb btrtl btbcm btmtk btintel snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mt7921e mt7921_common mt792x_lib mt76_connac_lib snd_hda_codec_hdmi mt76 mac80211 acpi_ipmi ipmi_si libarc4 ipmi_devintf cfg80211 snd_hda_intel bluetooth snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer ecdh_generic snd rfkill r8169 soundcore ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage usbhid nvme atkbd vivaldi_fmap serio_raw nvme_core xhci_pci xhci_pci_renesas nvme_common
Oct 05 16:55:12 mako kernel: CPU: 2 PID: 341 Comm: kworker/2:2 Tainted: G        W  O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb69532149d33024a96bcb14f20892cde3
Oct 05 16:55:12 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Oct 05 16:55:12 mako kernel: Workqueue: events drm_sched_job_timedout [gpu_sched]
Oct 05 16:55:12 mako kernel: Stack : 0000000000000155 0000000000000000 90000000020a350c 900000010deb8000
Oct 05 16:55:12 mako kernel:         900000010debb910 900000010debb918 0000000000000000 900000010debba58
Oct 05 16:55:12 mako kernel:         900000010debba50 900000010debba50 900000010debb7f0 0000000000000001
Oct 05 16:55:12 mako kernel:         0000000000000001 900000010debb918 f2a128414da7ddbc 900000010017c440
Oct 05 16:55:12 mako kernel:         0000000000000001 0000000000000004 0000000000000000 076807630773075f
Oct 05 16:55:12 mako kernel:         076a075f07640765 0000000000000155 0000000006304000 900000010debbb80
Oct 05 16:55:12 mako kernel:         0000000000000000 0000000000000000 9000000002f47088 90000000030a9000
Oct 05 16:55:12 mako kernel:         9000000002bb1be4 90000000030a9000 0000000000000001 0000000000000000
Oct 05 16:55:12 mako kernel:         900000010ddd5fc0 0000000000000000 90000000020a3534 0000555592f154b8
Oct 05 16:55:12 mako kernel:         00000000000002b0 000000000000000c 0000000000000000 0000000000071c1c
Oct 05 16:55:12 mako kernel:         ...
Oct 05 16:55:12 mako kernel: Call Trace:
Oct 05 16:55:12 mako kernel: [<90000000020a3534>] show_stack+0x6c/0x180
Oct 05 16:55:12 mako kernel: [<9000000002ba99a0>] dump_stack_lvl+0x60/0x88
Oct 05 16:55:12 mako kernel: [<90000000020ec6d8>] __schedule_bug+0x48/0x60
Oct 05 16:55:12 mako kernel: [<9000000002bb1298>] __schedule+0x90/0x978
Oct 05 16:55:12 mako kernel: [<9000000002bb1be4>] schedule+0x64/0xc4
Oct 05 16:55:12 mako kernel: [<9000000002bb7844>] schedule_timeout+0xc4/0x10c
Oct 05 16:55:12 mako kernel: [<9000000002152df4>] msleep+0x28/0x3c
Oct 05 16:55:12 mako kernel: [<ffff800002d74d9c>] gsgpu_cmd_exec+0x194/0x214 [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d92458>] mmu_vm_fault_interrupt_state+0x3c/0x4c [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d9368c>] gsgpu_irq_update+0x98/0xcc [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d93740>] gsgpu_irq_gpu_reset_resume_helper+0x80/0xc8 [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d76cc4>] gsgpu_device_gpu_recover+0x6f4/0x760 [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d97824>] gsgpu_job_timedout+0x44/0x5c [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002c90c14>] drm_sched_job_timedout+0x78/0x130 [gpu_sched]
Oct 05 16:55:12 mako kernel: [<90000000020db300>] process_one_work+0x180/0x260
Oct 05 16:55:12 mako kernel: [<90000000020db750>] worker_thread+0x370/0x438
Oct 05 16:55:12 mako kernel: [<90000000020e53f4>] kthread+0x124/0x128
Oct 05 16:55:12 mako kernel: [<90000000020a12b0>] ret_from_kernel_thread+0xc/0x9c
Oct 05 16:55:12 mako kernel: 
Oct 05 16:55:12 mako kernel: BUG: scheduling while atomic: kworker/2:2/341/0x00000000
Oct 05 16:55:12 mako kernel: Modules linked in: gsgpu(O+) regmap_i2c gpu_sched drm_buddy ttm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm cmac algif_hash ecb algif_skcipher af_alg bnep nls_cp936 vfat fat btusb btrtl btbcm btmtk btintel snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mt7921e mt7921_common mt792x_lib mt76_connac_lib snd_hda_codec_hdmi mt76 mac80211 acpi_ipmi ipmi_si libarc4 ipmi_devintf cfg80211 snd_hda_intel bluetooth snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer ecdh_generic snd rfkill r8169 soundcore ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage usbhid nvme atkbd vivaldi_fmap serio_raw nvme_core xhci_pci xhci_pci_renesas nvme_common
Oct 05 16:55:12 mako kernel: CPU: 2 PID: 341 Comm: kworker/2:2 Tainted: G        W  O       6.6.0-rc2-00332-gd6efaa913c4c-dirty #2 395c5fcb69532149d33024a96bcb14f20892cde3
Oct 05 16:55:12 mako kernel: Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Oct 05 16:55:12 mako kernel: Workqueue: events drm_sched_job_timedout [gpu_sched]
Oct 05 16:55:12 mako kernel: Stack : 0000000000000155 0000000000000000 90000000020a350c 900000010deb8000
Oct 05 16:55:12 mako kernel:         900000010debb8b0 900000010debb8b8 0000000000000000 900000010debb9f8
Oct 05 16:55:12 mako kernel:         900000010debb9f0 900000010debb9f0 900000010debb790 0000000000000001
Oct 05 16:55:12 mako kernel:         0000000000000001 900000010debb8b8 f2a128414da7ddbc 900000010017c440
Oct 05 16:55:12 mako kernel:         0000000000000001 0000000000000002 0000000000000000 076807630773075f
Oct 05 16:55:12 mako kernel:         076a075f07640765 0000000000000155 0000000006304000 900000010debbb20
Oct 05 16:55:12 mako kernel:         0000000000000000 0000000000000000 9000000002f47088 90000000030a9000
Oct 05 16:55:12 mako kernel:         9000000002bb1be4 90000000030a9000 0000000000000001 0000000000000000
Oct 05 16:55:12 mako kernel:         900000010ddd5fc0 0000000000000000 90000000020a3534 0000555592f154b8
Oct 05 16:55:12 mako kernel:         00000000000002b0 000000000000000c 0000000000000000 0000000000071c1c
Oct 05 16:55:12 mako kernel:         ...
Oct 05 16:55:12 mako kernel: Call Trace:
Oct 05 16:55:12 mako kernel: [<90000000020a3534>] show_stack+0x6c/0x180
Oct 05 16:55:12 mako kernel: [<9000000002ba99a0>] dump_stack_lvl+0x60/0x88
Oct 05 16:55:12 mako kernel: [<90000000020ec6d8>] __schedule_bug+0x48/0x60
Oct 05 16:55:12 mako kernel: [<9000000002bb1298>] __schedule+0x90/0x978
Oct 05 16:55:12 mako kernel: [<9000000002bb1be4>] schedule+0x64/0xc4
Oct 05 16:55:12 mako kernel: [<9000000002bb7844>] schedule_timeout+0xc4/0x10c
Oct 05 16:55:12 mako kernel: [<9000000002728660>] dma_fence_default_wait+0x128/0x20c
Oct 05 16:55:12 mako kernel: [<ffff800002d94820>] gfx_ring_test_ib+0x158/0x274 [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d8b754>] gsgpu_ib_ring_tests+0x80/0x100 [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d76ccc>] gsgpu_device_gpu_recover+0x6fc/0x760 [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002d97824>] gsgpu_job_timedout+0x44/0x5c [gsgpu]
Oct 05 16:55:12 mako kernel: [<ffff800002c90c14>] drm_sched_job_timedout+0x78/0x130 [gpu_sched]
Oct 05 16:55:12 mako kernel: [<90000000020db300>] process_one_work+0x180/0x260
Oct 05 16:55:12 mako kernel: [<90000000020db750>] worker_thread+0x370/0x438
Oct 05 16:55:12 mako kernel: [<90000000020e53f4>] kthread+0x124/0x128
Oct 05 16:55:12 mako kernel: [<90000000020a12b0>] ret_from_kernel_thread+0xc/0x9c
Oct 05 16:55:12 mako kernel: 
Oct 05 16:55:13 mako kernel: [drm:gfx_ring_test_ib [gsgpu]] *ERROR* gsgpu: IB test timed out.
Oct 05 16:55:13 mako kernel: [drm:gsgpu_ib_ring_tests [gsgpu]] *ERROR* gsgpu: failed testing IB on GFX ring (-110).
Oct 05 16:55:13 mako kernel: gsgpu 0000:00:06.0: ib ring test failed (-110).
Oct 05 16:55:13 mako kernel: gsgpu 0000:00:06.0: GPU reset succeeded, trying to resume

xen0n

另外:由于我看过他们闭源 shader compiler 的反汇编等内容,具体驱动代码不适合我自己写,不过大家需要的话可以叫我(或者其他做过逆向的人)帮忙出些文档之类不破坏净室的事情。


autistic-chad

@xen0n @TSiNGKONG @杜比 更新一下进度,现在之前两个bug貌似都解决了,xdma0 ring timeout 这个我把dma强行设置成32位的貌似就行了,我怀疑是硬件问题(或者固件的bug),导致显卡的xdma引擎没法dma到高于32位的地址。gfx fault这个问题是由于xdma的command ring中写入了错误的buffer地址导致的,在我的代码中我直接把相关的代码替换成amdgpu中(主要是vram_mgr 改用了新的DRM Buddy Allocator,这块变化比较大),现在貌似已经调试通过了。

现在的进度是驱动大体基本已经跑通了,驱动可以加载并且初始化硬件,但是在切换到fb的时候还有问题,是由于atomic mode setting相关的问题导致的,会在切换fb的时候出现BUG(): scheduling while atomic。atomic mode setting这个我也不大懂,所有在看相关的文档。我贴个最新的dmesg log

[drm] gsgpu kernel modesetting enabled.
Console: switching to colour dummy device 80x25
[drm] gsgpu_driver_load_kms dev 9000000122bc1000 flags 0
[drm] initializing kernel modesetting (LG100 0x0014:0x7A25 0x0000:0x0000 0x01).
[drm] Set 7A2000 device in gsgpu driver
[drm] register mmio base: 0x41254000
[drm] register mmio size: 256
[drm] register mmio mapped to: 0xffff800033474000
[drm] gsgpu dc register mmio base: 0x41210000
[drm] gsgpu dc register mmio size: 65536
[drm] gsgpu dc register mmio mapped to: 0xffff800033570000
[drm] gsgpu dc io base: 0xffff800033488000
[drm] GPU Family: LG100 series LG110, Feature:0x00000000
[drm] Firmware Version: 1.0.0
[drm] aper_base 0xe0100000000 SIZE 0x40000000 bytes 
gsgpu 0000:00:06.0: Video RAM: 256M 0x0001000000000000 - 0x000100000FFFFFFF (256M used)
gsgpu 0000:00:06.0: GART: 256M 0x0000000000000000 - 0x000000000FFFFFFF
[drm] Detected VRAM RAM=256M, BAR=1024M
[drm] RAM width 32bits UNKNOWN
[drm] gsgpu: 256M of VRAM memory ready
[drm] gsgpu: 3072M of GTT memory ready.
[drm] GART: num cpu pages 16384, num gpu pages 16384
[drm] gsgpu_bo_create: size 0x20000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x20000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000011426a858 from old mem 0x0000000000000000 to new mem 0x9000000102f109c0 (start 0x3ff8 size 0x20000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3ff8 size 0x20000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xffe0000 size 0x20000 remaining 0x20000
[drm] vm size is 1024 GB, 3 levels, block size is 11-bit
[drm] gsgpu_bo_create_reserved bp size 0x4000 align 0x4000 domain 4 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000011426ac58 from old mem 0x0000000000000000 to new mem 0x9000000102f12940 (start 0x3ff7 size 0x4000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3ff7 size 0x4000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xffdc000 size 0x4000 remaining 0x4000
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3ff7, size = 0x4000
[drm]     allocated gpu_addr 0x100000ffdc000
[drm]     mapped cpu_addr 0xffff8000475dc000
[drm] PCIE GART of 256M enabled (table at 0x000100000FFE0000).
[drm] gsgpu_device_ip_init: calling gsgpu_device_wb_init
[drm] gsgpu_bo_create_reserved bp size 0x1000 align 0x4000 domain 2 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x1000 align 0x4000 domain 2 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x900000011426b058
[drm] gsgpu_gtt_mgr_new: allocated start 0x7fffffffffffffff
[drm] gsgpu_ttm_tt_create: created ttm_tt 0x9000000102f138a0 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: ttm_tt 0x9000000102f138a0 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: calling ttm_pool_alloc
[drm] gsgpu_ttm_tt_populate: ttm_pool_alloc returned 0
[drm] gsgpu_ttm_tt_populate: dma_address is now 0x00000000010c0000 (0x10c0000)
[drm] gsgpu_ttm_tt_populate: page 0 dma addr 0x00000000010c0000
[drm] gsgpu_bo_move: moving bo 0x900000011426b058 from old mem 0x0000000000000000 to new mem 0x9000000114963400 (start 0x7fffffffffffffff size 0x4000 type 1 placement 0x0 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling gsgpu_ttm_backend_bind, bo->ttm.dma_address 0x00000000010c0000
[drm] gsgpu_ttm_backend_bind ttm 0x9000000102f138a0 dma_address 0x00000000010c0000 gpu offset 0x0 (should be invalid)
[drm] gtt does not have gart addr 0x7fffffffffffffff size 0x4000 type 1 place 0x0 bus va 0x0000000000000000 pa 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x7fffffffffffffff size 0x4000 mem_type 1 placement 0
[drm] gsgpu_bo_do_create: cursor start 0x0 size 0x4000 remaining 0x4000
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x900000011426b058
[drm] gsgpu_gtt_mgr_new: inserting node in range, pages 1, fpfn 0x0 lpfn 0x4000
[drm] gsgpu_gtt_mgr_new: allocated start 0x400
[drm] gsgpu_ttm_alloc_gart allocating gpu offset 0x1000000
[drm] gsgpu_ttm_gart_bind ttm 0x9000000102f138a0 dma_address 0x00000000010c0000 gpu offset 0x1000000
[drm] gsgpu_gart_bind: offset 0x1000000, pages 1, flags 0x9
[drm] gsgpu_gart_map: offset 0x1000000 pages 1 flags 0x9
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x400 addr 0x10c0000 flags 0x9
[drm]     allocated gpu_addr 0x1000000
[drm]     mapped cpu_addr 0x90000000010c0000
[drm] ZIP META: num cpu pages 128, num gpu pages 128
[drm] gsgpu_bo_create: size 0x200000 align 0x200000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x200000 page_align 0x80
[drm] gsgpu_bo_move: moving bo 0x900000011426b458 from old mem 0x0000000000000000 to new mem 0x9000000102f13720 (start 0x3f00 size 0x200000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3f00 size 0x200000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xfc00000 size 0x200000 remaining 0x200000
[drm] Got VBIOS from mapped PCI ROM!
[drm:dc_vbios_init [gsgpu]] *ERROR* No parser for descriptor type 7, version 0, data 0x9000000122dc6466.
[drm] GSGPU vbios header info:
[drm] ver: 2.1, links: 2, max_planes: 0, name: Loongson-VBIOS
[drm] oem-vendor: \xff, oem-product: 2022
[drm] GSGPU vbios crtc: 0, max freq: 340000Hz, width: 4096, height: 4096
[drm] GSGPU vbios crtc: 1, max freq: 340000Hz, width: 4096, height: 4096
gsgpu 0000:00:06.0: VRAM: 1024M DDR4 32bit 2400Mhz.
gsgpu 0000:00:06.0: GSGPU: shaders_num: 64, shaders_freq: 500MHz, freq_count: 3.
[drm] No ext encoder chip 0x2.
[drm] Encoder Parse: #0x02-Unknown type:tmds hotplug:polling.
[drm] Encoder Parse: config_type:timing, edid_method:i2c.
[drm] No ext encoder chip 0x2.
[drm] Encoder Parse: #0x02-Unknown type:tmds hotplug:connected.
[drm] Encoder Parse: config_type:timing, edid_method:i2c.
[drm] GSGPU Display Core initialized with v1.0!
[drm] GSGPU DC construct links:2
[drm] gfx num_gfx_rings 1
[drm] adev = 9000000100428000 ring = 900000010042a768 &ring->adev = 900000010042a768 ring->adev 0000000000000000 &ring->funcs 900000010042a770 ring->funcs ffff800003579d08
[drm] adev = 9000000100428000 ring = 900000010042a768 &ring->adev = 900000010042a768 ring->adev 0000000000000000 &ring->funcs 900000010042a770 ring->funcs ffff800003579d08
[drm] gsgpu_ring_init: ring 900000010042a768 (gfx)
[drm] gsgpu_ring_init: ring gfx max_dw 256 sched_hw_submission 2 ring_size 2048 buf_mask 1ff ptr_mask 1ff
[drm] gsgpu_bo_create_reserved bp size 0x800 align 0x4000 domain 2 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x800 align 0x4000 domain 2 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x900000011426bc58
[drm] gsgpu_gtt_mgr_new: allocated start 0x7fffffffffffffff
[drm] gsgpu_ttm_tt_create: created ttm_tt 0x9000000102f135a0 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: ttm_tt 0x9000000102f135a0 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: calling ttm_pool_alloc
[drm] gsgpu_ttm_tt_populate: ttm_pool_alloc returned 0
[drm] gsgpu_ttm_tt_populate: dma_address is now 0x00000000010c8000 (0x10c8000)
[drm] gsgpu_ttm_tt_populate: page 0 dma addr 0x00000000010c8000
[drm] gsgpu_bo_move: moving bo 0x900000011426bc58 from old mem 0x0000000000000000 to new mem 0x9000000114963400 (start 0x7fffffffffffffff size 0x4000 type 1 placement 0x0 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling gsgpu_ttm_backend_bind, bo->ttm.dma_address 0x00000000010c8000
[drm] gsgpu_ttm_backend_bind ttm 0x9000000102f135a0 dma_address 0x00000000010c8000 gpu offset 0x0 (should be invalid)
[drm] gtt does not have gart addr 0x7fffffffffffffff size 0x4000 type 1 place 0x0 bus va 0x0000000000000000 pa 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x7fffffffffffffff size 0x4000 mem_type 1 placement 0
[drm] gsgpu_bo_do_create: cursor start 0x0 size 0x4000 remaining 0x4000
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x900000011426bc58
[drm] gsgpu_gtt_mgr_new: inserting node in range, pages 1, fpfn 0x0 lpfn 0x4000
[drm] gsgpu_gtt_mgr_new: allocated start 0x401
[drm] gsgpu_ttm_alloc_gart allocating gpu offset 0x1004000
[drm] gsgpu_ttm_gart_bind ttm 0x9000000102f135a0 dma_address 0x00000000010c8000 gpu offset 0x1004000
[drm] gsgpu_gart_bind: offset 0x1004000, pages 1, flags 0x9
[drm] gsgpu_gart_map: offset 0x1004000 pages 1 flags 0x9
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x401 addr 0x10c8000 flags 0x9
[drm]     allocated gpu_addr 0x1004000
[drm]     mapped cpu_addr 0x90000000010c8000
[drm] xdma num_instance 1
[drm] adev = 9000000100428000 ring = 900000010042ac08 &ring->adev = 900000010042ac08 ring->adev 0000000000000000 &ring->funcs 900000010042ac10 ring->funcs ffff800003579ef0
[drm] gsgpu_ring_init: ring 900000010042ac08 (xdma0)
[drm] gsgpu_ring_init: ring xdma0 max_dw 256 sched_hw_submission 2 ring_size 2048 buf_mask 1ff ptr_mask 1ff
[drm] gsgpu_bo_create_reserved bp size 0x800 align 0x4000 domain 2 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x800 align 0x4000 domain 2 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x9000000101657058
[drm] gsgpu_gtt_mgr_new: allocated start 0x7fffffffffffffff
[drm] gsgpu_ttm_tt_create: created ttm_tt 0x9000000102f11800 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: ttm_tt 0x9000000102f11800 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: calling ttm_pool_alloc
[drm] gsgpu_ttm_tt_populate: ttm_pool_alloc returned 0
[drm] gsgpu_ttm_tt_populate: dma_address is now 0x00000000010cc000 (0x10cc000)
[drm] gsgpu_ttm_tt_populate: page 0 dma addr 0x00000000010cc000
[drm] gsgpu_bo_move: moving bo 0x9000000101657058 from old mem 0x0000000000000000 to new mem 0x9000000114963400 (start 0x7fffffffffffffff size 0x4000 type 1 placement 0x0 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling gsgpu_ttm_backend_bind, bo->ttm.dma_address 0x00000000010cc000
[drm] gsgpu_ttm_backend_bind ttm 0x9000000102f11800 dma_address 0x00000000010cc000 gpu offset 0x0 (should be invalid)
[drm] gtt does not have gart addr 0x7fffffffffffffff size 0x4000 type 1 place 0x0 bus va 0x0000000000000000 pa 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x7fffffffffffffff size 0x4000 mem_type 1 placement 0
[drm] gsgpu_bo_do_create: cursor start 0x0 size 0x4000 remaining 0x4000
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x9000000101657058
[drm] gsgpu_gtt_mgr_new: inserting node in range, pages 1, fpfn 0x0 lpfn 0x4000
[drm] gsgpu_gtt_mgr_new: allocated start 0x402
[drm] gsgpu_ttm_alloc_gart allocating gpu offset 0x1008000
[drm] gsgpu_ttm_gart_bind ttm 0x9000000102f11800 dma_address 0x00000000010cc000 gpu offset 0x1008000
[drm] gsgpu_gart_bind: offset 0x1008000, pages 1, flags 0x9
[drm] gsgpu_gart_map: offset 0x1008000 pages 1 flags 0x9
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x402 addr 0x10cc000 flags 0x9
[drm]     allocated gpu_addr 0x1008000
[drm]     mapped cpu_addr 0x90000000010cc000
[drm] gsgpu_bo_create_reserved bp size 0x100000 align 0x4000 domain 2 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x100000 align 0x4000 domain 2 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x100000 page_align 0x1
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x90000001027d8c58
[drm] gsgpu_gtt_mgr_new: allocated start 0x7fffffffffffffff
[drm] gsgpu_ttm_tt_create: created ttm_tt 0x9000000102f11620 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: ttm_tt 0x9000000102f11620 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: calling ttm_pool_alloc
[drm] gsgpu_ttm_tt_populate: ttm_pool_alloc returned 0
[drm] gsgpu_ttm_tt_populate: dma_address is now 0x0000000001100000 (0x1100000)
[drm] gsgpu_ttm_tt_populate: page 0 dma addr 0x0000000001100000
...
[drm] gsgpu_ttm_tt_populate: page 63 dma addr 0x00000000011fc000
[drm] gsgpu_bo_move: moving bo 0x90000001027d8c58 from old mem 0x0000000000000000 to new mem 0x9000000114963400 (start 0x7fffffffffffffff size 0x100000 type 1 placement 0x0 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling gsgpu_ttm_backend_bind, bo->ttm.dma_address 0x0000000001100000
[drm] gsgpu_ttm_backend_bind ttm 0x9000000102f11620 dma_address 0x0000000001100000 gpu offset 0x0 (should be invalid)
[drm] gtt does not have gart addr 0x7fffffffffffffff size 0x100000 type 1 place 0x0 bus va 0x0000000000000000 pa 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x7fffffffffffffff size 0x100000 mem_type 1 placement 0
[drm] gsgpu_bo_do_create: cursor start 0x0 size 0x100000 remaining 0x100000
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x90000001027d8c58
[drm] gsgpu_gtt_mgr_new: inserting node in range, pages 64, fpfn 0x0 lpfn 0x4000
[drm] gsgpu_gtt_mgr_new: allocated start 0x403
[drm] gsgpu_ttm_alloc_gart allocating gpu offset 0x100c000
[drm] gsgpu_ttm_gart_bind ttm 0x9000000102f11620 dma_address 0x0000000001100000 gpu offset 0x100c000
[drm] gsgpu_gart_bind: offset 0x100c000, pages 64, flags 0x9
[drm] gsgpu_gart_map: offset 0x100c000 pages 64 flags 0x9
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x403 addr 0x1100000 flags 0x9
...
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x442 addr 0x11fc000 flags 0x9
[drm]     allocated gpu_addr 0x100c000
[drm]     mapped cpu_addr 0xffff800034544000
[drm] PCIE ZIP META of 2M enabled (table at 0x000100000FC00000).
[drm] gsgpu_ih_irq_init ring_size 0x1000 adev->irq.ih.rb_dma_addr 0x10c4000 adev->wb.gpu_addr 0x1000000
[drm] gsgpu_ih_irq_init done rb_bufsz 0x400 wptr_off 0x10c4000
[drm] GSGPU DC irq init sources number:9
[drm] GSGPU DC init gpio 0 addr 0x50 finish
[drm] GSGPU DC init gpio 1 addr 0x50 finish
[drm] pwm: id=3, period=1000000ns, polarity=1.
[drm:gsgpu_backlight_register [gsgpu]] *ERROR* Failed to get the pwm chip
[drm] GSGPU Display Crtcs
[drm] Crtc 0: name:crtc-0
[drm] Crtc 1: name:crtc-1
[drm] GSGPU Display Connectors
[drm] Connector 0: name:HDMI-A-1
[drm] Connector 1: name:eDP-1
[drm] GSGPU Display Encoders
[drm] Encoder 0: name:TMDS-43
[drm] Encoder 1: name:TMDS-45
[drm] gsgpu_bo_create_reserved bp size 0x200000 align 0x200000 domain 4 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x200000 align 0x200000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x200000 page_align 0x80
[drm] gsgpu_bo_move: moving bo 0x900000010f634858 from old mem 0x0000000000000000 to new mem 0x9000000102f122e0 (start 0x3e80 size 0x200000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3e80 size 0x200000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xfa00000 size 0x200000 remaining 0x200000
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3e80, size = 0x200000
[drm]     allocated gpu_addr 0x100000fa00000
[drm]     mapped cpu_addr 0xffff800047000000
[drm] Config crtc number:2 meta addr 0x100000fa00000
[drm] xdma_gfx_resume: ring 0x900000010042ac08 (xdma0) gpu_addr 0x1008000 cpu_addr 0x90000000010cc000 ptr_mask 0x1ff max_dw 0x100 count_dw 0x0
[drm] setting buffer func status for xdma 0
[drm] xdma_gfx_resume: calling xdma_ring_test_ring for ring xdma0
[drm] xdma_ring_test_ring: got wb index 64 gpu_addr 0x1000100 cpu_addr 0x90000000010c0100
[drm] gsgpu_ring_write ring xdma0 dw[0]:00038181 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[1]:01000100 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[2]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[3]:deadbeef ptr_mask 1ff
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0xc
[drm] gsgpu_ring_write ring xdma0 dw[4]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x0
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000010, ring->wptr_old = 0000000000000000, old wptr from hw = 0000000000000000, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x0
[drm] gsgpu_ring_commit: wptr set to 10 wptr_old = 0 get_wptr = 10 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x10
[drm] leaving gsgpu_ring_commit: wptr = 10 wptr_old = 0 get_wptr = 10 get_rptr = 0
[drm] ring xdma0 test on 1 succeeded in 0 usecs
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x10
[drm] xdma_gfx_resume: after xdma_ring_test_ring, rptr = 0x0 xdma0
[drm] xdma_gfx_resume: calling xdma_ring_test_ib for ring xdma0
[drm] xdma_ring_test_ib enter
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000010 wptr_old = 0000000000000000
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000010 wptr_old = 0000000000000010
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000010 wptr_old = 0000000000000010
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000010 wptr_old = 0000000000000010
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[10]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[11]:0100c000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[12]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[13]:00000004 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000014 wptr_old = 0000000000000010
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000014 wptr_old = 0000000000000010
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[14]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[15]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[16]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[17]:00000001 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000018 wptr_old = 0000000000000010
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000018 wptr_old = 0000000000000010
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[18]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[1f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x10
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000020, ring->wptr_old = 0000000000000010, old wptr from hw = 0000000000000010, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x10
[drm] gsgpu_ring_commit: wptr set to 20 wptr_old = 10 get_wptr = 20 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x10
[drm] leaving gsgpu_ring_commit: wptr = 20 wptr_old = 10 get_wptr = 20 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
[drm] xdma0 ib test on ring 1 succeeded
[drm] xdma_ring_test_ib exit ret = 0
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x20
[drm] xdma_gfx_resume: after xdma_ring_test_ib, rptr = 0x0 xdma0
[drm] xdma_gfx_resume: calling xdma_ring_test_xdma for ring xdma0
[drm] xdma_set_pte_pde_test enter
[drm] gsgpu_bo_create_reserved bp size 0x4000 align 0x4000 domain 4 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000010f637858 from old mem 0x0000000000000000 to new mem 0x9000000102f114a0 (start 0x3ff6 size 0x4000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3ff6 size 0x4000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xffd8000 size 0x4000 remaining 0x4000
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3ff6, size = 0x4000
[drm]     allocated gpu_addr 0x100000ffd8000
[drm]     mapped cpu_addr 0xffff8000475d8000
[drm] xdma_vm_set_pte_pde enter
[drm] xdma_vm_set_pte_pde exit
[drm] xdma_ring_pad_ib pad_count = 7
[drm] xdma_ring_pad_ib exit
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000020 wptr_old = 0000000000000010
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000020 wptr_old = 0000000000000020
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000020 wptr_old = 0000000000000020
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000020 wptr_old = 0000000000000020
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[20]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[21]:0100c000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[22]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[23]:00000010 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000024 wptr_old = 0000000000000020
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000024 wptr_old = 0000000000000020
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[24]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[25]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[26]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[27]:00000002 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000028 wptr_old = 0000000000000020
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000028 wptr_old = 0000000000000020
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[28]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[2f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x20
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000030, ring->wptr_old = 0000000000000020, old wptr from hw = 0000000000000020, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x20
[drm] gsgpu_ring_commit: wptr set to 30 wptr_old = 20 get_wptr = 30 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x20
[drm] leaving gsgpu_ring_commit: wptr = 30 wptr_old = 20 get_wptr = 30 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
[drm] xdma_set_pte_pde_test exit ret = 10000
[drm] xdma_copy_pte_test enter
[drm] gsgpu_bo_create_reserved bp size 0x4000 align 0x4000 domain 2 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 2 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x900000010f637858
[drm] gsgpu_gtt_mgr_new: allocated start 0x7fffffffffffffff
[drm] gsgpu_ttm_tt_create: created ttm_tt 0x9000000102f114a0 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: ttm_tt 0x9000000102f114a0 dma_address 0x0000000000000000
[drm] gsgpu_ttm_tt_populate: calling ttm_pool_alloc
[drm] gsgpu_ttm_tt_populate: ttm_pool_alloc returned 0
[drm] gsgpu_ttm_tt_populate: dma_address is now 0x00000000010d0000 (0x10d0000)
[drm] gsgpu_ttm_tt_populate: page 0 dma addr 0x00000000010d0000
[drm] gsgpu_bo_move: moving bo 0x900000010f637858 from old mem 0x0000000000000000 to new mem 0x9000000114963f00 (start 0x7fffffffffffffff size 0x4000 type 1 placement 0x0 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling gsgpu_ttm_backend_bind, bo->ttm.dma_address 0x00000000010d0000
[drm] gsgpu_ttm_backend_bind ttm 0x9000000102f114a0 dma_address 0x00000000010d0000 gpu offset 0x0 (should be invalid)
[drm] gtt does not have gart addr 0x7fffffffffffffff size 0x4000 type 1 place 0x0 bus va 0x0000000000000000 pa 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x7fffffffffffffff size 0x4000 mem_type 1 placement 0
[drm] gsgpu_bo_do_create: cursor start 0x0 size 0x4000 remaining 0x4000
[drm] gsgpu_gtt_mgr_new: allocating tbo 0x900000010f637858
[drm] gsgpu_gtt_mgr_new: inserting node in range, pages 1, fpfn 0x0 lpfn 0x4000
[drm] gsgpu_gtt_mgr_new: allocated start 0x443
[drm] gsgpu_ttm_alloc_gart allocating gpu offset 0x110c000
[drm] gsgpu_ttm_gart_bind ttm 0x9000000102f114a0 dma_address 0x00000000010d0000 gpu offset 0x110c000
[drm] gsgpu_gart_bind: offset 0x110c000, pages 1, flags 0x9
[drm] gsgpu_gart_map: offset 0x110c000 pages 1 flags 0x9
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x443 addr 0x10d0000 flags 0x9
[drm]     allocated gpu_addr 0x110c000
[drm]     mapped cpu_addr 0x90000000010d0000
[drm] xdma_copy_pte_test : set vram success through pcie
[drm] gsgpu_bo_create_reserved bp size 0x4000 align 0x4000 domain 4 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000010f636c58 from old mem 0x0000000000000000 to new mem 0x9000000102f117a0 (start 0x3ff6 size 0x4000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3ff6 size 0x4000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xffd8000 size 0x4000 remaining 0x4000
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3ff6, size = 0x4000
[drm]     allocated gpu_addr 0x100000ffd8000
[drm]     mapped cpu_addr 0xffff8000475d8000
[drm] xdma_copy_pte_test : set vram success through pcie
[drm] xdma_vm_copy_pte enter
[drm] xdma_vm_copy_pte exit
[drm] xdma_ring_pad_ib pad_count = 7
[drm] xdma_ring_pad_ib exit
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000030 wptr_old = 0000000000000020
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000030 wptr_old = 0000000000000030
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000030 wptr_old = 0000000000000030
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000030 wptr_old = 0000000000000030
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[30]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[31]:0100c000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[32]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[33]:00000010 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000034 wptr_old = 0000000000000030
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000034 wptr_old = 0000000000000030
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[34]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[35]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[36]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[37]:00000003 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000038 wptr_old = 0000000000000030
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000038 wptr_old = 0000000000000030
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[38]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[3f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x30
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000040, ring->wptr_old = 0000000000000030, old wptr from hw = 0000000000000030, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x30
[drm] gsgpu_ring_commit: wptr set to 40 wptr_old = 30 get_wptr = 40 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x30
[drm] leaving gsgpu_ring_commit: wptr = 40 wptr_old = 30 get_wptr = 40 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
[drm] xdma_copy_pte_test : success
[drm] gsgpu_ttm_tt_unpopulate: ttm_tt 0x9000000102f114a0 dma_address 0x00000000010d0000
[drm] gsgpu_ttm_backend_unbind ttm 0x9000000102f114a0 dma_address 0x00000000010d0000 gpu offset 0x110c000
[drm] mmu_set_pte_pde cpu_pt_addr 0xffff8000475e0000 gpu_page_idx 0x443 addr 0x17cc000 flags 0x0
[drm] xdma_copy_pte_test exit ret = 0
[drm] xdma_fill_test enter
[drm] gsgpu_bo_create_reserved bp size 0x4000 align 0x4000 domain 4 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000010f636c58 from old mem 0x0000000000000000 to new mem 0x9000000102f117a0 (start 0x3ff6 size 0x4000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3ff6 size 0x4000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xffd8000 size 0x4000 remaining 0x4000
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3ff6, size = 0x4000
[drm]     allocated gpu_addr 0x100000ffd8000
[drm]     mapped cpu_addr 0xffff8000475d8000
[drm] xdma_fill_test : set vram success through pcie
[drm] xdma_emit_fill_buffer src_data 0xaaaaaaaa dst_offset 0x100000ffd8000 byte_count 0x4000 dst_umap 0x20000 height 0x1 width 0x1000
[drm] xdma_emit_fill_buffer exit
[drm] xdma_ring_pad_ib pad_count = 7
[drm] xdma_ring_pad_ib exit
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000040 wptr_old = 0000000000000030
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000040 wptr_old = 0000000000000040
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000040 wptr_old = 0000000000000040
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000040 wptr_old = 0000000000000040
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[40]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[41]:0100c000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[42]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[43]:00000010 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000044 wptr_old = 0000000000000040
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000044 wptr_old = 0000000000000040
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[44]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[45]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[46]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[47]:00000004 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000048 wptr_old = 0000000000000040
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000048 wptr_old = 0000000000000040
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[48]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[4f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x40
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000050, ring->wptr_old = 0000000000000040, old wptr from hw = 0000000000000040, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x40
[drm] gsgpu_ring_commit: wptr set to 50 wptr_old = 40 get_wptr = 50 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x40
[drm] leaving gsgpu_ring_commit: wptr = 50 wptr_old = 40 get_wptr = 50 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
[drm] xdma_fill_test : success
[drm] xdma_fill_test exit ret = 10000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x50
[drm] xdma_gfx_resume: after xdma_ring_test_xdma, rptr = 0x0 xdma0
[drm] gsgpu_fbdev_init: func enter
[drm] gsgpu_driver_open_kms dev 9000000122bc1000 file_priv 900000010186a000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000010f637858 from old mem 0x0000000000000000 to new mem 0x9000000102f117a0 (start 0x3ff6 size 0x4000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3ff6 size 0x4000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xffd8000 size 0x4000 remaining 0x4000
[drm] xdma_vm_set_pte_pde enter
[drm] xdma_vm_set_pte_pde exit
[drm] xdma_ring_pad_ib pad_count = 7
[drm] xdma_ring_pad_ib exit
[drm] gsgpu_job_submit: job = 900000010f637c00
[drm] job_submit: pushing job
[drm] job_submit: pushing job done
[drm] gsgpu_driver_open_kms done ret = 0
[drm] gsgpu: gsgpu_job_prepare_job called, job = 900000010f637c00, entity = 9000000122bc60b8
[drm] gsgpu_job_prepare_job: ring wptr = 0000000000000050 wptr_old = 0000000000000040
[drm] leaving gsgpu_job_prepare_job: ring wptr = 0000000000000050 wptr_old = 0000000000000040
[drm] gsgpu: gsgpu_job_run called, job = 900000010f637c00
[drm] gsgpu_job_run: ring wptr = 0000000000000050 wptr_old = 0000000000000040
[drm] calling gsgpu_ib_schedule
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000050 wptr_old = 0000000000000040
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000050 wptr_old = 0000000000000050
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000050 wptr_old = 0000000000000050
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000050 wptr_old = 0000000000000050
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[50]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[51]:0100c000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[52]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[53]:00000010 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000054 wptr_old = 0000000000000050
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000054 wptr_old = 0000000000000050
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[54]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[55]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[56]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[57]:00000005 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000058 wptr_old = 0000000000000050
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000058 wptr_old = 0000000000000050
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[58]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[5f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x50
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000060, ring->wptr_old = 0000000000000050, old wptr from hw = 0000000000000050, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x50
[drm] gsgpu_ring_commit: wptr set to 60 wptr_old = 50 get_wptr = 60 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x50
[drm] leaving gsgpu_ring_commit: wptr = 60 wptr_old = 50 get_wptr = 60 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
[drm] gsgpu_ib_schedule returns 0
[drm] leaving gsgpu_job_run: ring wptr = 0000000000000060 wptr_old = 0000000000000050
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
[drm] gsgpu_job_free_cb: job = 900000010f637c00
[drm] gsgpufb_create: func enter
[drm] gsgpufb_create_pinned_object: func enter
[drm] gsgpufb_create_pinned_object: calling gsgpu_gem_object_create
[drm] gsgpu_bo_create: size 0x7ec000 align 0x4000 domain 4 preferred domain 4 flags 0x29
[drm] gsgpu_bo_do_create: size 0x7ec000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000010f634c58 from old mem 0x0000000000000000 to new mem 0x9000000102f114a0 (start 0x3c00 size 0x7ec000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3c00 size 0x7ec000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xf000000 size 0x400000 remaining 0x7ec000
[drm] gsgpu_bo_do_create: cursor start 0xf400000 size 0x200000 remaining 0x3ec000
[drm] gsgpu_bo_do_create: cursor start 0xf600000 size 0x100000 remaining 0x1ec000
[drm] gsgpu_bo_do_create: cursor start 0xf700000 size 0x80000 remaining 0xec000
[drm] gsgpu_bo_do_create: cursor start 0xf780000 size 0x40000 remaining 0x6c000
[drm] gsgpu_bo_do_create: cursor start 0xf7c0000 size 0x20000 remaining 0x2c000
[drm] gsgpu_bo_do_create: cursor start 0xf7e0000 size 0x8000 remaining 0xc000
[drm] gsgpu_bo_do_create: cursor start 0xf7e8000 size 0x4000 remaining 0x4000
[drm] gsgpu_bo_do_create: clearing VRAM
[drm] gsgpu_fill_buffer: cursor start 0xf000000 size 0x400000 remaining 0x7ec000 current num_loops 2
[drm] gsgpu_fill_buffer: cursor start 0xf400000 size 0x200000 remaining 0x3ec000 current num_loops 3
[drm] gsgpu_fill_buffer: cursor start 0xf600000 size 0x100000 remaining 0x1ec000 current num_loops 4
[drm] gsgpu_fill_buffer: cursor start 0xf700000 size 0x80000 remaining 0xec000 current num_loops 5
[drm] gsgpu_fill_buffer: cursor start 0xf780000 size 0x40000 remaining 0x6c000 current num_loops 6
[drm] gsgpu_fill_buffer: cursor start 0xf7c0000 size 0x20000 remaining 0x2c000 current num_loops 7
[drm] gsgpu_fill_buffer: cursor start 0xf7e0000 size 0x8000 remaining 0xc000 current num_loops 8
[drm] gsgpu_fill_buffer: cursor start 0xf7e8000 size 0x4000 remaining 0x4000 current num_loops 9
[drm] gsgpu_fill_buffer: cursor start 0xf000000 size 0x400000 remaining 0x7ec000, dst_addr 0x100000f000000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f000000 byte_count 0x3fffc0 dst_umap 0x20000 height 0x10 width 0xffff
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf3fffc0 size 0x40 remaining 0x3ec040, dst_addr 0x100000f3fffc0
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f3fffc0 byte_count 0x40 dst_umap 0x20000 height 0x1 width 0x10
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf400000 size 0x200000 remaining 0x3ec000, dst_addr 0x100000f400000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f400000 byte_count 0x200000 dst_umap 0x20000 height 0x10 width 0x8000
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf600000 size 0x100000 remaining 0x1ec000, dst_addr 0x100000f600000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f600000 byte_count 0x100000 dst_umap 0x20000 height 0x8 width 0x8000
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf700000 size 0x80000 remaining 0xec000, dst_addr 0x100000f700000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f700000 byte_count 0x80000 dst_umap 0x20000 height 0x4 width 0x8000
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf780000 size 0x40000 remaining 0x6c000, dst_addr 0x100000f780000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f780000 byte_count 0x40000 dst_umap 0x20000 height 0x2 width 0x8000
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf7c0000 size 0x20000 remaining 0x2c000, dst_addr 0x100000f7c0000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f7c0000 byte_count 0x20000 dst_umap 0x20000 height 0x1 width 0x8000
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf7e0000 size 0x8000 remaining 0xc000, dst_addr 0x100000f7e0000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f7e0000 byte_count 0x8000 dst_umap 0x20000 height 0x1 width 0x2000
[drm] xdma_emit_fill_buffer exit
[drm] gsgpu_fill_buffer: cursor start 0xf7e8000 size 0x4000 remaining 0x4000, dst_addr 0x100000f7e8000
[drm] xdma_emit_fill_buffer src_data 0x0 dst_offset 0x100000f7e8000 byte_count 0x4000 dst_umap 0x20000 height 0x1 width 0x1000
[drm] xdma_emit_fill_buffer exit
[drm] xdma_ring_pad_ib pad_count = 7
[drm] xdma_ring_pad_ib exit
[drm] gsgpu_job_submit: job = 900000010f637400
[drm] job_submit: pushing job
[drm] job_submit: pushing job done
[drm] gsgpufb_create_pinned_object: gsgpu_gem_object_create returned 0
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3c00, size = 0x7ec000
[drm] gsgpu: gsgpu_job_prepare_job called, job = 900000010f637400, entity = 90000001004295d0
[drm] gsgpu_job_prepare_job: ring wptr = 0000000000000060 wptr_old = 0000000000000050
[drm] leaving gsgpu_job_prepare_job: ring wptr = 0000000000000060 wptr_old = 0000000000000050
[drm] gsgpu: gsgpu_job_run called, job = 900000010f637400
[drm] gsgpu_job_run: ring wptr = 0000000000000060 wptr_old = 0000000000000050
[drm] calling gsgpu_ib_schedule
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000060 wptr_old = 0000000000000050
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000060 wptr_old = 0000000000000060
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000060 wptr_old = 0000000000000060
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000060 wptr_old = 0000000000000060
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[60]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[61]:0100c100 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[62]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[63]:00000058 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000064 wptr_old = 0000000000000060
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000064 wptr_old = 0000000000000060
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[64]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[65]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[66]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[67]:00000006 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000068 wptr_old = 0000000000000060
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000068 wptr_old = 0000000000000060
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[68]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[6f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x60
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000070, ring->wptr_old = 0000000000000060, old wptr from hw = 0000000000000060, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x60
[drm] gsgpu_ring_commit: wptr set to 70 wptr_old = 60 get_wptr = 70 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x60
[drm] leaving gsgpu_ring_commit: wptr = 70 wptr_old = 60 get_wptr = 70 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
[drm] gsgpu_ib_schedule returns 0
[drm] leaving gsgpu_job_run: ring wptr = 0000000000000070 wptr_old = 0000000000000060
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
[drm] gsgpufb_create_pinned_object: func exit success
[drm] gsgpu_job_free_cb: job = 900000010f637400
[drm] gsgpu_display_framebuffer_init: func enter
[drm] gsgpu_display_framebuffer_init: func exit
[drm] fb mappable at 0xE010F000000
[drm] vram apper at 0xE0100000000
[drm] size 8306688
[drm] fb depth is 24
[drm]    pitch is 7680
[drm] screen_base 0xFFFF800046600000
[drm] screen_size 0x7EC000
[drm] gsgpufb_open: func enter
[drm] gsgpufb_open: func exit
------------[ cut here ]------------
gsgpu 0000:00:06.0: drm_WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev))
WARNING: CPU: 0 PID: 8 at drivers/gpu/drm/drm_vblank.c:728 drm_crtc_vblank_helper_get_vblank_timestamp_internal+0x1a0/0x3ac
Modules linked in: gsgpu(O+) drm_ttm_helper regmap_i2c gpu_sched drm_buddy ttm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm nls_cp936 vfat fat mt7921e mt7921_common mt792x_lib mt76_connac_lib mt76 mac80211 snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi ledtrig_audio libarc4 snd_hda_intel snd_intel_dspcfg snd_hda_codec cfg80211 snd_hda_core snd_hwdep snd_pcm acpi_ipmi r8169 snd_timer snd rfkill ipmi_si soundcore ipmi_devintf ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 nvme atkbd nvme_core vivaldi_fmap serio_raw xhci_pci xhci_pci_renesas nvme_common
CPU: 0 PID: 8 Comm: kworker/0:0 Tainted: G           O       6.6.0-rc2-00345-ga1e45ec2bc8c-dirty #1 811eeb50fbfed5e761dbac8196f37fb0e6374bbd
Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Workqueue: events work_for_cpu_fn
pc 9000000001e2849c ra 9000000001e2849c tp 90000001001bc000 sp 90000001001bf470
a0 0000000000000046 a1 0000000000000000 a2 0000000000000000 a3 ffff0a00ffffff04
a4 90000000026a51f8 a5 90000001001bf438 a6 2d2d2d2d2d2d2d2d a7 2d2d2d2d2d2d2d2d
t0 78c2eb510322c860 t1 78c2eb510322c860 t2 0000000000000002 t3 0000000000000001
t4 40000000ffffe5bf t5 00000000ffffe5bf t6 000000000000002f t7 0000000000000063
t8 0000000000000000 u0 90000000026a51f8 s9 900000010f272880 s0 90000001001bf5a0
s1 ffff80000355ebf0 s2 90000000027cd000 s3 9000000117d2d9d8 s4 9000000122bc1000
s5 90000000027cd000 s6 9000000122bc3000 s7 90000001001bf574 s8 90000001001bf5a0
   ra: 9000000001e2849c drm_crtc_vblank_helper_get_vblank_timestamp_internal+0x1a0/0x3ac
  ERA: 9000000001e2849c drm_crtc_vblank_helper_get_vblank_timestamp_internal+0x1a0/0x3ac
 CRMD: 000000b0 (PLV0 -IE -DA +PG DACF=CC DACM=CC -WE)
 PRMD: 00000008 (PPLV0 -PIE +PWE)
 EUEN: 00000000 (-FPE -SXE -ASXE -BTE)
 ECFG: 00071c1d (LIE=0,2-4,10-12 VS=7)
ESTAT: 000c0000 [BRK] (IS= ECode=12 EsubCode=0)
 PRID: 0014c011 (Loongson-64bit, Loongson-3A5000M)
CPU: 0 PID: 8 Comm: kworker/0:0 Tainted: G           O       6.6.0-rc2-00345-ga1e45ec2bc8c-dirty #1 811eeb50fbfed5e761dbac8196f37fb0e6374bbd
Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Workqueue: events work_for_cpu_fn
Stack : 0000000000000008 0000000000000000 90000000017f350c 90000001001bc000
        90000001001bf0e0 90000001001bf0e8 0000000000000000 90000001001bf228
        90000001001bf220 90000001001bf220 90000001001bf148 fffffffffffdd790
        fffffffffffdd7c0 90000001001bf0e8 78c2eb510322c860 9000000100170c00
        0000000000000001 900000000230b970 00000000ffffe5d7 000000000000002f
        0000000000000063 90000000024ee0a3 0000000005bd4000 900000010f272880
        0000000000000000 0000000000000000 900000000266eb10 90000000027cd000
        0000000000000000 90000000027cd000 9000000122bc3000 90000001001bf574
        90000001001bf5a0 0000000000000000 90000000017f3534 00007fffef2e0000
        00000000000002b0 0000000000000008 0000000000000000 0000000000071c1d
        ...
Call Trace:
[<90000000017f3534>] show_stack+0x6c/0x180
[<90000000022ef9ac>] dump_stack_lvl+0x60/0x88
[<90000000022df774>] __warn+0x84/0xc8
[<90000000022b3794>] report_bug+0x11c/0x1f4
[<90000000022f001c>] do_bp+0x1c0/0x344
[<9000000002b8192c>] exception_handlers+0x192c/0x10000
[<9000000001e2849c>] drm_crtc_vblank_helper_get_vblank_timestamp_internal+0x1a0/0x3ac
[<9000000001e27278>] drm_crtc_get_last_vbltimestamp+0x6c/0x94
[<9000000001e27bc0>] drm_reset_vblank_timestamp+0x84/0x118
[<9000000001e28280>] drm_crtc_vblank_on+0xec/0x168
[<ffff80000355e2b0>] gsgpu_dc_atomic_commit_tail+0x2e4/0x9e8 [gsgpu]
[<9000000001e35eac>] commit_tail+0xac/0x168
[<9000000001e360ac>] drm_atomic_helper_commit+0x13c/0x16c
[<9000000001df7fb4>] drm_atomic_commit+0xa4/0xcc
[<9000000001dfe554>] drm_client_modeset_commit_atomic+0x1a4/0x274
[<9000000001dfe718>] drm_client_modeset_commit_locked+0x6c/0x17c
[<9000000001dfe854>] drm_client_modeset_commit+0x2c/0x58
[<9000000001e42808>] __drm_fb_helper_restore_fbdev_mode_unlocked+0x64/0xb8
[<9000000001e42888>] drm_fb_helper_set_par+0x2c/0x48
[<9000000001d1a754>] fbcon_init+0x424/0x554
[<9000000001dc1f40>] visual_init+0xb8/0x11c
[<9000000001dc4a3c>] do_bind_con_driver.isra.0+0x224/0x454
[<9000000001dc4e20>] do_take_over_console+0x1b4/0x208
[<9000000001d175f0>] do_fbcon_takeover+0x6c/0xc0
[<9000000001d1bbec>] fbcon_fb_registered+0xec/0x164
[<9000000001d0ec78>] register_framebuffer+0x1fc/0x24c
[<9000000001e40f50>] __drm_fb_helper_initial_config_and_unlock+0x484/0x574
[<ffff80000356b184>] gsgpu_fbdev_init+0xd0/0x100 [gsgpu]
[<ffff80000353de18>] gsgpu_device_init+0x8e0/0xac0 [gsgpu]
[<ffff800003568cf8>] gsgpu_driver_load_kms+0xac/0x100 [gsgpu]
[<9000000001e05ad0>] drm_dev_register+0x13c/0x224
[<ffff80000353c2a0>] gsgpu_pci_probe+0xb8/0x12c [gsgpu]
[<9000000001ce22c8>] local_pci_probe+0x48/0xa0
[<90000000018296ac>] work_for_cpu_fn+0x1c/0x30
[<900000000182b300>] process_one_work+0x180/0x260
[<900000000182b750>] worker_thread+0x370/0x438
[<90000000018353f4>] kthread+0x124/0x128
[<90000000017f12b0>] ret_from_kernel_thread+0xc/0x9c

---[ end trace 0000000000000000 ]---
Console: switching to colour frame buffer device 120x33
gsgpu 0000:00:06.0: [drm] fb0: gsgpudrmfb frame buffer device
[drm] gsgpu_fbdev_init: func exit
[drm] gsgpu_device_init: calling gsgpu_pm_sysfs_init
[drm] gsgpu_device_init: calling gsgpu_device_ip_late_init
BUG: scheduling while atomic: kworker/0:0/8/0x00000002
Modules linked in: gsgpu(O+) drm_ttm_helper regmap_i2c gpu_sched drm_buddy ttm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm nls_cp936 vfat fat mt7921e mt7921_common mt792x_lib mt76_connac_lib mt76 mac80211 snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi ledtrig_audio libarc4 snd_hda_intel snd_intel_dspcfg snd_hda_codec cfg80211 snd_hda_core snd_hwdep snd_pcm acpi_ipmi r8169 snd_timer snd rfkill ipmi_si soundcore ipmi_devintf ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 nvme atkbd nvme_core vivaldi_fmap serio_raw xhci_pci xhci_pci_renesas nvme_common
CPU: 0 PID: 8 Comm: kworker/0:0 Tainted: G        W  O       6.6.0-rc2-00345-ga1e45ec2bc8c-dirty #1 811eeb50fbfed5e761dbac8196f37fb0e6374bbd
Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Workqueue: events work_for_cpu_fn
Stack : 0000000000000008 0000000000000000 90000000017f350c 90000001001bc000
        90000001001bf900 90000001001bf908 0000000000000000 90000001001bfa48
        90000001001bfa40 90000001001bfa40 90000001001bf968 fffffffffffdeac8
        fffffffffffdeaf8 90000001001bf908 78c2eb510322c860 9000000100170c00
        0000000000000001 900000000230b970 00000000ffffe615 000000000000002f
        0000000000000063 90000000024ee0a3 0000000005bd4000 90000001001bfb70
        0000000000000000 0000000000000000 900000000266eb10 90000000027cd000
        90000000022f7be4 90000000027cd000 0000000000000001 0000000000000000
        9000000100167540 0000000000000000 90000000017f3534 00007fffef2e0000
        00000000000002b0 000000000000000c 0000000000000000 0000000000071c1d
        ...
Call Trace:
[<90000000017f3534>] show_stack+0x6c/0x180
[<90000000022ef9ac>] dump_stack_lvl+0x60/0x88
[<900000000183c6d8>] __schedule_bug+0x48/0x60
[<90000000022f7298>] __schedule+0x90/0x978
[<90000000022f7be4>] schedule+0x64/0xc4
[<90000000022fd844>] schedule_timeout+0xc4/0x10c
[<90000000018a2df4>] msleep+0x28/0x3c
[<ffff80000353cdac>] gsgpu_cmd_exec+0x194/0x214 [gsgpu]
[<ffff800003558a14>] mmu_vm_fault_interrupt_state+0x3c/0x4c [gsgpu]
[<ffff800003559b30>] gsgpu_irq_update+0x98/0xcc [gsgpu]
[<ffff80000353c878>] gsgpu_device_ip_late_init+0x60/0x108 [gsgpu]
[<ffff80000353df44>] gsgpu_device_init+0xa0c/0xac0 [gsgpu]
[<ffff800003568cf8>] gsgpu_driver_load_kms+0xac/0x100 [gsgpu]
[<9000000001e05ad0>] drm_dev_register+0x13c/0x224
[<ffff80000353c2a0>] gsgpu_pci_probe+0xb8/0x12c [gsgpu]
[<9000000001ce22c8>] local_pci_probe+0x48/0xa0
[<90000000018296ac>] work_for_cpu_fn+0x1c/0x30
[<900000000182b300>] process_one_work+0x180/0x260
[<900000000182b750>] worker_thread+0x370/0x438
[<90000000018353f4>] kthread+0x124/0x128
[<90000000017f12b0>] ret_from_kernel_thread+0xc/0x9c

[drm] gsgpu_device_init: calling gsgpu_device_ip_late_init
[drm] xdma_set_pte_pde_test enter
[drm] gsgpu_bo_create_reserved bp size 0x4000 align 0x4000 domain 4 *bo_ptr 0x0000000000000000
[drm] gsgpu_bo_create: size 0x4000 align 0x4000 domain 4 preferred domain 0 flags 0x21
[drm] gsgpu_bo_do_create: size 0x4000 page_align 0x1
[drm] gsgpu_bo_move: moving bo 0x900000010f636858 from old mem 0x0000000000000000 to new mem 0x9000000102f11860 (start 0x3dfb size 0x4000 type 2 placement 0x1 mapped virt 0x0000000000000000 phy 0x0000000000000000 io? 0 caching 2
[drm] gsgpu_bo_move: calling ttm_bo_move_null
[drm] gsgpu_bo_do_create: ttm_bo_init_reserved done, res->start 0x3dfb size 0x4000 mem_type 2 placement 1
[drm] gsgpu_bo_do_create: cursor start 0xf7ec000 size 0x4000 remaining 0x4000
[drm] gsgpu_ttm_alloc_gart: BO resource already allocated, start = 0x3dfb, size = 0x4000
[drm]     allocated gpu_addr 0x100000f7ec000
[drm]     mapped cpu_addr 0xffff800046dec000
[drm] xdma_vm_set_pte_pde enter
[drm] xdma_vm_set_pte_pde exit
[drm] xdma_ring_pad_ib pad_count = 7
[drm] xdma_ring_pad_ib exit
[drm] gsgpu_ib_schedule: ring xdma0 wptr = 0000000000000070 wptr_old = 0000000000000060
[drm] gsgpu_ib_schedule: after ring_alloc ring wptr = 0000000000000070 wptr_old = 0000000000000070
[drm] gsgpu_ib_schedule: after vm_flush ring wptr = 0000000000000070 wptr_old = 0000000000000070
[drm] gsgpu_ib_schedule: after emit_cntxcntl ring wptr = 0000000000000070 wptr_old = 0000000000000070
[drm] xdma_ring_emit_ib enter
[drm] gsgpu_ring_write ring xdma0 dw[70]:00030082 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[71]:0100c400 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[72]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[73]:00000010 ptr_mask 1ff
[drm] xdma_ring_emit_ib exit
[drm] gsgpu_ib_schedule: after emit_ib ring wptr = 0000000000000074 wptr_old = 0000000000000070
[drm] gsgpu_ib_schedule: after ring_emit_fence ring wptr = 0000000000000074 wptr_old = 0000000000000070
[drm] xdma_ring_emit_fence enter
[drm] gsgpu_ring_write ring xdma0 dw[74]:00030183 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[75]:010000c0 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[76]:00000000 ptr_mask 1ff
[drm] gsgpu_ring_write ring xdma0 dw[77]:00000007 ptr_mask 1ff
[drm] xdma_ring_emit_fence exit
[drm] gsgpu_ib_schedule: after fence_emit ring wptr = 0000000000000078 wptr_old = 0000000000000070
[drm] gsgpu_ib_schedule: after insert_end ring wptr = 0000000000000078 wptr_old = 0000000000000070
[drm] gsgpu_ib_schedule: calling gsgpu_ring_commit
[drm] gsgpu_ring_commit insert_nop ring = 900000010042ac08 (xdma0) count = 0x8
[drm] gsgpu_ring_write ring xdma0 dw[78]:00000080 ptr_mask 1ff
...
[drm] gsgpu_ring_write ring xdma0 dw[7f]:00000080 ptr_mask 1ff
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x70
[drm] xdma_ring_set_wptr ring = 900000010042ac08 (xdma0), new wptr = 0000000000000080, ring->wptr_old = 0000000000000070, old wptr from hw = 0000000000000070, current rptr = 0000000000000000
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x70
[drm] gsgpu_ring_commit: wptr set to 80 wptr_old = 70 get_wptr = 80 get_rptr = 0
[drm] ring->funcs->end_use is NULL
[drm] xdma_ring_get_rptr from wb 0x0 from hw reg 0x70
[drm] leaving gsgpu_ring_commit: wptr = 80 wptr_old = 70 get_wptr = 80 get_rptr = 0
[drm] gsgpu_ib_schedule: done!
BUG: scheduling while atomic: kworker/0:0/8/0x00000000
Modules linked in: gsgpu(O+) drm_ttm_helper
[drm] gsgpu_ih_process called, enabled? 1 shutdown? 0 msi_enabled? 0
 regmap_i2c gpu_sched drm_buddy ttm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm nls_cp936 vfat fat mt7921e mt7921_common mt792x_lib mt76_connac_lib mt76 mac80211 snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi ledtrig_audio libarc4 snd_hda_intel snd_intel_dspcfg snd_hda_codec cfg80211 snd_hda_core snd_hwdep snd_pcm acpi_ipmi r8169 snd_timer snd rfkill ipmi_si soundcore ipmi_devintf ipmi_msghandler pwm_ls mousedev crypto_user loop ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 nvme atkbd nvme_core vivaldi_fmap serio_raw xhci_pci xhci_pci_renesas nvme_common
CPU: 0 PID: 8 Comm: kworker/0:0 Tainted: G        W  O       6.6.0-rc2-00345-ga1e45ec2bc8c-dirty #1 811eeb50fbfed5e761dbac8196f37fb0e6374bbd
Hardware name: Loongson LM-LS3A5000-7A2000-1w-V02-nb_A2207/LM-LS3A5000-7A2000-1w-V02-nb_A2207, BIOS KL.4.1H.LM.N.010.230320.R 03/20/2023
Workqueue: events work_for_cpu_fn
Stack : 0000000000000008 0000000000000000 90000000017f350c 90000001001bc000
        90000001001bf8e0 90000001001bf8e8 0000000000000000 90000001001bfa28
        90000001001bfa20 90000001001bfa20 90000001001bf948 fffffffffffe0a10
        fffffffffffe0a40 90000001001bf8e8 78c2eb510322c860 9000000100170c00
        0000000000000001 900000000230b970 00000000ffffe674 000000000000002f
        0000000000000063 90000000024ee0a3 0000000005bd4000 90000001001bfb50
        0000000000000000 0000000000000000 900000000266eb10 90000000027cd000
        90000000022f7be4 90000000027cd000 0000000000000001 0000000000000000
        9000000100167540 0000000000000000 90000000017f3534 00007fffef2e0000
        00000000000002b0 000000000000000c 0000000000000000 0000000000071c1d
        ...
Call Trace:
[<90000000017f3534>] show_stack+0x6c/0x180
[<90000000022ef9ac>] dump_stack_lvl+0x60/0x88
[<900000000183c6d8>] __schedule_bug+0x48/0x60
[<90000000022f7298>] __schedule+0x90/0x978
[<90000000022f7be4>] schedule+0x64/0xc4
[<90000000022fd844>] schedule_timeout+0xc4/0x10c
[<9000000001e7b0a8>] dma_fence_default_wait+0x128/0x20c
[<ffff80000356c7fc>] xdma_set_pte_pde_test+0x198/0x288 [gsgpu]
[<ffff80000353df7c>] gsgpu_device_init+0xa44/0xac0 [gsgpu]
[<ffff800003568cf8>] gsgpu_driver_load_kms+0xac/0x100 [gsgpu]
[<9000000001e05ad0>] drm_dev_register+0x13c/0x224
[<ffff80000353c2a0>] gsgpu_pci_probe+0xb8/0x12c [gsgpu]
[<9000000001ce22c8>] local_pci_probe+0x48/0xa0
[<90000000018296ac>] work_for_cpu_fn+0x1c/0x30
[<900000000182b300>] process_one_work+0x180/0x260
[<900000000182b750>] worker_thread+0x370/0x438
[<90000000018353f4>] kthread+0x124/0x128
[<90000000017f12b0>] ret_from_kernel_thread+0xc/0x9c

[drm] xdma_set_pte_pde_test exit ret = 1246
[drm] gsgpu_device_init: done! no err
[drm] gsgpu_driver_load_kms done ret = 0
[drm] pwm: id=3, period=1000000ns, polarity=1.
[drm:gsgpu_backlight_register [gsgpu]] *ERROR* Failed to get the pwm chip
[drm] Initialized gsgpu 0.1.0 20230923 for 0000:00:06.0 on minor 0

杜比

autistic-chad 期待


autistic-chad

杜比 @xen0n 再更新个进度,这个scheduling while atomic的问题我还是没有解决,不过一个好消息是背光现在已经可以调节了。我在天创者NL430i上进行了测试。调节背光之前的主要问题是gsgpu_backlight模块找不到7A2000 上的PWM芯片。按理说(我个人的理解是)固件的ACPI表里应该要标明显卡的DC模块对应需要的PWM device。但是在7A2000上这是在显卡的VBIOS里面配置的,ACPI表里没写。VBIOS 里指定的是PWM的编号(0-3,我机器上是3号)。之所以龙芯公司的4.19内核中能work,是因为4.19中有一个legacy的pwm_request API,可以按照编号获取PWM device。但是这个API在最新的内核中被去掉了,在新内核里必须要ACPI能够建立显卡dc device和pwm device之间的关系,但7A2000没有对应的ACPI信息。所以我的解决方案是在platform driver下的loongson-laptop.c模块里加入了一个static PWM lookup table(并且要求gsgpu在loongson-laptop之后加载),这样就能按照编号找到对应的PWM device。这个实现可能比较ugly,因为引入了模块依赖顺序,但是是work的。


autistic-chad

杜比 @xen0n 再更新一下消息,这个scheduling while atomic的问题已经被我解决了,原因是原厂的代码在取得了自旋锁的情况下(间接)调用了schedule()。我把原厂的gsgpu_cmd_exec增加了一个non-blocking的版本,然后中断上下文必须调用这个不阻塞的版本才行。不得不说原厂驱动这代码写的实在是不敢恭维😅,中断上下文不能调度这个是个基本的操作系统常识呀,写驱动代码必须要有这个意识,啥时候能调度啥时候不能调度,啥函数会间接调度啥函数不会。原厂的gsgpu_cmd_exec函数旁边还有个注释说“XXX will take kernel hang”,可能他们在内部调试的时候也遇到过类似问题,但没有意识到这个问题的根源在于在中断上下文错误地进行了调度,这就不应该了。


autistic-chad

@xen0n 杜比 @TSiNGKONG 再更新一下进度,现在貌似内核模块已经调试通了。可以正常加载,设置mode setting,最后得到内核的framebuffer console。我把内核Debugging中能开的检查貌似都开了,整个过程貌似没有问题,外置HDMI接口也貌似正常,并且可以热插拔。背光也可以调节。

现在的问题是貌似没有user mode驱动。我在github上找到了一个xf86-video-loongson但是它依赖于gsgpu的libdrm,我找了好久还是没有在loongnix的源里找到龙芯libdrm的源码。我用X11内置的xf86-video-modesetting会出现DRM_IOCTL_SET_MASTER返回-EACCESS的问题(在root下会返回-EBUSY)。这个我还在看相关代码,是不是gsgpu驱动的问题我还不确定。完全抛弃X11, 用weston的话可以正常启动,但是屏幕上没有任何东西(可以正常切换VT)。我怀疑是和dumb buffer相关的一个bug (或者说原厂gsgpu模块并没有和wayland适配过,这一点我不清楚,还在测试)。


杜比

autistic-chad 在uos上有一个libdrm源码包,包含gsgpu相关代码,若无法获取,晚些时候我把源码包传上来。

看loongnix的gsgpu相关软件包,也提供了一个单独的glx,egl相关模块,应该是3D扩展部分,还有个loongson-compiler ,猜测是用llvm-pipe支持glsl,这两部分还没有源代码,这部分信息仅供参考


xen0n

autistic-chad 现在的问题是貌似没有user mode驱动。

大头应该是 shader ISA 的逆向,以及 shader compiler 的适配工作。先前看 loonggpu shader compiler 那个特制 LLVM 二进制中内含的字符串,似乎指令助记符与 AMDGPU 完全一致(!!!),但由于 LLVM 是宽松许可的软件,对方没有开源义务,因此可能需要像 nouveau、lima、etnaviv 乃至 Apple AGX 的同学们一样,想办法拉点儿 trace 研究了。

如无必要,不要看反汇编,这会 taint 你!


autistic-chad

杜比 UOS这个libdrm源码我一直没找到,要不您上传一下吧。


杜比

这是debian格式的源码包

libdrm-24991.zip
501kB

这是源码包里面的补丁

0001-add-gsgpu-api-for-libdrm-2499patch.zip
59kB

杜比

xserver-xorg-video-loongson_0.2.0.2-1+dde

xserver-xorg-video-loongson-0202-1dde.zip
105kB

autistic-chad

xen0n 杜比 @TSiNGKONG 再更新一下进度,现在weston通过软件渲染已经能跑了(不需要用户空间驱动,换句话说只需要主线libdrm就行)。之前那个导致weston黑屏的dumb buffer的bug我已经解决了,原因还是缓存一致性的问题。我之前错误地把通过aperture映射到CPU总线的独显VRAM的ttm cache attributes设置成了ttm_cached,所以ttm在把这些PFN映射到虚拟地址的时候会把页表项的memory access type (在龙芯平台上)设置成 Coherent Cached。这导致了CPU端软件渲染的时候,向VRAM写入的pixels独显端是看不到的。解决方法是把Coherent Cached (对应ttm_cached) 改成 Weakly-ordered Uncached (对应 ttm_write_combine) 就行了。具体我也不知道为什么,希望龙架构的专家可以教教我。我原来的理解是PCIE硬件发起DMA会有cache coherency的问题,因为cache刷新的时候有可能会覆盖之前DMA写入的数据。但是这里是CPU端发起的写入呀?而且是整个framebuffer (好几兆字节呢)都看不到,龙芯3A5000的L3缓存也没那么大吧?为什么独显硬件会看不到更新的pixels?这我就不理解了。

总之龙架构上的缓存一致性问题貌似比较诡异。之前还有AMD显卡上必须关闭write-combine的问题,这个我在GSGPU上没遇到过。显存关闭write-combine之后,GSGPU这显卡本身性能就不高,那现在不就更慢了?我现在GSGPU驱动里的VRAM的write-combine是打开的,暂时还没有发现别的问题。对于通过GTT映射到显卡MMU的系统内存,write-combine是关闭的。我看到drm子系统 439057ec3b748 这个补丁是龙芯的员工提交的。我没有看懂这个commit message,"out-of-scope of the cache coherency mechanism"具体指什么?"write-only memory regions"具体是指什么,write-only是指在CPU端写入吗?希望懂的人可以告诉我。

现在的状态是weston通过pixman renderer软件渲染可以正常运行,包括xwayland也没有问题。可以调节背光,多显示器热插拔也没有问题。这些直接加载内核驱动就可以跑,不需要特别的libdrm-gsgpu(主线libdrm就行,因为只是软件渲染,不涉及3D加速)。我拍了几个小视频大家可以看看,当然我这个是debug内核所以性能比较差,播放视频比较卡,release build应该会好一点,我还没测试。wayland用EGL+llvmpipe渲染现在还有bug,貌似还是ttm buffer object的问题,我现在还在修。

视频:加载驱动,xwayland,chromium播放视频 https://cl91.github.io/gsgpu-weston-pixman-xwayland.mp4

视频:天创者笔记本调节背光 https://cl91.github.io/gsgpu-backlight.mp4

视频:多显示器 https://cl91.github.io/gsgpu-multi-monitor.mp4


下一页 »

知识共享许可协议
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。
进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途