[PATCH v2] mm/debug: Fix minor issues in mm

Liu Ye posted 1 patch 9 months, 1 week ago
mm/debug.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
[PATCH v2] mm/debug: Fix minor issues in mm
Posted by Liu Ye 9 months, 1 week ago
This patch includes several minor fixes:

- Simplify compound page judgment conditions.
- Missing a newline character at the end of the format string.

Each change is independent.

Signed-off-by: Liu Ye <liuye@kylinos.cn>

---
V2 : drop Fix out-of-bounds access in page_type_name().
---
---
 mm/debug.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/mm/debug.c b/mm/debug.c
index 8d2acf432385..544b2b05c567 100644
--- a/mm/debug.c
+++ b/mm/debug.c
@@ -132,15 +132,15 @@ static void __dump_page(const struct page *page)
 again:
 	memcpy(&precise, page, sizeof(*page));
 	head = precise.compound_head;
-	if ((head & 1) == 0) {
+	if (head & 1) {
+		foliop = (struct folio *)(head - 1);
+		idx = folio_page_idx(foliop, page);
+	} else {
 		foliop = (struct folio *)&precise;
 		idx = 0;
 		if (!folio_test_large(foliop))
 			goto dump;
 		foliop = (struct folio *)page;
-	} else {
-		foliop = (struct folio *)(head - 1);
-		idx = folio_page_idx(foliop, page);
 	}
 
 	if (idx < MAX_FOLIO_NR_PAGES) {
@@ -165,7 +165,7 @@ static void __dump_page(const struct page *page)
 void dump_page(const struct page *page, const char *reason)
 {
 	if (PagePoisoned(page))
-		pr_warn("page:%p is uninitialized and poisoned", page);
+		pr_warn("page:%p is uninitialized and poisoned\n", page);
 	else
 		__dump_page(page);
 	if (reason)
-- 
2.25.1
Re: [PATCH v2] mm/debug: Fix minor issues in mm
Posted by Matthew Wilcox 9 months, 1 week ago
On Wed, Mar 12, 2025 at 11:23:44AM +0800, Liu Ye wrote:
> - Simplify compound page judgment conditions.

> @@ -132,15 +132,15 @@ static void __dump_page(const struct page *page)
>  again:
>  	memcpy(&precise, page, sizeof(*page));
>  	head = precise.compound_head;
> -	if ((head & 1) == 0) {
> +	if (head & 1) {
> +		foliop = (struct folio *)(head - 1);
> +		idx = folio_page_idx(foliop, page);
> +	} else {
>  		foliop = (struct folio *)&precise;
>  		idx = 0;
>  		if (!folio_test_large(foliop))
>  			goto dump;
>  		foliop = (struct folio *)page;
> -	} else {
> -		foliop = (struct folio *)(head - 1);
> -		idx = folio_page_idx(foliop, page);
>  	}
>  
>  	if (idx < MAX_FOLIO_NR_PAGES) {

How is this "simpler"?  It seems like churn for the sake of churn.
NACK.
Re: [PATCH v2] mm/debug: Fix minor issues in mm
Posted by liuye 9 months, 1 week ago

在 2025/3/12 20:20, Matthew Wilcox 写道:
>> -	if ((head & 1) == 0) {
>> +	if (head & 1) {
>> +		foliop = (struct folio *)(head - 1);
>> +		idx = folio_page_idx(foliop, page);
>> +	} else {
>>  		foliop = (struct folio *)&precise;
>>  		idx = 0;
>>  		if (!folio_test_large(foliop))
>>  			goto dump;
>>  		foliop = (struct folio *)page;
>> -	} else {
>> -		foliop = (struct folio *)(head - 1);
>> -		idx = folio_page_idx(foliop, page);
>>  	}
>>  
>>  	if (idx < MAX_FOLIO_NR_PAGES) {
> 
> How is this "simpler"?  It seems like churn for the sake of churn.
> NACK.

This modification simplifies the condition check by directly testing 
head & 1 instead of using ((head & 1) == 0). The updated logic first handles
the case where head & 1 is set, assigning foliop and idx accordingly. 
This improves code readability and reduces unnecessary branching, 
making the structure more straightforward and easier to maintain.
I am personally accustomed to this format, but if it is not accepted 
by the majority, then drop it.

Thanks,
Liu Ye                                               
Re: [PATCH v2] mm/debug: Fix minor issues in mm
Posted by Oscar Salvador 9 months, 1 week ago
On Wed, Mar 12, 2025 at 11:23:44AM +0800, Liu Ye wrote:
> This patch includes several minor fixes:
> 
> - Simplify compound page judgment conditions.
> - Missing a newline character at the end of the format string.
> 
> Each change is independent.

If each change is indepenent, send a patch per change.

Also CC Willy since he has been dealing with __dump_page lately.

 

-- 
Oscar Salvador
SUSE Labs