From: George Spelvin <lkml@sdf.org>
To: linux-kernel@vger.kernel.org, linux@rasmusvillemoes.dk, lkml@sdf.org
Cc: akpm@linux-foundation.org, andriy.shevchenko@linux.intel.com,
daniel.wagner@siemens.com, dchinner@redhat.com,
don.mullis@gmail.com, geert@linux-m68k.org, st5pub@yandex.ru
Subject: Re: [PATCH 4/5] lib/list_sort: Simplify and remove MAX_LIST_LENGTH_BITS
Date: Sun, 10 Mar 2019 22:29:24 GMT [thread overview]
Message-ID: <201903102229.x2AMTOoU009609@sdf.org> (raw)
In-Reply-To: <3194949c-6e04-da01-68df-60ae344db099@rasmusvillemoes.dk>
Rasmus Villemoes wrote:
> On 05/03/2019 04.06, George Spelvin wrote:
>> + * (Actually, it is always called with @a being the element which was
>> + * originally first, so it is not necessary to to distinguish the @a < @b
>> + * and @a == @b cases; the return value may be a simple boolean. But if
>> + * you ever *use* this freedom, be sure to update this comment to document
>> + * that code now depends on preserving this property!)
>
> This was and still is used at least by the block layer, and likely
> others as well. While 3110fc79606fb introduced a bunch of if() return -1
> else if () ... stuff, it still ends with a 0/1 result. Before
> 3110fc79606fb, it was even more obvious that this property was used.
Ah, thank you! I actually read through every list_sort caller in
the kernel to see if I could find anywhere that used it and couldn't,
but I didn't study this code carefully enough to see that it does
in the last step.
Since someone *does* use this, I'll change the comment signiicantly.
> Grepping around shows that this could probably be used in more places,
> gaining a cycle or two per cmp callback, e.g. xfs_buf_cmp. But that's of
> course outside the scope of this series.
The one that misled me at first was _xfs_buf_obj_cmp, which returns 0/1,
but that's not used by list_sort(). xfs_buf_cmp returns -1/0/+1.
As you might see from the comment around the cmp_func typedef,
there are other things that could be cleaned up if we did a pass
over all the call sites.
(I'm almost tempted to tell the compiler than cmp_func is const,
since it's supposed to be independent of the pointer frobbing that
list_sort does, but then I remember Henry Spencer's maxim about
lying to the compiler.)
next prev parent reply other threads:[~2019-03-10 22:30 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-09 2:17 [PATCH 0/5] lib/sort & lib/list_sort: faster and smaller George Spelvin
2019-02-21 6:30 ` [PATCH 1/5] lib/sort: Make swap functions more generic George Spelvin
[not found] ` <20190309140653.GO9224@smile.fi.intel.com>
2019-03-09 15:53 ` lkml
2019-03-09 20:19 ` Andrey Abramov
2019-03-14 9:29 ` Andy Shevchenko
2019-03-14 10:09 ` George Spelvin
2019-03-14 10:41 ` Geert Uytterhoeven
2019-03-14 11:53 ` George Spelvin
2019-03-14 12:18 ` Andy Shevchenko
2019-03-14 19:59 ` Andrey Abramov
2019-03-15 3:35 ` George Spelvin
2019-03-15 8:27 ` Geert Uytterhoeven
2019-03-14 10:11 ` George Spelvin
2019-03-09 21:02 ` George Spelvin
2019-03-13 21:23 ` Rasmus Villemoes
2019-03-13 22:02 ` Geert Uytterhoeven
2019-03-13 23:15 ` George Spelvin
2019-02-21 8:21 ` [PATCH 3/5] lib/sort: Avoid indirect calls to built-in swap George Spelvin
2019-02-21 8:21 ` [PATCH 2/5] lib/sort: Use more efficient bottom-up heapsort variant George Spelvin
2019-03-13 22:29 ` Rasmus Villemoes
2019-03-14 0:03 ` George Spelvin
2019-03-14 0:15 ` Rasmus Villemoes
2019-03-05 3:06 ` [PATCH 4/5] lib/list_sort: Simplify and remove MAX_LIST_LENGTH_BITS George Spelvin
2019-03-10 21:54 ` Rasmus Villemoes
2019-03-10 22:29 ` George Spelvin [this message]
2019-03-14 9:10 ` Andy Shevchenko
2019-03-14 9:41 ` George Spelvin
2019-03-15 4:33 ` George Spelvin
2019-03-15 8:20 ` Geert Uytterhoeven
2019-03-15 10:23 ` George Spelvin
2019-03-15 12:57 ` Geert Uytterhoeven
2019-03-15 16:59 ` George Spelvin
2019-03-15 17:47 ` Geert Uytterhoeven
2019-03-15 18:53 ` Andrey Abramov
2019-03-15 19:06 ` Andy Shevchenko
2019-03-15 19:23 ` Andrey Abramov
2019-03-15 19:56 ` Andy Shevchenko
2019-03-16 3:49 ` George Spelvin
2019-03-05 5:58 ` [PATCH 5/5] lib/list_sort: Optimize number of calls to comparison function George Spelvin
2019-03-13 23:28 ` Rasmus Villemoes
2019-03-14 1:58 ` George Spelvin
2019-06-21 23:12 ` Rasmus Villemoes
2019-12-08 8:01 ` George Spelvin
2019-03-15 19:54 ` [PATCH 0/5] lib/sort & lib/list_sort: faster and smaller Andrey Abramov
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=201903102229.x2AMTOoU009609@sdf.org \
--to=lkml@sdf.org \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=daniel.wagner@siemens.com \
--cc=dchinner@redhat.com \
--cc=don.mullis@gmail.com \
--cc=geert@linux-m68k.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=st5pub@yandex.ru \
/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.