Hi Jiatong, Thanks for emailing me, happy to answer questions anytime. > 1. why linux-hwe-4.15.0 source code is used? If you look closely at the oops in the description, the customer I was working with was running: 4.15.0-106-generic #107~16.04.1-Ubuntu This is the Xenial (16.04) HWE kernel. I was using the linux-hwe-4.15.0 source code to make sure the debug symbols used for the debug symbol package matched exactly. In your case: 4.15.0-72-generic #81-Ubuntu you are running the 4.15 kernel on normal Bionic (18.04), so we can use the normal linux-4.15.0 source code. > 2. we are using linux-4.15.0-unsigned and by skimming through the source code, looks like try_get_page is not defined at that time? Yes! You are correct, the original mainline 4.15 kernel did not have try_get_page() defined at: https://elixir.bootlin.com/linux/v4.15/source/mm/gup.c#L156 But if you look closely at the actual kernel sources for 4.15.0-72-generic: https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/mm/gup.c?h=Ubuntu-4.15.0-72.81#n156 We see that try_get_page() is there. That is because we backported: commit 8fde12ca79aff9b5ba951fce1a2641901b8d8e64 Author: Linus Torvalds