All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.