Re: [PATCH v2 1/3] tools/mm/page_owner_sort: fix --sort option being silently ignored

"David Hildenbrand (Arm)" <[email protected]> Mon, 3 Aug 2026 10:17:18 +0200
Newsgroups org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kvack.linux-mm
Message-ID <[email protected]>
On 8/3/26 08:20, Ye Liu wrote:
> From: Ye Liu <[email protected]>
> 
> When --sort is used without any short option (-a, -m, -p, etc.),
> compare_flag remains COMP_NO_FLAG.  The switch (compare_flag) then
> falls through to the COMP_NUM case and calls set_single_cmp(), which
> unconditionally overwrites the sort conditions that parse_sort_args()
> already configured.  This makes --sort silently ineffective unless a
> short option is also supplied.
> 
> Split COMP_NO_FLAG out of the COMP_NUM fallthrough so that --sort is
> respected when no short option is present.
> 
> Reproduction:
>   # Before fix: ascending order (ignored --sort=-pid)
>   ./page_owner_sort --sort=-pid input.txt output.txt
>   # After fix: descending order as expected
> 
> Signed-off-by: Ye Liu <[email protected]>
> ---
>  tools/mm/page_owner_sort.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c
> index 35d3d254941c..3c86c8d0618c 100644
> --- a/tools/mm/page_owner_sort.c
> +++ b/tools/mm/page_owner_sort.c
> @@ -821,6 +821,10 @@ int main(int argc, char **argv)
>  		set_single_cmp(compare_stacktrace, SORT_ASC);
>  		break;
>  	case COMP_NO_FLAG:
> +		if (sc.size > 0)
> +			break;
> +		set_single_cmp(compare_num, SORT_DESC);
> +		break;

Why not a fallthrough; after the check?

-- 
Cheers,

David