All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 RESEND 0/6] lib: rework bitmap_parselist and tests
@ 2019-03-25 21:07 Yury Norov
  2019-03-25 21:07 ` [PATCH 1/6] bitmap_parselist: don't calculate length of the input string Yury Norov
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Yury Norov @ 2019-03-25 21:07 UTC (permalink / raw)
  To: Andrew Morton, Andy Shevchenko, Rasmus Villemoes, Arnd Bergmann,
	Kees Cook, Matthew Wilcox, Tetsuo Handa
  Cc: Yury Norov, Yury Norov, linux-kernel

bitmap_parselist has been evolved from a pretty simple idea for long and
now lacks for refactoring. It is not structured, has nested loops and a
set of opaque-named variables.

Things are more complicated than they may be because bitmap_parselist()
is a part of user interface, and its behavior should not change.

In this patchset
 - __bitmap_parselist() is reworked (patches 2 and 3);
 - time measurement in test_bitmap_parselist switched to ktime_get
   (patch 4);
 - new tests introduced (patch 5), and
 - bitmap_parselist_user() testing enabled with the same testset as
   bitmap_parselist() (patch 6).

Patches 1 and 4 are fixes and may be applied separately.

v1: https://lkml.org/lkml/2018/12/23/50
v2: https://www.spinics.net/lists/kernel/msg3048976.html
v2 RESEND: rebased on next-20190325 and retested. 

Yury Norov (6):
  bitmap_parselist: don't calculate length of the input string
  bitmap_parselist: move non-parser logic to helpers
  bitmap_parselist: rework input string parser
  lib/test_bitmap: switch test_bitmap_parselist to ktime_get()
  lib/test_bitmap: add testcases for bitmap_parselist
  lib/test_bitmap: add tests for bitmap_parselist_user

 lib/bitmap.c      | 294 ++++++++++++++++++++++++++++++----------------
 lib/test_bitmap.c |  67 +++++++++--
 2 files changed, 245 insertions(+), 116 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread
* [PATCH v2 0/5] lib: rework bitmap_parselist and tests
@ 2019-02-20  8:36 Yury Norov
  2019-02-20  8:37 ` [PATCH 1/6] bitmap_parselist: don't calculate length of the input string Yury Norov
  0 siblings, 1 reply; 14+ messages in thread
From: Yury Norov @ 2019-02-20  8:36 UTC (permalink / raw)
  To: Andrew Morton, Andy Shevchenko, Arnd Bergmann, Dmitry Torokhov,
	Kees Cook, Matthew Wilcox, Michael Ellerman, Rasmus Villemoes,
	Tetsuo Handa
  Cc: Yury Norov, linux-kernel, Yury Norov

bitmap_parselist has been evolved from a pretty simple idea for long and
now lacks for refactoring. It is not structured, has nested loops and a
set of opaque-named variables. All this leads to extremely hard
understanding of the code. Once during the optimization of it I missed a
scenario which leads to kernel hangup. Tetsuo Handa spotted this and found
it simpler to rewrite the code instead fixing it. (Though, that attempt
had some flaws.)
https://lkml.org/lkml/2018/4/1/93 

Things are more complicated than they may be because bitmap_parselist()
is part of user interface, and its behavior should not change.

In this patchset 
 - __bitmap_parselist() is reworked (patches 2 and 3);
 - time measurement in test_bitmap_parselist switched to ktime_get
   (patch 4);
 - new tests introduced (patch 5), and
 - bitmap_parselist_user() testing enabled with the same testset as
   bitmap_parselist() (patch 6).

Patch 1 is a fix and may be applied separately.

V1: https://lkml.org/lkml/2018/12/23/50
v2: - use PTR_ERR() and ERR_PTR() where appropriate;
    - fix parser logic (last byte of string handling);
    - tests for bitmap_parselist_user() in patch 5.

Yury Norov (4):
  bitmap_parselist: don't calculate length of the input string
  bitmap_parselist: move non-parser logic to helpers
  bitmap_parselist: rework input string parser
  lib/test_bitmap: switch test_bitmap_parselist to ktime_get()
  lib/test_bitmap: add testcases for bitmap_parselist
  lib/test_bitmap: add tests for bitmap_parselist_user

 lib/bitmap.c      | 293 ++++++++++++++++++++++++++++++----------------
 lib/test_bitmap.c |  67 +++++++++--
 2 files changed, 245 insertions(+), 115 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-03-26 21:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-25 21:07 [PATCH v2 RESEND 0/6] lib: rework bitmap_parselist and tests Yury Norov
2019-03-25 21:07 ` [PATCH 1/6] bitmap_parselist: don't calculate length of the input string Yury Norov
2019-03-26 10:09   ` Andy Shevchenko
2019-03-25 21:07 ` [PATCH 2/6] bitmap_parselist: move non-parser logic to helpers Yury Norov
2019-03-25 21:54   ` Andrew Morton
2019-03-25 21:07 ` [PATCH 3/6] bitmap_parselist: rework input string parser Yury Norov
2019-03-26 10:10   ` Andy Shevchenko
2019-03-26 21:09     ` Yuri Norov
2019-03-26 21:58       ` Mike Travis
2019-03-25 21:07 ` [PATCH 4/6] lib/test_bitmap: switch test_bitmap_parselist to ktime_get() Yury Norov
2019-03-25 21:07 ` [PATCH 5/6] lib/test_bitmap: add testcases for bitmap_parselist Yury Norov
2019-03-25 21:07 ` [PATCH 6/6] lib/test_bitmap: add tests for bitmap_parselist_user Yury Norov
2019-03-26 10:12   ` Andy Shevchenko
  -- strict thread matches above, loose matches on Subject: below --
2019-02-20  8:36 [PATCH v2 0/5] lib: rework bitmap_parselist and tests Yury Norov
2019-02-20  8:37 ` [PATCH 1/6] bitmap_parselist: don't calculate length of the input string Yury Norov

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.