Re: [PATCH] mm: mempolicy: use VM_BUG_ON_VMA in queue_pages_test_walk()

From: Yang Shi
Date: Mon Jan 27 2020 - 12:00:30 EST




On 1/16/20 7:52 AM, Li Xinhai wrote:
On 2020-01-16Âat 01:27ÂYang ShiÂwrote:

On 1/15/20 4:08 AM, Li Xinhai wrote:
On 2020-01-15Âat 14:09ÂYang ShiÂwrote:
The VM_BUG_ON() is already used by queue_pages_test_walk(), it sounds
better to dump more debug information by using VM_BUG_ON_VMA() to help
debugging.

Signed-off-by: Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx>
The .test_walk() is to be called from pagewalk with the rule that 'start'
and 'end' must within range of vma, in case the rule is broke, we detect
it. This is not quite relevant to a bug of particular vma.
But when you run into VMA range check failure, isn't it helpful to dump
the VMA range information to ease debugging? And, VM_BUG_ON is already
used in the code, I'm supposed the users may prefer more debug
information dumped for debug kernel.

Got your point, it is already used better put more information.

Hi Andrew,

Would you like to take this patch for v5.6 or v5.7? It looks Xinhai agrees with my point.

Thanks,
Yang

---
mm/mempolicy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 067cf7d..801d45d 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -621,7 +621,7 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end,
unsigned long flags = qp->flags;

/* range check first */
- VM_BUG_ON((vma->vm_start > start) || (vma->vm_end < end));
+ VM_BUG_ON_VMA((vma->vm_start > start) || (vma->vm_end < end), vma);

if (!qp->first) {
qp->first = vma;
--
1.8.3.1


>