[Openpvrsgx-devgroup] [PATCH] Update pvrsgx 1.14.3759903 to latest kernel
Lucas Fryzek
lucas.fryzek at hazeco.xyz
Sun Nov 14 18:03:29 CET 2021
> FYI: I looked into
>
> git diff --no-index
> drivers/gpu/drm/pvrsgx/1.14.3699939/eurasia_km/services4/srvkm/env/linux/osfunc.c
> drivers/gpu/drm/pvrsgx/1.14.3759903/eurasia_km/services4/srvkm/env/linux/osfunc.c
>
> and there seems to be some different fixed for 1.14.3699939.
>
> Mainly in OSAcquirePhysPageAddr() which uses
>
> - psInfo->iNumPagesMapped = get_user_pages_remote(current->mm,
> uStartAddr, psInfo->iNumPages, FOLL_WRITE, psInfo->ppsPages, NULL,
> NULL);
>
> since LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
>
> instead of
>
> + psInfo->iNumPagesMapped = get_user_pages(
> + uStartAddr, psInfo->iNumPages, 1, psInfo->ppsPages,
> NULL);
>
> But don't ask me what the difference is and if it is the root cause
> of my kernel panic...
>
> BR,
> Nikolaus
>
Thanks for the all the additional information! I was able to trigger
the crash by compiling the driver as a module (i.e.
`CONFIG_SGX_JZ4780=m`), it appears that the default letux_defconfig
doesn't do this. I am now seeing the same behavior, and trying to debug
it. I don't believe `OSAcquirePhysPageAddr` is causing the issue here,
I tried taking the changes from `1.14.3699939` and that didn't help. I
am going to figure out which value triggers the paging exception and
work backwards from there to see whats going wrong.
Also I did have a case where it decided to boot up fine without an
error, and I saw the same results with `pvrsrvctrl` reporting that it
was happy with the KMOD and then triggering a kernel crash.
More information about the openpvrsgx-devgroup
mailing list