On Thu, Jul 22, 2021 at 04:57:57PM +0800, Zhouyi Zhou wrote:
Thanks for reviewing,
What I have deduced from the dmesg is: In function do_swap_page, after invoking 3385 si = get_swap_device(entry); /* rcu_read_lock */ and before 3561 out: 3562 if (si) 3563 put_swap_device(si); The thread got scheduled out in 3454 locked = lock_page_or_retry(page, vma->vm_mm, vmf->flags);
I am only familiar with Linux RCU subsystem, hope mm people can solve our confusions.
I don't understamd why you're still talking. The problem is understood. You need to revert the unnecessary backport of 2799e77529c2 and 2efa33fc7f6e