mbox series

[0/3] Enhance min heap API with non-inline functions and optimizations

Message ID 20241013184703.659652-1-visitorckw@gmail.com (mailing list archive)
Headers show
Series Enhance min heap API with non-inline functions and optimizations | expand

Message

Kuan-Wei Chiu Oct. 13, 2024, 6:47 p.m. UTC
Add non-inline versions of the min heap API functions in lib/min_heap.c
and updates all users outside of kernel/events/core.c to use these
non-inline versions. Additionally, it micro-optimizes the efficiency of
the min heap by pre-scaling the counter, following the same approach as
in lib/sort.c. Documentation for the min heap API has also been added
to the core-api section.

Regards,
Kuan-Wei

Kuan-Wei Chiu (3):
  lib/min_heap: Introduce non-inline versions of min heap API functions
  lib min_heap: Optimize min heap by prescaling counters for better
    performance
  Documentation/core-api: Add min heap API introduction

 Documentation/core-api/index.rst    |   1 +
 Documentation/core-api/min_heap.rst | 291 ++++++++++++++++++++++++++++
 drivers/md/bcache/Kconfig           |   1 +
 drivers/md/dm-vdo/Kconfig           |   1 +
 fs/bcachefs/Kconfig                 |   1 +
 include/linux/min_heap.h            | 202 ++++++++++++-------
 kernel/events/core.c                |   6 +-
 lib/Kconfig                         |   3 +
 lib/Kconfig.debug                   |   1 +
 lib/Makefile                        |   1 +
 lib/min_heap.c                      |  70 +++++++
 11 files changed, 508 insertions(+), 70 deletions(-)
 create mode 100644 Documentation/core-api/min_heap.rst
 create mode 100644 lib/min_heap.c

Comments

Kent Overstreet Oct. 13, 2024, 11:05 p.m. UTC | #1
On Mon, Oct 14, 2024 at 02:47:00AM GMT, Kuan-Wei Chiu wrote:
> Add non-inline versions of the min heap API functions in lib/min_heap.c
> and updates all users outside of kernel/events/core.c to use these
> non-inline versions. Additionally, it micro-optimizes the efficiency of
> the min heap by pre-scaling the counter, following the same approach as
> in lib/sort.c. Documentation for the min heap API has also been added
> to the core-api section.

Nice, has it been tested - do you need a CI account?

I'd like to start seeing links to CI results in patch postings (and I
need to tweak the CI to add git fetch links, as well).

Coly, there's ktest tests for bcache that need to be updated - if you
wanted to take that on it'd be lovely to consolidate how our subsystems
are getting tested; I can give you a CI account as well.

> 
> Regards,
> Kuan-Wei
> 
> Kuan-Wei Chiu (3):
>   lib/min_heap: Introduce non-inline versions of min heap API functions
>   lib min_heap: Optimize min heap by prescaling counters for better
>     performance
>   Documentation/core-api: Add min heap API introduction
> 
>  Documentation/core-api/index.rst    |   1 +
>  Documentation/core-api/min_heap.rst | 291 ++++++++++++++++++++++++++++
>  drivers/md/bcache/Kconfig           |   1 +
>  drivers/md/dm-vdo/Kconfig           |   1 +
>  fs/bcachefs/Kconfig                 |   1 +
>  include/linux/min_heap.h            | 202 ++++++++++++-------
>  kernel/events/core.c                |   6 +-
>  lib/Kconfig                         |   3 +
>  lib/Kconfig.debug                   |   1 +
>  lib/Makefile                        |   1 +
>  lib/min_heap.c                      |  70 +++++++
>  11 files changed, 508 insertions(+), 70 deletions(-)
>  create mode 100644 Documentation/core-api/min_heap.rst
>  create mode 100644 lib/min_heap.c
Kuan-Wei Chiu Oct. 13, 2024, 11:27 p.m. UTC | #2
On Sun, Oct 13, 2024 at 07:05:38PM -0400, Kent Overstreet wrote:
> On Mon, Oct 14, 2024 at 02:47:00AM GMT, Kuan-Wei Chiu wrote:
> > Add non-inline versions of the min heap API functions in lib/min_heap.c
> > and updates all users outside of kernel/events/core.c to use these
> > non-inline versions. Additionally, it micro-optimizes the efficiency of
> > the min heap by pre-scaling the counter, following the same approach as
> > in lib/sort.c. Documentation for the min heap API has also been added
> > to the core-api section.
> 
> Nice, has it been tested - do you need a CI account?
> 
> I'd like to start seeing links to CI results in patch postings (and I
> need to tweak the CI to add git fetch links, as well).
>
It would be nice to have a CI account to test my patches. Is there any
guide available on how to use it?

Regards,
Kuan-Wei

