From: Richard Weinberger <richard@nod.at>
To: Kuan-Wei Chiu <visitorckw@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
chengzhihao1 <chengzhihao1@huawei.com>,
jserv@ccns.ncku.edu.tw, eleanor15x@gmail.com,
marscheng@google.com, linux-mtd <linux-mtd@lists.infradead.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] lib/list_sort: introduce list_sort_nonatomic() and remove dummy cmp() calls
Date: Mon, 16 Mar 2026 08:25:57 +0100 (CET) [thread overview]
Message-ID: <1295583760.42468.1773645957126.JavaMail.zimbra@nod.at> (raw)
In-Reply-To: <20260315193900.218737-1-visitorckw@gmail.com>
----- Ursprüngliche Mail -----
> Von: "Kuan-Wei Chiu" <visitorckw@gmail.com>
> Historically, list_sort() implemented a hack in merge_final():
> if (unlikely(!++count))
> cmp(priv, b, b);
>
> This was designed specifically so that callers could periodically
> invoke cond_resched() within their comparison functions when merging
> highly unbalanced lists.
>
> However, an audit of the kernel tree reveals that only fs/ubifs/ relies
> on this mechanism. For the vast majority of list_sort() users (such as
> block layer IO schedulers and file systems), this results in completely
> wasted function calls. In the worst-case scenario (merging an already
> sorted list where 'a' is exhausted quickly), this results in
> approximately (N/2)/256 unnecessary cmp() calls.
Why isn't this a problem for other users of list_sort()?
Are the lists they sort guaranteed to be short?
Or did nobody test hard enough on slow machines without preempt? ;-)
Thanks,
//richard
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Richard Weinberger <richard@nod.at>
To: Kuan-Wei Chiu <visitorckw@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
chengzhihao1 <chengzhihao1@huawei.com>,
jserv@ccns.ncku.edu.tw, eleanor15x@gmail.com,
marscheng@google.com, linux-mtd <linux-mtd@lists.infradead.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] lib/list_sort: introduce list_sort_nonatomic() and remove dummy cmp() calls
Date: Mon, 16 Mar 2026 08:25:57 +0100 (CET) [thread overview]
Message-ID: <1295583760.42468.1773645957126.JavaMail.zimbra@nod.at> (raw)
In-Reply-To: <20260315193900.218737-1-visitorckw@gmail.com>
----- Ursprüngliche Mail -----
> Von: "Kuan-Wei Chiu" <visitorckw@gmail.com>
> Historically, list_sort() implemented a hack in merge_final():
> if (unlikely(!++count))
> cmp(priv, b, b);
>
> This was designed specifically so that callers could periodically
> invoke cond_resched() within their comparison functions when merging
> highly unbalanced lists.
>
> However, an audit of the kernel tree reveals that only fs/ubifs/ relies
> on this mechanism. For the vast majority of list_sort() users (such as
> block layer IO schedulers and file systems), this results in completely
> wasted function calls. In the worst-case scenario (merging an already
> sorted list where 'a' is exhausted quickly), this results in
> approximately (N/2)/256 unnecessary cmp() calls.
Why isn't this a problem for other users of list_sort()?
Are the lists they sort guaranteed to be short?
Or did nobody test hard enough on slow machines without preempt? ;-)
Thanks,
//richard
next prev parent reply other threads:[~2026-03-16 7:26 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-15 19:39 [PATCH] lib/list_sort: introduce list_sort_nonatomic() and remove dummy cmp() calls Kuan-Wei Chiu
2026-03-15 19:39 ` Kuan-Wei Chiu
2026-03-16 7:25 ` Richard Weinberger [this message]
2026-03-16 7:25 ` Richard Weinberger
2026-03-16 18:04 ` Kuan-Wei Chiu
2026-03-16 18:04 ` Kuan-Wei Chiu
2026-03-16 21:49 ` Richard Weinberger
2026-03-16 21:49 ` Richard Weinberger
2026-03-17 14:22 ` Christoph Hellwig
2026-03-17 14:22 ` Christoph Hellwig
2026-03-17 14:38 ` Richard Weinberger
2026-03-17 14:38 ` Richard Weinberger
2026-03-17 14:40 ` Christoph Hellwig
2026-03-17 14:40 ` Christoph Hellwig
2026-03-17 16:08 ` Kuan-Wei Chiu
2026-03-17 16:08 ` Kuan-Wei Chiu
2026-03-17 4:05 ` Zhihao Cheng
2026-03-17 4:05 ` Zhihao Cheng
2026-03-17 12:32 ` Kuan-Wei Chiu
2026-03-17 12:32 ` Kuan-Wei Chiu
2026-03-17 13:22 ` Zhihao Cheng
2026-03-17 13:22 ` Zhihao Cheng
2026-03-17 14:15 ` Kuan-Wei Chiu
2026-03-17 14:15 ` Kuan-Wei Chiu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1295583760.42468.1773645957126.JavaMail.zimbra@nod.at \
--to=richard@nod.at \
--cc=akpm@linux-foundation.org \
--cc=chengzhihao1@huawei.com \
--cc=eleanor15x@gmail.com \
--cc=jserv@ccns.ncku.edu.tw \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marscheng@google.com \
--cc=visitorckw@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.