From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 76904FD8756 for ; Tue, 17 Mar 2026 12:32:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=dNkWismptFmITUADo9LN6Po9HN770nkVOKXDKnfZOWQ=; b=XxcG9pefjlIltb 3+KHeH664wZp0FJDgr9kl+jW1cQUeGFqRpSAxzuVrqkz9vcb1C2EAIIhoC5KSFBo1nSfw2SoOIv7H y1AyotzlKORjV4+oUcQ1Bd42C/Hv7mSPZpzbS9UeoWTmV2E1GR0yRn2bmGwH4DKEOaFnw8hBPI4mz 3eK2kNipf++sWphILlllj84D6wj4c2GpCLGdfhj0t3nStlXrtCU0VzKB1ZDMP48xhtfLnWgjxmsIz 16CwBiOCFQy/XIpKUMtGkAnWAGpCBzz/BEs+DAUcHPFpy3Qiq/cuQGfji/4kdEMZHj1xwg+ttO//U 4xPfwJdvm23bpuOgBkrw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w2Tb4-00000006In5-2UtT; Tue, 17 Mar 2026 12:32:30 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w2Tb3-00000006ImF-0cL6 for linux-mtd@bombadil.infradead.org; Tue, 17 Mar 2026 12:32:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=khh7GPjJ3y6yrkZvajwZLcEiPn144UhSqF1UmlKQ5e0=; b=XJlRvpq3yRQwMuQ5ZpWOK6F7ln /uLJSm5032wuQfKJeEE7ZH/1Uqjcpt1oH2Mnb6EGbXseFntmK6KcHz5YGtSl9KZMqz1UGh2HBWoZn JZpTfEGTZad5YQQLhp2WdEneZgr2FMkCCoUr3LpqFuZzcHwgDUSOT9fli4J8NLLAU0feuBpLlROpl xz4ZCvVbZYx3gg1lC7PM29vlOI42PBJPpcq+czFsGXWAVKbGi8X/7okU+qBvInM4iZF60fOULRCmE hjtq9DtZFUJFZnFFOVSMB6MctlWuRS2uUQ89BI61t6xBcpRcc9TUJoroSbux9cqGoJIvUnstTc94f d4Gr68eA==; Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w2Tb0-00000008yPe-06zm for linux-mtd@lists.infradead.org; Tue, 17 Mar 2026 12:32:27 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-35a04d6aeb0so3473074a91.0 for ; Tue, 17 Mar 2026 05:32:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773750743; x=1774355543; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=khh7GPjJ3y6yrkZvajwZLcEiPn144UhSqF1UmlKQ5e0=; b=LEGv0ebYboOYl7OBH7H1X+HbHCeS/gr8/bt5+Ew6U3Id79K2hYVuDGkrCu6c5WtEOX QFYX66M+BE7wAyfsvhuADrZI684i7z0f7lxs6hmyNriqA/BiXztNBYcGgczOS39xSFF0 W9lnQqpye4BS8RVLG+Ze456prl+X9mPZ0JqzybBkj69JrxdLzs8ckvjQa0koKhVOBbvp kmFV6bvzfzx8POOw8pvDeYfCg4U3UbhiVn1E3KPC/bkoPSTlE5nPXFXfNddxZv/lPsl3 O5tINyLCJmc9fz6vtFac4kfWlv3Qax2Nq6O1XpBtmoLuQf3FGG8w7qJEsJtjqKEgly1c 7opA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773750743; x=1774355543; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=khh7GPjJ3y6yrkZvajwZLcEiPn144UhSqF1UmlKQ5e0=; b=PXYLIFilpIcVWr/rcaCTvve5jmfu0rbP9BwqkJdzn2Ei5j+UmX0JMPyaU1Olq7OSS6 yMH2pkJWULfGwX9fnWAI+lalKhXjlC0er5QhBfKYcPXvhOsmTCBNymOEcjm9zeGCd8i3 TeyjmY9Iu/4Ezma62sAREUA53/VW+vEhISW11xlBys8gYU0Yyc8m8eIBR6lFD+IsY6lp T05iv8riOL/eTzbr8h7CLFLoX2GaYFajiRX2IwJt70RH0u8Ovv+w7bATciV6FowkOLY0 CAd+o6hf66uERY48maIDMNBOqjfF0Exl2SJoy2ZKff2uBjNTeHojL8FsWcB9+dROBQqH T+lQ== X-Forwarded-Encrypted: i=1; AJvYcCVt81VlDFKajfhaaKgJUnNtmMEK8zkG1QoqIHAYk0FSQlSCksSKJ6N9YK0ljKqv+e0UTexwVuNAIqc=@lists.infradead.org X-Gm-Message-State: AOJu0YwhG8rH/WvYmUILW1S32Bm0fNQG+FpQ07Pw74z5VmyCLVFUPyue Eyym/ejfEn/MDVzJAjCNCsWE6R7XJFHpIyc2Bu/LzabRL/d9ce2TOmv9 X-Gm-Gg: ATEYQzyRZB6qXIqJx6NCl/1EsQdicUif3EYu9l1SwfAaM8Ale6rDyiV3SAZKCbRyxEs jBTdEeZgRaAY8e3vYXbauk+TVR1eQmoiiU4ks+XHIo0JQnpzGrd8dSwOWbPmfm6sY37raj/YkYP uLXmIC/jwLA8Mx1BjS6Bb88t+94esdftJScDqAuJCMXNFD8WiHNVuk3r0R5N7Bl1btgN7S28W74 9jU5aMWlRrPDkpDyaPmqokhSCmUaSfj7gAezORfnDA7qrKMPiL+jSxqeWFYoj8S8qzSq9vGzpKR 43BY6/L+Mb4JaoPmTP97H5bSBW5JsJmQl9bWwXfuzrlpuVeeW0YZpy54+wYyyQnZj2PPRC6TGVL LRVOx/tkdBP2m0nZV+NfQBCCTpVDc12lYkti68TyMGeffbZdjGNRPnI5i1VLg5caIcDIGesqcai x6UK/C3wHRKhiIJxMqwX7ePstf9lYw6Oc7egI= X-Received: by 2002:a17:90b:1a8c:b0:35b:9ab6:1d65 with SMTP id 98e67ed59e1d1-35b9ab61fb4mr6960509a91.25.1773750742946; Tue, 17 Mar 2026 05:32:22 -0700 (PDT) Received: from google.com ([2402:7500:a44:85b:7148:e9a6:4d84:7769]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35a245b3e97sm4842851a91.10.2026.03.17.05.32.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 05:32:22 -0700 (PDT) Date: Tue, 17 Mar 2026 20:32:18 +0800 From: Kuan-Wei Chiu To: Zhihao Cheng Cc: richard@nod.at, akpm@linux-foundation.org, jserv@ccns.ncku.edu.tw, eleanor15x@gmail.com, marscheng@google.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] lib/list_sort: introduce list_sort_nonatomic() and remove dummy cmp() calls Message-ID: References: <20260315193900.218737-1-visitorckw@gmail.com> <7bb23ce1-a0f3-b576-ad79-c9fa746f11ed@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <7bb23ce1-a0f3-b576-ad79-c9fa746f11ed@huawei.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260317_123226_190058_32E4FA14 X-CRM114-Status: GOOD ( 36.20 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgWmhpaGFvLAoKT24gVHVlLCBNYXIgMTcsIDIwMjYgYXQgMTI6MDU6NTRQTSArMDgwMCwgWmhp aGFvIENoZW5nIHdyb3RlOgo+IOWcqCAyMDI2LzMvMTYgMzozOSwgS3Vhbi1XZWkgQ2hpdSDlhpnp gZM6Cj4gPiBIaXN0b3JpY2FsbHksIGxpc3Rfc29ydCgpIGltcGxlbWVudGVkIGEgaGFjayBpbiBt ZXJnZV9maW5hbCgpOgo+ID4gICAgICBpZiAodW5saWtlbHkoISsrY291bnQpKQo+ID4gICAgICAg ICAgY21wKHByaXYsIGIsIGIpOwo+ID4gCj4gPiBUaGlzIHdhcyBkZXNpZ25lZCBzcGVjaWZpY2Fs bHkgc28gdGhhdCBjYWxsZXJzIGNvdWxkIHBlcmlvZGljYWxseQo+ID4gaW52b2tlIGNvbmRfcmVz Y2hlZCgpIHdpdGhpbiB0aGVpciBjb21wYXJpc29uIGZ1bmN0aW9ucyB3aGVuIG1lcmdpbmcKPiA+ IGhpZ2hseSB1bmJhbGFuY2VkIGxpc3RzLgo+ID4gCj4gPiBIb3dldmVyLCBhbiBhdWRpdCBvZiB0 aGUga2VybmVsIHRyZWUgcmV2ZWFscyB0aGF0IG9ubHkgZnMvdWJpZnMvIHJlbGllcwo+ID4gb24g dGhpcyBtZWNoYW5pc20uIEZvciB0aGUgdmFzdCBtYWpvcml0eSBvZiBsaXN0X3NvcnQoKSB1c2Vy cyAoc3VjaCBhcwo+ID4gYmxvY2sgbGF5ZXIgSU8gc2NoZWR1bGVycyBhbmQgZmlsZSBzeXN0ZW1z KSwgdGhpcyByZXN1bHRzIGluIGNvbXBsZXRlbHkKPiA+IHdhc3RlZCBmdW5jdGlvbiBjYWxscy4g SW4gdGhlIHdvcnN0LWNhc2Ugc2NlbmFyaW8gKG1lcmdpbmcgYW4gYWxyZWFkeQo+ID4gc29ydGVk IGxpc3Qgd2hlcmUgJ2EnIGlzIGV4aGF1c3RlZCBxdWlja2x5KSwgdGhpcyByZXN1bHRzIGluCj4g PiBhcHByb3hpbWF0ZWx5IChOLzIpLzI1NiB1bm5lY2Vzc2FyeSBjbXAoKSBjYWxscy4KPiA+IAo+ ID4gVG8gY2xlYW4gdXAgdGhpcyBBUEkgd2hpbGUgZW5zdXJpbmcgYmVoYXZpb3IgY29tcGF0aWJp bGl0eToKPiA+IDEuIEludHJvZHVjZSBsaXN0X3NvcnRfbm9uYXRvbWljKCksIHdoaWNoIGV4cGxp Y2l0bHkgY2FsbHMKPiA+ICAgICBjb25kX3Jlc2NoZWQoKSBpbnRlcm5hbGx5IHdoZW4gY291bnQg b3ZlcmZsb3dzLgo+ID4gMi4gUmVtb3ZlIHRoZSBkdW1teSBjbXAocHJpdiwgYiwgYikgZmFsbGJh Y2sgZm9yIHN0YW5kYXJkIGxpc3Rfc29ydCgpLAo+ID4gICAgIHNhdmluZyB1bm5lY2Vzc2FyeSBm dW5jdGlvbiBjYWxscyBhbmQgaW1wcm92aW5nIGRldGVybWluaXNtLgo+ID4gMy4gQ29udmVydCB0 aGUgc29sZSB1c2VyIChmcy91Ymlmcy8pIHRvIHRoZSBuZXcgQVBJLgo+ID4gCj4gPiBOb3RlIHRo YXQgdWJpZnMgc3RpbGwgbWFpbnRhaW5zIGNvbmRfcmVzY2hlZCgpIGluc2lkZSBpdHMgb3duCj4g PiBjb21wYXJpc29uIGZ1bmN0aW9ucy4gVGhpcyBwYXRjaCBkb2VzIG5vdCBhbHRlciB0aGUgZnJl cXVlbmN5IG9yIHRpbWluZwo+ID4gb2YgdGhvc2Ugc2NoZWR1bGluZyBwb2ludHMsIGd1YXJhbnRl ZWluZyBubyByZWdyZXNzaW9ucyBmb3IgdWJpZnMsCj4gPiB3aGlsZSBiZW5lZml0aW5nIGFsbCBv dGhlciBrZXJuZWwgdXNlcnMuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEt1YW4tV2VpIENoaXUg PHZpc2l0b3Jja3dAZ21haWwuY29tPgo+ID4gLS0tCj4gPiAgIGZzL3ViaWZzL2djLmMgICAgICAg ICAgICAgfCAgIDQgKy0KPiA+ICAgZnMvdWJpZnMvcmVwbGF5LmMgICAgICAgICB8ICAgMiArLQo+ ID4gICBpbmNsdWRlL2xpbnV4L2xpc3Rfc29ydC5oIHwgICAzICsKPiA+ICAgbGliL2xpc3Rfc29y dC5jICAgICAgICAgICB8IDE2NiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LQo+ID4gICA0IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMo LSkKPiAKPiBsZ3RtIGZvciBVQklGUy4KPiAKPiBSZXZpZXdlZC1ieTogWmhpaGFvIENoZW5nIDxj aGVuZ3poaWhhbzFAaHVhd2VpLmNvbT4KClRoYW5rcyBmb3IgeW91ciByZXZpZXchCgo+IAo+IG9u ZSBzbWFsbCBuaXQgYmVsb3cuCj4gCj4gPiAKPiBbLi4uXQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbGlzdF9zb3J0LmggYi9pbmNsdWRlL2xpbnV4L2xpc3Rfc29ydC5oCj4gPiBpbmRl eCA0NTMxMDVmNzRlMDUuLmY3YWYyOTA3M2Q0OCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvbGlu dXgvbGlzdF9zb3J0LmgKPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvbGlzdF9zb3J0LmgKPiA+IEBA IC0xMSw0ICsxMSw3IEBAIHR5cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKG5vbm51bGwoMiwzKSkp ICgqbGlzdF9jbXBfZnVuY190KSh2b2lkICosCj4gPiAgIF9fYXR0cmlidXRlX18oKG5vbm51bGwo MiwzKSkpCj4gPiAgIHZvaWQgbGlzdF9zb3J0KHZvaWQgKnByaXYsIHN0cnVjdCBsaXN0X2hlYWQg KmhlYWQsIGxpc3RfY21wX2Z1bmNfdCBjbXApOwo+ID4gKwo+ID4gK19fYXR0cmlidXRlX18oKG5v bm51bGwoMiwgMykpKQo+ID4gK3ZvaWQgbGlzdF9zb3J0X25vbmF0b21pYyh2b2lkICpwcml2LCBz dHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBsaXN0X2NtcF9mdW5jX3QgY21wKTsKPiA+ICAgI2VuZGlm Cj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpc3Rfc29ydC5jIGIvbGliL2xpc3Rfc29ydC5jCj4gPiBp bmRleCBhMzEwZWNiN2NjYzAuLjc4OGJmYzI2Y2Y3YiAxMDA2NDQKPiA+IC0tLSBhL2xpYi9saXN0 X3NvcnQuYwo+ID4gKysrIGIvbGliL2xpc3Rfc29ydC5jCj4gPiBAQCAtMyw2ICszLDcgQEAKPiA+ ICAgI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgo+ID4gICAjaW5jbHVkZSA8bGludXgvbGlzdF9z b3J0Lmg+Cj4gPiAgICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4 L3NjaGVkLmg+Cj4gPiAgIC8qCj4gPiAgICAqIFJldHVybnMgYSBsaXN0IG9yZ2FuaXplZCBpbiBh biBpbnRlcm1lZGlhdGUgZm9ybWF0IHN1aXRlZAo+ID4gQEAgLTQ3LDcgKzQ4LDcgQEAgc3RhdGlj IHN0cnVjdCBsaXN0X2hlYWQgKm1lcmdlKHZvaWQgKnByaXYsIGxpc3RfY21wX2Z1bmNfdCBjbXAs Cj4gPiAgICAqLwo+ID4gICBfX2F0dHJpYnV0ZV9fKChub25udWxsKDIsMyw0LDUpKSkKPiA+ICAg c3RhdGljIHZvaWQgbWVyZ2VfZmluYWwodm9pZCAqcHJpdiwgbGlzdF9jbXBfZnVuY190IGNtcCwg c3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKPiA+IC0JCQlzdHJ1Y3QgbGlzdF9oZWFkICphLCBzdHJ1 Y3QgbGlzdF9oZWFkICpiKQo+ID4gKwkJCXN0cnVjdCBsaXN0X2hlYWQgKmEsIHN0cnVjdCBsaXN0 X2hlYWQgKmIsIGJvb2wgbWF5X3NjaGVkdWxlKQo+ID4gICB7Cj4gPiAgIAlzdHJ1Y3QgbGlzdF9o ZWFkICp0YWlsID0gaGVhZDsKPiA+ICAgCXU4IGNvdW50ID0gMDsKPiA+IEBAIC03OSwxMiArODAs MTEgQEAgc3RhdGljIHZvaWQgbWVyZ2VfZmluYWwodm9pZCAqcHJpdiwgbGlzdF9jbXBfZnVuY190 IGNtcCwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKPiA+ICAgCQkvKgo+ID4gICAJCSAqIElmIHRo ZSBtZXJnZSBpcyBoaWdobHkgdW5iYWxhbmNlZCAoZS5nLiB0aGUgaW5wdXQgaXMKPiA+ICAgCQkg KiBhbHJlYWR5IHNvcnRlZCksIHRoaXMgbG9vcCBtYXkgcnVuIG1hbnkgaXRlcmF0aW9ucy4KPiA+ IC0JCSAqIENvbnRpbnVlIGNhbGxiYWNrcyB0byB0aGUgY2xpZW50IGV2ZW4gdGhvdWdoIG5vCj4g PiAtCQkgKiBlbGVtZW50IGNvbXBhcmlzb24gaXMgbmVlZGVkLCBzbyB0aGUgY2xpZW50J3MgY21w KCkKPiA+IC0JCSAqIHJvdXRpbmUgY2FuIGludm9rZSBjb25kX3Jlc2NoZWQoKSBwZXJpb2RpY2Fs bHkuCj4gPiArCQkgKiBJZiBtYXlfc2NoZWR1bGUgaXMgdHJ1ZSwgcGVyaW9kaWNhbGx5IGludm9r ZSBjb25kX3Jlc2NoZWQoKQo+ID4gKwkJICogdG8gYXZvaWQgc29mdCBsb2NrdXBzLgo+ID4gICAJ CSAqLwo+ID4gLQkJaWYgKHVubGlrZWx5KCErK2NvdW50KSkKPiA+IC0JCQljbXAocHJpdiwgYiwg Yik7Cj4gPiArCQlpZiAobWF5X3NjaGVkdWxlICYmIHVubGlrZWx5KCErK2NvdW50KSkKPiA+ICsJ CQljb25kX3Jlc2NoZWQoKTsKPiBUaGUgY29uZF9yZXNjaGVkKCkgYWxyZWFkeSBoYXMgYSBqdWRn bWVudCBvbiB3aGV0aGVyIHRvIHNjaGVkdWxlIG91dCwgc28gdGhlCj4gJ2NvdW50JyBjb3VsZCBi ZSByZW1vdmVkPwoKSG93ZXZlciwgSSB0aGluayBrZWVwaW5nIHRoZSB1OCBjb3VudCByYXRlLWxp bWl0ZXIgbWFrZXMgbW9yZSBzZW5zZQpoZXJlIGR1ZSB0byB0aGUgb3ZlcmhlYWQgZGlmZmVyZW5j ZS4KCkV2YWx1YXRpbmcgdW5saWtlbHkoISsrY291bnQpIGlzIGVzc2VudGlhbGx5IGEgc2luZ2xl IEFMVSBpbnN0cnVjdGlvbgoocmVnaXN0ZXIgaW5jcmVtZW50KSBhbmQgYSB6ZXJvLWZsYWcgY2hl Y2ssIHdoaWNoIGhhcyB2aXJ0dWFsbHkgemVybwpjb3N0LiBPbiB0aGUgb3RoZXIgaGFuZCwgY29u ZF9yZXNjaGVkKCkgaXMgYSBtYWNybyB0aGF0IGRvZXMgbXVjaCBtb3JlCnRoYW4gYSBzaW1wbGUg ZmxhZyBjaGVjay4gRGVwZW5kaW5nIG9uIHRoZSBrZXJuZWwgY29uZmlnLCBpdCBvZnRlbgppbnZv a2VzIF9fbWlnaHRfcmVzY2hlZCgpICh3aGljaCByZWFkcyBjdXJyZW50IHRvIGNoZWNrIHRhc2tf c3RydWN0CnN0YXRlcywgaXJxIGZsYWdzLCBldGMuKSBhbmQgbWFrZXMgYSBjYWxsIHRvIF9fY29u ZF9yZXNjaGVkKCkuCkV2YWx1YXRpbmcgYWxsIG9mIHRoaXMgaGVhdnkgbWFjaGluZXJ5IG9uIGV2 ZXJ5IHNpbmdsZSBpdGVyYXRpb24gb2YKc3VjaCBhIHRpZ2h0IGxvb3Agd291bGQgcHJvYmFibHkg aW50cm9kdWNlIG5vdGljZWFibGUgb3ZlcmhlYWQuCgpBY3R1YWxseSwgeW91ciBjb21tZW50IGJy aW5ncyB1cCBhbm90aGVyIHRob3VnaHQgSSB3YW50ZWQgdG8gZGlzY3Vzcy4KClNpbmNlIHdlIGFy ZSBpbnRyb2R1Y2luZyBsaXN0X3NvcnRfbm9uYXRvbWljKCksIEkgd29uZGVyIGlmIHdlIHNob3Vs ZApldmVudHVhbGx5IG1vdmUgdGhlIGNvbmRfcmVzY2hlZCgpIG91dCBvZiBVQklGUydzIGNtcCgp IGZ1bmN0aW9ucwplbnRpcmVseSBhbmQgaGFuZGxlIGl0IGluc2lkZSBsaXN0X3NvcnRfbm9uYXRv bWljKCkuCgpSaWdodCBub3csIGJlY2F1c2UgdGhlIGNtcCgpIGNhbGxiYWNrIGlzIGluaGVyZW50 bHkgaW52b2tlZCBhdCBldmVyeQpzdGVwIG9mIHRoZSBtZXJnZSBwcm9jZXNzLCBVQklGUyBlbmRz IHVwIGV2YWx1YXRpbmcgdGhlIGNvbmRfcmVzY2hlZCgpCm1hY3JvIGV2ZXJ5IDMgb3IgNCBwb2lu dGVyIGFzc2lnbm1lbnRzIGR1cmluZyB0aGUgbWFpbiBzb3J0LiBXaGlsZQpVQklGUyBuZWVkcyB0 byBwcmV2ZW50IHNvZnQgbG9ja3VwcyBvbiBodWdlIGxpc3RzLCBjaGVja2luZyBmb3IgcmVzY2hl ZAphdCBzdWNoIGEgbWljcm8tZ3JhbnVsYXJpdHkgc3RpbGwgZmVlbHMgZXhjZXNzaXZlIGFuZCBs aWtlbHkgbGVhdmVzCnBlcmZvcm1hbmNlIG9uIHRoZSB0YWJsZS4KCkkgZGlkbid0IG1ha2UgdGhp cyBjaGFuZ2UgaW4gdGhlIGN1cnJlbnQgcGF0Y2ggYmVjYXVzZSBJIGRvbid0IGhhdmUgdGhlCnBy b3BlciBVQklGUyBoYXJkd2FyZS9zZXR1cCB0byBiZW5jaG1hcmsgdGhlIHBlcmZvcm1hbmNlIGRp ZmZlcmVuY2UsCmFuZCBJIHdhbnRlZCB0byBrZWVwIHRoZSBjdXJyZW50IHNjaGVkdWxpbmcgZnJl cXVlbmN5IGV4YWN0bHkgdGhlIHNhbWUKdG8gZ3VhcmFudGVlIG5vIHJlZ3Jlc3Npb25zLiBCdXQg SSdkIGxvdmUgdG8gaGVhciB5b3VyIHRob3VnaHRzIG9uCndoZXRoZXIgcmVkdWNpbmcgdGhlIGZy ZXF1ZW5jeSBhbmQgbW92aW5nIGl0IG91dCBvZiBVQklGUydzIGNtcCgpIGlzCnNvbWV0aGluZyB3 b3J0aCBkb2luZyBpbiB0aGUgZnV0dXJlLgoKUmVnYXJkcywKS3Vhbi1XZWkKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlz Y3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDE3535CB75 for ; Tue, 17 Mar 2026 12:32:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773750745; cv=none; b=VzQlgCY3BnpRcKCGDldVdoC2JE2PynMNBTR8wK8/EIzvdttflgNwYt4qs2L9qIyjsz6wQCk3WtHaF/PWWieTnJMRB96AlAW20RTcpa8iu56werX26nktQ40YsKWDkrRDDZSpiJ1wZjXMYcETwx6RUDHvp9XAJv39hnb0V1+fw6Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773750745; c=relaxed/simple; bh=m+yUloerdg+cKn6h3yYvRAaR4uhpVH65NrnZ6qV9LYI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=oUrSiov4iJABq/GwX8o6Dw/aXfjAdaCPJEyJwdcQghtJTOx+ovqLLXwqdZ6T0jObirHsSv0N93fK0Wg0CB1gJ36RuQ0nw45M4nLDNsJDsb2k4yJsWgea7QHrvo3X0qJPDWuKNLak4WpRfDOQzTgLv0oI3/NA8x9TSK6VANaTluY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GWoBVyvT; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GWoBVyvT" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-35a09e0dd63so6315085a91.3 for ; Tue, 17 Mar 2026 05:32:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773750743; x=1774355543; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=khh7GPjJ3y6yrkZvajwZLcEiPn144UhSqF1UmlKQ5e0=; b=GWoBVyvTTxsEbQ7n9McH5gcd7+o/5//pbjtodXjIFFZE9ZgBivWOgkkQBpUGkGe7MV VdAnHmtlxfgapQIfPTS7Es5G6t2vkIYqiXLV/mXfODmYTdinf1yfQv5CR0FD++PClFs0 9H5V3EEfdCCNxnkMx2c4yFO7NGpmjgQmdFCo0pBwZ1qROOqkRT9HSvRI+mITcM7/tpwN hylSWzk22ibhIhUcSQhid8ox2GdhRvQny7E/Z0l9vUBHsNkAhtUkN3IBI6Dn5m8zP48U pBsSdw39+GgEoZ2woLgDdk1xECLXtIw+WOCko92GvX9pxo6/NKkrasns1IskZFyiCQXE Ii5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773750743; x=1774355543; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=khh7GPjJ3y6yrkZvajwZLcEiPn144UhSqF1UmlKQ5e0=; b=ORQIZET46QNbI8O0KomGJ39NFBYmHtYQnar0N2Q1yTmmE1TxrfwMDBO2kB5k4YS9Mr 8Y4DxYvJbFPbfQuMCDROezhhSPGGxsfe/tFToabKBQZOhsC8+/VkZ/4dNKZ7CTUuakXy h1DtYpSWz2DLwKG/MIjVX5Y9cXtzOagrWMh4eAzQzzHIlv3f9wyQ/VDFg8ygPOXjzCDX c7iqySGUX1W8blP4gmA6rJi0YpuwvpJzifW/jh4CU+sKL3fYssVcuO9C7QuwAMVrFiAq hxcLTknjqmOmS3uB/kUkcpwVXSUXFg0kxloIz7zMbITW63LVFQHQ9rQi4VytNVTNZuvt PtGg== X-Forwarded-Encrypted: i=1; AJvYcCX0OR13Duh+WFpvISoVlfCjuQ6kPATQO/poHgMRJm1TxImSxeMfvaAKSJsUdLLr6XqlcV8I/VG+xqE/l7k=@vger.kernel.org X-Gm-Message-State: AOJu0YwHbPkPBGS0yWWwT+GKhNbUCLG7HbcvkaVBI2HHYNcqPyZqncyp oOEdpHx1Y0UzzzgEkDDL4HANBnSaE3nwsW9PneLJ9FMR1TEEXEkRpo1S X-Gm-Gg: ATEYQzzqvIFy45Df+ePQWtG75+o8rDwZz6ncfqvqyq0QJtKG4y76/nM5CcdbjY6S5Zl f+YQDVvfWZeyiGWa2uGIdoTLkpDg2Jy2pn/BE1Q2Z2okhhtDzqFP8ahDzk/jls/1vZ5S/TSVU4q nCkJAGOb3OMU+i1evsWT6nRtPSjWG7VyEuxdFa9VYoCWNS5BCPGOqf7l/QnYBrbw2dI8ahr1lRx C2lr/mclZ8/+hduuNQimn+Zy3i3hWQSZhFtS0qK2CREIHog0885v+yNCGWe8puvN+mghTu5HaFo 5aZuqrwFqg/LeEj8kUderbBAWhKrhrnICzEta1m9qxZk1atKBITDU28JeIB/KMpg6uwwXQeQc1n 6FF9V+VpDx028czQqTNI8fojrzNZCSItB8gO3sxt0eXs7+XcwYx1tvILxgOqdCNx9pAsJvpsr1r gam73NQ/+5OEsdhz7qvZQpmL0JpdLbFeHTurY= X-Received: by 2002:a17:90b:1a8c:b0:35b:9ab6:1d65 with SMTP id 98e67ed59e1d1-35b9ab61fb4mr6960509a91.25.1773750742946; Tue, 17 Mar 2026 05:32:22 -0700 (PDT) Received: from google.com ([2402:7500:a44:85b:7148:e9a6:4d84:7769]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35a245b3e97sm4842851a91.10.2026.03.17.05.32.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 05:32:22 -0700 (PDT) Date: Tue, 17 Mar 2026 20:32:18 +0800 From: Kuan-Wei Chiu To: Zhihao Cheng Cc: richard@nod.at, akpm@linux-foundation.org, jserv@ccns.ncku.edu.tw, eleanor15x@gmail.com, marscheng@google.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] lib/list_sort: introduce list_sort_nonatomic() and remove dummy cmp() calls Message-ID: References: <20260315193900.218737-1-visitorckw@gmail.com> <7bb23ce1-a0f3-b576-ad79-c9fa746f11ed@huawei.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7bb23ce1-a0f3-b576-ad79-c9fa746f11ed@huawei.com> Hi Zhihao, On Tue, Mar 17, 2026 at 12:05:54PM +0800, Zhihao Cheng wrote: > 在 2026/3/16 3:39, Kuan-Wei Chiu 写道: > > 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. > > > > To clean up this API while ensuring behavior compatibility: > > 1. Introduce list_sort_nonatomic(), which explicitly calls > > cond_resched() internally when count overflows. > > 2. Remove the dummy cmp(priv, b, b) fallback for standard list_sort(), > > saving unnecessary function calls and improving determinism. > > 3. Convert the sole user (fs/ubifs/) to the new API. > > > > Note that ubifs still maintains cond_resched() inside its own > > comparison functions. This patch does not alter the frequency or timing > > of those scheduling points, guaranteeing no regressions for ubifs, > > while benefiting all other kernel users. > > > > Signed-off-by: Kuan-Wei Chiu > > --- > > fs/ubifs/gc.c | 4 +- > > fs/ubifs/replay.c | 2 +- > > include/linux/list_sort.h | 3 + > > lib/list_sort.c | 166 +++++++++++++++++++++----------------- > > 4 files changed, 100 insertions(+), 75 deletions(-) > > lgtm for UBIFS. > > Reviewed-by: Zhihao Cheng Thanks for your review! > > one small nit below. > > > > [...] > > diff --git a/include/linux/list_sort.h b/include/linux/list_sort.h > > index 453105f74e05..f7af29073d48 100644 > > --- a/include/linux/list_sort.h > > +++ b/include/linux/list_sort.h > > @@ -11,4 +11,7 @@ typedef int __attribute__((nonnull(2,3))) (*list_cmp_func_t)(void *, > > __attribute__((nonnull(2,3))) > > void list_sort(void *priv, struct list_head *head, list_cmp_func_t cmp); > > + > > +__attribute__((nonnull(2, 3))) > > +void list_sort_nonatomic(void *priv, struct list_head *head, list_cmp_func_t cmp); > > #endif > > diff --git a/lib/list_sort.c b/lib/list_sort.c > > index a310ecb7ccc0..788bfc26cf7b 100644 > > --- a/lib/list_sort.c > > +++ b/lib/list_sort.c > > @@ -3,6 +3,7 @@ > > #include > > #include > > #include > > +#include > > /* > > * Returns a list organized in an intermediate format suited > > @@ -47,7 +48,7 @@ static struct list_head *merge(void *priv, list_cmp_func_t cmp, > > */ > > __attribute__((nonnull(2,3,4,5))) > > static void merge_final(void *priv, list_cmp_func_t cmp, struct list_head *head, > > - struct list_head *a, struct list_head *b) > > + struct list_head *a, struct list_head *b, bool may_schedule) > > { > > struct list_head *tail = head; > > u8 count = 0; > > @@ -79,12 +80,11 @@ static void merge_final(void *priv, list_cmp_func_t cmp, struct list_head *head, > > /* > > * If the merge is highly unbalanced (e.g. the input is > > * already sorted), this loop may run many iterations. > > - * Continue callbacks to the client even though no > > - * element comparison is needed, so the client's cmp() > > - * routine can invoke cond_resched() periodically. > > + * If may_schedule is true, periodically invoke cond_resched() > > + * to avoid soft lockups. > > */ > > - if (unlikely(!++count)) > > - cmp(priv, b, b); > > + if (may_schedule && unlikely(!++count)) > > + cond_resched(); > The cond_resched() already has a judgment on whether to schedule out, so the > 'count' could be removed? However, I think keeping the u8 count rate-limiter makes more sense here due to the overhead difference. Evaluating unlikely(!++count) is essentially a single ALU instruction (register increment) and a zero-flag check, which has virtually zero cost. On the other hand, cond_resched() is a macro that does much more than a simple flag check. Depending on the kernel config, it often invokes __might_resched() (which reads current to check task_struct states, irq flags, etc.) and makes a call to __cond_resched(). Evaluating all of this heavy machinery on every single iteration of such a tight loop would probably introduce noticeable overhead. Actually, your comment brings up another thought I wanted to discuss. Since we are introducing list_sort_nonatomic(), I wonder if we should eventually move the cond_resched() out of UBIFS's cmp() functions entirely and handle it inside list_sort_nonatomic(). Right now, because the cmp() callback is inherently invoked at every step of the merge process, UBIFS ends up evaluating the cond_resched() macro every 3 or 4 pointer assignments during the main sort. While UBIFS needs to prevent soft lockups on huge lists, checking for resched at such a micro-granularity still feels excessive and likely leaves performance on the table. I didn't make this change in the current patch because I don't have the proper UBIFS hardware/setup to benchmark the performance difference, and I wanted to keep the current scheduling frequency exactly the same to guarantee no regressions. But I'd love to hear your thoughts on whether reducing the frequency and moving it out of UBIFS's cmp() is something worth doing in the future. Regards, Kuan-Wei