> Coly, there's ktest tests for bcache that need to be updated - if you
> wanted to take that on it'd be lovely to consolidate how our subsystems
> are getting tested; I can give you a CI account as well.
> 
> > 
> > Regards,
> > Kuan-Wei
> > 
> > Kuan-Wei Chiu (3):
> >   lib/min_heap: Introduce non-inline versions of min heap API functions
> >   lib min_heap: Optimize min heap by prescaling counters for better
> >     performance
> >   Documentation/core-api: Add min heap API introduction
> > 
> >  Documentation/core-api/index.rst    |   1 +
> >  Documentation/core-api/min_heap.rst | 291 ++++++++++++++++++++++++++++
> >  drivers/md/bcache/Kconfig           |   1 +
> >  drivers/md/dm-vdo/Kconfig           |   1 +
> >  fs/bcachefs/Kconfig                 |   1 +
> >  include/linux/min_heap.h            | 202 ++++++++++++-------
> >  kernel/events/core.c                |   6 +-
> >  lib/Kconfig                         |   3 +
> >  lib/Kconfig.debug                   |   1 +
> >  lib/Makefile                        |   1 +
> >  lib/min_heap.c                      |  70 +++++++
> >  11 files changed, 508 insertions(+), 70 deletions(-)
> >  create mode 100644 Documentation/core-api/min_heap.rst
> >  create mode 100644 lib/min_heap.c
>
Coly Li Oct. 14, 2024, 1:18 a.m. UTC | #3
> 2024年10月14日 07:05,Kent Overstreet <kent.overstreet@linux.dev> 写道:
> 
> On Mon, Oct 14, 2024 at 02:47:00AM GMT, Kuan-Wei Chiu wrote:
>> Add non-inline versions of the min heap API functions in lib/min_heap.c
>> and updates all users outside of kernel/events/core.c to use these
>> non-inline versions. Additionally, it micro-optimizes the efficiency of
>> the min heap by pre-scaling the counter, following the same approach as
>> in lib/sort.c. Documentation for the min heap API has also been added
>> to the core-api section.
> 
> Nice, has it been tested - do you need a CI account?
> 
> I'd like to start seeing links to CI results in patch postings (and I
> need to tweak the CI to add git fetch links, as well).
> 
> Coly, there's ktest tests for bcache that need to be updated - if you
> wanted to take that on it'd be lovely to consolidate how our subsystems
> are getting tested; I can give you a CI account as well.

Yes, please do. And let me take a look at the test cases for bcache part.

Thanks.

Coly Li
Kent Overstreet Oct. 14, 2024, 1:23 a.m. UTC | #4
On Mon, Oct 14, 2024 at 09:18:33AM GMT, Coly Li wrote:
> 
> 
> > 2024年10月14日 07:05,Kent Overstreet <kent.overstreet@linux.dev> 写道:
> > 
> > On Mon, Oct 14, 2024 at 02:47:00AM GMT, Kuan-Wei Chiu wrote:
> >> Add non-inline versions of the min heap API functions in lib/min_heap.c
> >> and updates all users outside of kernel/events/core.c to use these
> >> non-inline versions. Additionally, it micro-optimizes the efficiency of
> >> the min heap by pre-scaling the counter, following the same approach as
> >> in lib/sort.c. Documentation for the min heap API has also been added
> >> to the core-api section.
> > 
> > Nice, has it been tested - do you need a CI account?
> > 
> > I'd like to start seeing links to CI results in patch postings (and I
> > need to tweak the CI to add git fetch links, as well).
> > 
> > Coly, there's ktest tests for bcache that need to be updated - if you
> > wanted to take that on it'd be lovely to consolidate how our subsystems
> > are getting tested; I can give you a CI account as well.
> 
> Yes, please do. And let me take a look at the test cases for bcache part.

Send me the username you want and your ssh pubkey

bcache tests are here:
https://evilpiepirate.org/git/ktest.git/tree/tests/bcache

they are _old_, and need a lot of updating - you'll probably want to hit
me up on IRC
Kent Overstreet Oct. 14, 2024, 2:08 a.m. UTC | #5
On Mon, Oct 14, 2024 at 07:27:06AM GMT, Kuan-Wei Chiu wrote:
> On Sun, Oct 13, 2024 at 07:05:38PM -0400, Kent Overstreet wrote:
> > On Mon, Oct 14, 2024 at 02:47:00AM GMT, Kuan-Wei Chiu wrote:
> > > Add non-inline versions of the min heap API functions in lib/min_heap.c
> > > and updates all users outside of kernel/events/core.c to use these
> > > non-inline versions. Additionally, it micro-optimizes the efficiency of
> > > the min heap by pre-scaling the counter, following the same approach as
> > > in lib/sort.c. Documentation for the min heap API has also been added
> > > to the core-api section.
> > 
> > Nice, has it been tested - do you need a CI account?
> > 
> > I'd like to start seeing links to CI results in patch postings (and I
> > need to tweak the CI to add git fetch links, as well).
> >
> It would be nice to have a CI account to test my patches. Is there any
> guide available on how to use it?

I give you a config file to edit, it watches your git branch(es), you
watch dashboard