[PATCH v3 1/2] rcu: Enable rcu_normal_wake_from_gp on small systems

2025-07-02 Thread Uladzislau Rezki (Sony)
: 33463 4 - 4 : 20669 5 - 5 : 2766 6 - 6 : 183 ... Reviewed-by: Joel Fernandes Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 14 +++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c

[PATCH v3 2/2] Documentation/kernel-parameters: Update rcu_normal_wake_from_gp doc

2025-07-02 Thread Uladzislau Rezki (Sony)
Update the documentation about rcu_normal_wake_from_gp parameter. Reviewed-by: Joel Fernandes Signed-off-by: Uladzislau Rezki (Sony) --- Documentation/admin-guide/kernel-parameters.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel

[PATCH v2 2/2] Documentation/kernel-parameters: Update rcu_normal_wake_from_gp doc

2025-06-11 Thread Uladzislau Rezki (Sony)
Update the documentation about rcu_normal_wake_from_gp parameter. Signed-off-by: Uladzislau Rezki (Sony) --- Documentation/admin-guide/kernel-parameters.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation

[PATCH v2 1/2] rcu: Enable rcu_normal_wake_from_gp on small systems

2025-06-11 Thread Uladzislau Rezki (Sony)
: 33463 4 - 4 : 20669 5 - 5 : 2766 6 - 6 : 183 ... Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 14 +++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e8a4b720d7d2

[PATCH 3/3] Documentation/kernel-parameters: Update rcu_normal_wake_from_gp doc

2025-06-10 Thread Uladzislau Rezki (Sony)
Update the documentation about rcu_normal_wake_from_gp parameter. Signed-off-by: Uladzislau Rezki (Sony) --- Documentation/admin-guide/kernel-parameters.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin

[PATCH 2/3] rcu: Enable rcu_normal_wake_from_gp on small systems

2025-06-10 Thread Uladzislau Rezki (Sony)
- 4 : 20669 5 - 5 : 2766 6 - 6 : 183 ... Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 14d4499c6fc3..c0e0b38a08dc 100644 --- a/kernel/rcu

[PATCH 1/3] rcu: Return early if callback is not specified

2025-06-10 Thread Uladzislau Rezki (Sony)
to help identify a faulty caller. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 4 1 file changed, 4 insertions(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e8a4b720d7d2..14d4499c6fc3 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3072,6 +3072,10

[PATCH] tools/memory-model/Documentation: Fix SRCU section in explanation.txt

2025-04-22 Thread Uladzislau Rezki (Sony)
task that invoked srcu_read_lock(). Signed-off-by: Uladzislau Rezki (Sony) --- tools/memory-model/Documentation/explanation.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/memory-model/Documentation/explanation.txt b/tools/memory-model/Documentation/explanation.txt

[PATCH v1 2/2] mm/slab/kvfree_rcu: Switch to WQ_MEM_RECLAIM wq

2025-02-28 Thread Uladzislau Rezki (Sony)
type of wq because it is designed for this purpose. Cc: Cc: Greg Kroah-Hartman Cc: Keith Busch Closes: https://www.spinics.net/lists/kernel/msg5563270.html Fixes: 6c6c47b063b5 ("mm, slab: call kvfree_rcu_barrier() from kmem_cache_destroy()"), Reported-by: Keith Busch Signed-off-by: Ul

[PATCH v1 1/2] kunit, slub: Add test_kfree_rcu_wq_destroy use case

2025-02-28 Thread Uladzislau Rezki (Sony)
warning, it is passed. Reviewed-by: Keith Busch Co-developed-by: Vlastimil Babka Signed-off-by: Uladzislau Rezki (Sony) --- lib/slub_kunit.c | 59 1 file changed, 59 insertions(+) diff --git a/lib/slub_kunit.c b/lib/slub_kunit.c index f11691315c2f

[PATCH v4 3/3] rcu: Use _full() API to debug synchronize_rcu()

2025-02-27 Thread Uladzislau Rezki (Sony)
full() and get_state_synchronize_rcu_full() APIs, which use separate variables for expedited and normal states. Link: https://lore.kernel.org/lkml/Z5ikQeVmVdsWQrdD@pc636/T/ Fixes: 988f569ae041 ("rcu: Reduce synchronize_rcu() latency") Reported-by: cheung wall Signed-off-by: Uladzislau Rezki (Sony)

[PATCH v4 1/3] rcutorture: Allow a negative value for nfakewriters

2025-02-27 Thread Uladzislau Rezki (Sony)
pus() during torture initialization. Reviewed-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/rcutorture.c | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index e01c0022c175..65095

[PATCH v4 2/3] rcu: Update TREE05.boot to test normal synchronize_rcu()

2025-02-27 Thread Uladzislau Rezki (Sony)
to 1, because it is specifically for a normal synchronize_rcu() testing, also a newly added parameter which is "rcu_normal_wake_from_gp" is set to 1 also. That prevents interaction with other callbacks in a system. Reviewed-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony)

[PATCH v3 3/3] rcu: Use _full() API to debug synchronize_rcu()

2025-02-25 Thread Uladzislau Rezki (Sony)
l.org/lkml/Z5ikQeVmVdsWQrdD@pc636/T/ Fixes: 988f569ae041 ("rcu: Reduce synchronize_rcu() latency") Reported-by: cheung wall Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate_wait.h | 3 +++ kernel/rcu/tree.c | 8 +++- 2 files changed, 6 insertions(+), 5 deletions(-)

[PATCH v3 2/3] rcu: Update TREE05.boot to test normal synchronize_rcu()

2025-02-25 Thread Uladzislau Rezki (Sony)
to 1, because it is specifically for a normal synchronize_rcu() testing, also a newly added parameter which is "rcu_normal_wake_from_gp" is set to 1 also. That prevents interaction with other callbacks in a system. Reviewed-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony)

[PATCH v3 1/3] rcutorture: Allow a negative value for nfakewriters

2025-02-25 Thread Uladzislau Rezki (Sony)
pus() during torture initialization. Reviewed-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/rcutorture.c | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index d98b3bd6d91f..f3762

[PATCH v2 2/3] rcu: Update TREE05.boot to test normal synchronize_rcu()

2025-02-24 Thread Uladzislau Rezki (Sony)
to 1, because it is specifically for a normal synchronize_rcu() testing, also a newly added parameter which is "rcu_normal_wake_from_gp" is set to 1 also. That prevents interaction with other callbacks in a system. Reviewed-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony)

[PATCH v2 1/3] rcutorture: Allow a negative value for nfakewriters

2025-02-24 Thread Uladzislau Rezki (Sony)
pus() during torture initialization. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/rcutorture.c | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index d98b3bd6d91f..f376262532ce 100644 --- a/kernel/rc

[PATCH v2 3/3] rcu: Use _full() API to debug synchronize_rcu()

2025-02-24 Thread Uladzislau Rezki (Sony)
l.org/lkml/Z5ikQeVmVdsWQrdD@pc636/T/ Fixes: 988f569ae041 ("rcu: Reduce synchronize_rcu() latency") Reported-by: cheung wall Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate_wait.h | 4 kernel/rcu/tree.c | 8 +++- 2 files changed, 7 insertions(+), 5 deleti

[PATCH 4/4] rcu: Use _full() API to debug synchronize_rcu()

2025-01-23 Thread Uladzislau Rezki (Sony)
Switch for using of get_state_synchronize_rcu_full() and poll_state_synchronize_rcu_full() pair for debug a normal synchronize_rcu() call. Just using "not" full APIs to identify if a grace period is passed or not might lead to a false kernel splat. Signed-off-by: Uladzislau R

[PATCH 2/4] torture: Remove CONFIG_NR_CPUS configuration

2025-01-23 Thread Uladzislau Rezki (Sony)
This configuration specifies the maximum number of CPUs which is set to 8. The problem is that it can not be overwritten for something higher. Remove that configuration for TREE05, so it is possible to run the torture test on as many CPUs as many system has. Signed-off-by: Uladzislau Rezki (Sony

[PATCH 3/4] rcu: Update TREE05.boot to test normal synchronize_rcu()

2025-01-23 Thread Uladzislau Rezki (Sony)
to 1, because it is specifically for a normal synchronize_rcu() testing, also a newly added parameter which is "rcu_normal_wake_from_gp" is set to 1 also. That prevents interaction with other callbacks in a system. Signed-off-by: Uladzislau Rezki (Sony) --- tools/testing/selftests/rcutortu

[PATCH 1/4] rcutorture: Allow a negative value for nfakewriters

2025-01-23 Thread Uladzislau Rezki (Sony)
pus() during torture initialization. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/rcutorture.c | 4 1 file changed, 4 insertions(+) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index d26fb1d33ed9..6bc161e1e8ac 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcu

[GIT PULL] RCU changes for v6.14

2025-01-17 Thread Uladzislau Rezki (Sony)
Hi Linus, Please pull the latest RCU git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux.git tags/rcu.release.v6.14 # HEAD: 4b5c2205526cc1579b840893b98eb7545220f7cf: Merge branches 'fixes.2024.12.14a', 'rcutorture.2024.12.14a', 'srcu.2024.12.14a' and 'torture-test.2024.12.1

[PATCH v2 3/5] rcu/kvfree: Adjust names passed into trace functions

2024-12-12 Thread Uladzislau Rezki (Sony)
ot; string as a first argument. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index b3853ae6e869..6ab21655c248 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3379,

[PATCH v2 5/5] mm/slab: Move kvfree_rcu() into SLAB

2024-12-12 Thread Uladzislau Rezki (Sony)
Move kvfree_rcu() functionality to the slab_common.c file. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate.h | 1 - include/linux/slab.h | 1 + kernel/rcu/tree.c| 879 -- mm/slab_common.c | 880

[PATCH v2 4/5] rcu/kvfree: Adjust a shrinker name

2024-12-12 Thread Uladzislau Rezki (Sony)
Rename "rcu-kfree" to "slab-kvfree-rcu" since it goes to the slab_common.c file soon. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 6ab21655c248.

[PATCH v2 2/5] rcu/kvfree: Move some functions under CONFIG_TINY_RCU

2024-12-12 Thread Uladzislau Rezki (Sony)
. Therefore, those functions name will not conflict when a kernel is compiled for CONFIG_TINY_RCU flavor. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 90 +-- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/kernel/rcu

[PATCH v2 1/5] rcu/kvfree: Initialize kvfree_rcu() separately

2024-12-12 Thread Uladzislau Rezki (Sony)
Introduce a separate initialization of kvfree_rcu() functionality. For such purpose a kfree_rcu_batch_init() is renamed to a kvfree_rcu_init() and it is invoked from the main.c right after rcu_init() is done. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate.h | 1 + init/main.c

[PATCH v2 0/5] Move kvfree_rcu() into SLAB (v2)

2024-12-12 Thread Uladzislau Rezki (Sony)
move. Uladzislau Rezki (Sony) (5): rcu/kvfree: Initialize kvfree_rcu() separately rcu/kvfree: Move some functions under CONFIG_TINY_RCU rcu/kvfree: Adjust names passed into trace functions rcu/kvfree: Adjust a shrinker name mm/slab: Move kvfree_rcu() into SLAB include/linux/slab.h | 1

[RFC v1 4/5] mm/slab: Copy a function of kvfree_rcu() initialization

2024-12-10 Thread Uladzislau Rezki (Sony)
As a final step an initialization of kvfree_rcu() functionality is copied into slab_common.c from the tree.c file as well as shrinker related code. The function is temporary marked as "__maybe_unused" to eliminate a compiler warnings. Signed-off-by: Uladzislau Rezki (Sony) --- mm/sla

[RFC v1 5/5] mm/slab: Move kvfree_rcu() into SLAB

2024-12-10 Thread Uladzislau Rezki (Sony)
kernel/rcu/tree.c file; - Remove a temporary solution to handle freeing ptrs. after GP; - Remove "__maybe_unused" from the slab_common.c file; - Do not export main functionality for CONFIG_TINY_RCU case. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/slab.h | 1 + i

[RFC v1 3/5] mm/slab: Copy internal functions of kvfree_rcu()

2024-12-10 Thread Uladzislau Rezki (Sony)
marked as "__maybe_unused" in the slab_common.c file. Signed-off-by: Uladzislau Rezki (Sony) --- mm/slab_common.c | 507 +++ 1 file changed, 507 insertions(+) diff --git a/mm/slab_common.c b/mm/slab_common.c index a249fdb0d92e..e7e1d5b5f

[RFC v1 2/5] mm/slab: Copy main data structures of kvfree_rcu()

2024-12-10 Thread Uladzislau Rezki (Sony)
This patch copies main data structures of kvfree_rcu() API from the kernel/rcu/tree.c into slab_common.c file. Later on, it will be removed from the tree.c. Signed-off-by: Uladzislau Rezki (Sony) --- mm/slab_common.c | 95 1 file changed, 95

[RFC v1 1/5] rcu/kvfree: Temporary reclaim over call_rcu()

2024-12-10 Thread Uladzislau Rezki (Sony)
variant; - adds an rcu_barrier() call to the kvfree_rcu_barrier(). Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 27 +++ 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index b1f883fcd918..ab24229dfa73

[RFC v1 0/5] Move kvfree_rcu() into SLAB

2024-12-10 Thread Uladzislau Rezki (Sony)
Rezki (Sony) (5): rcu/kvfree: Temporary reclaim over call_rcu() mm/slab: Copy main data structures of kvfree_rcu() mm/slab: Copy internal functions of kvfree_rcu() mm/slab: Copy a function of kvfree_rcu() initialization mm/slab: Move kvfree_rcu() into SLAB include/linux/slab.h | 1 + init

[PATCH v2 1/2] rcuscale: Do a proper cleanup if kfree_scale_init() fails

2024-11-13 Thread Uladzislau Rezki (Sony)
instead of doing a proper unwinding. Fix it by jumping to "unwind" label instead of returning -1. Reviewed-by: Paul E. McKenney Reported-by: Dan Carpenter Closes: https://lore.kernel.org/rcu/ZxfTrHuEGtgnOYWp@pc636/T/ Fixes: 084e04fff160 ("rcuscale: Add laziness and kfree t

[PATCH v2 2/2] rcuscale: Remove redundant WARN_ON_ONCE() splat

2024-11-13 Thread Uladzislau Rezki (Sony)
-by: Uladzislau Rezki (Sony) --- kernel/rcu/rcuscale.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/rcu/rcuscale.c b/kernel/rcu/rcuscale.c index d360fa44b234..0f3059b1b80d 100644 --- a/kernel/rcu/rcuscale.c +++ b/kernel/rcu/rcuscale.c @@ -889,14 +889,12 @@ kfree_scale_init(void

[PATCH 2/2] rcuscale: Remove redundant WARN_ON_ONCE() splat

2024-10-25 Thread Uladzislau Rezki (Sony)
There are two places where WARN_ON_ONCE() is called two times in the error paths. One which is encapsulated into if() condition and another one, which is unnecessary, is placed in the brackets. Remove an extra WARN_ON_ONCE() splat which is in brackets. Signed-off-by: Uladzislau Rezki (Sony

[PATCH 1/2] rcuscale: Do a proper cleanup if kfree_scale_init() fails

2024-10-24 Thread Uladzislau Rezki (Sony)
instead of doing a proper unwinding. Fix it by jumping to "unwind" label instead of returning -1. Reported-by: Dan Carpenter Closes: https://lore.kernel.org/rcu/ZxfTrHuEGtgnOYWp@pc636/T/ Fixes: 084e04fff160 ("rcuscale: Add laziness and kfree tests") Signed-off-by: Uladzislau R

[PATCH] rcu/kvfree: Fix data-race in __mod_timer / kvfree_call_rcu

2024-10-22 Thread Uladzislau Rezki (Sony)
r.appspotmail.com Link: https://lore.kernel.org/lkml/ZxZ68KmHDQYU0yfD@pc636/T/ Fixes: 8fc5494ad5fa ("rcu/kvfree: Move need_offload_krc() out of krcp->lock") Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-

[PATCH] rcu/kvfree: Refactor kvfree_rcu_queue_batch()

2024-09-30 Thread Uladzislau Rezki (Sony)
to complete an offloading. Link: https://lore.kernel.org/lkml/ZvWUt2oyXRsvJRNc@pc636/T/ Suggested-by: Linus Torvalds Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c

[PATCH v2 0/2] Some enhancement for kvfree_rcu_mightsleep()

2024-09-04 Thread Uladzislau Rezki (Sony)
. The differecne between v1 -> v2: - Drop "Support dynamic rcu_head for single argument objects" patch; - Use cond_synchronize_rcu_full() in a slow path. Uladzislau Rezki (Sony) (2): rcu/kvfree: Use polled API in a slow path rcu/kvfree: Switch to expedited version in slow path

[PATCH v2 1/2] rcu/kvfree: Use polled API in a slow path

2024-09-04 Thread Uladzislau Rezki (Sony)
from this. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e641cc681901..182772494cb0 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3789,6 +3789,7

[PATCH v2 2/2] rcu/kvfree: Switch to expedited version in slow path

2024-09-04 Thread Uladzislau Rezki (Sony)
synchronize_rcu_expedited() act like a regular synchronize_rcu(), so no harm done to them. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 182772494cb0..87a64fcffa7f 100644

[PATCH v2 4/5] kvfree_rcu: Update "monitor_todo" once a batch is started

2021-04-15 Thread Uladzislau Rezki (Sony)
. There is no reason in setting it force and back. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 3ddc9dc97487..17c128d93825 100644 --- a/kernel/rcu/tree.c +++ b/kernel/r

[PATCH v2 5/5] kvfree_rcu: Use kfree_rcu_monitor() instead of open-coded variant

2021-04-15 Thread Uladzislau Rezki (Sony)
To queue a new batch we have a kfree_rcu_monitor() function that checks "monitor_todo" var. and invokes kfree_rcu_drain_unlock() to start a new batch after a GP. Get rid of open-coded case by switching it to the separate function. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/

[PATCH v2 3/5] kvfree_rcu: Add a bulk-list check when a scheduler is run

2021-04-15 Thread Uladzislau Rezki (Sony)
s well as "krcp->bkvhead[1]". So, we have to queue the "monitor work" if _any_ corresponding channel is not empty. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kern

[PATCH v2 2/5] kvfree_rcu: Use [READ/WRITE]_ONCE() macros to access to nr_bkv_objs

2021-04-15 Thread Uladzislau Rezki (Sony)
nr_bkv_objs represents the counter of objects in the page-cache. Accessing to it requires taking the lock. Switch to READ_ONCE() WRITE_ONCE() macros to provide an atomic access to that counter. A shrinker is one of the user of it. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c

[PATCH v2 1/5] kvfree_rcu: Release a page cache under memory pressure

2021-04-15 Thread Uladzislau Rezki (Sony)
Rezki (Sony) Signed-off-by: Uladzislau Rezki (Sony) Signed-off-by: Zqiang --- .../admin-guide/kernel-parameters.txt | 5 ++ kernel/rcu/tree.c | 82 +-- 2 files changed, 78 insertions(+), 9 deletions(-) diff --git a/Documentation/admin-guide

[PATCH v2 0/5] kvfree_rcu() miscellaneous fixes

2021-04-15 Thread Uladzislau Rezki (Sony)
s in get_cached_bnode()/put_cached_bnode() it is protected by the lock. - Capitalize the word following by ":" in commit messages. Uladzislau Rezki (Sony) (4): [1] kvfree_rcu: Use [READ/WRITE]_ONCE() macros to access to nr_bkv_objs [2] kvfree_rcu: Add a bulk-list check when a schedul

[PATCH 6/6] kvfree_rcu: use kfree_rcu_monitor() instead of open-coded variant

2021-04-14 Thread Uladzislau Rezki (Sony)
To queue a new batch we have a kfree_rcu_monitor() function that checks KRC_MONITOR_TODO bit and invokes kfree_rcu_drain_unlock() to start a new batch after a GP. Get rid of open-coded case by switching it to the separate function. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c

[PATCH 5/6] kvfree_rcu: clear KRC_MONITOR_TODO bit once a batch is started

2021-04-14 Thread Uladzislau Rezki (Sony)
note that checking/setting this bit is protected by the krcp->lock spinlock. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index da3605067cc1..012030cbe55e 100644 --

[PATCH 4/6] kvfree_rcu: add a bulk-list check when a scheduler is run

2021-04-14 Thread Uladzislau Rezki (Sony)
s well as "krcp->bkvhead[1]". So, we have to queue the "monitor work" if _any_ corresponding channel is not empty. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/tree.c

[PATCH 3/6] kvfree_rcu: introduce "flags" variable

2021-04-14 Thread Uladzislau Rezki (Sony)
access to the flags variable atomic bit operations are used. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 61 --- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 1b0289fa1cdd

[PATCH 2/6] kvfree_rcu: use [READ/WRITE]_ONCE() macros to access to nr_bkv_objs

2021-04-14 Thread Uladzislau Rezki (Sony)
nr_bkv_objs represents the counter of objects in the page-cache. Accessing to it requires taking the lock. Switch to READ_ONCE() WRITE_ONCE() macros to provide an atomic access to that counter. A shrinker is one of the user of it. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c

[PATCH 1/6] kvfree_rcu: Release a page cache under memory pressure

2021-04-14 Thread Uladzislau Rezki (Sony)
Rezki (Sony) Signed-off-by: Uladzislau Rezki (Sony) Signed-off-by: Zqiang --- kernel/rcu/tree.c | 70 +-- 1 file changed, 61 insertions(+), 9 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 2c9cf4df942c..8b74edcd11d4 100644 --- a

[tip: core/rcu] kvfree_rcu: Directly allocate page for single-argument case

2021-04-11 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: 148e3731d124079a036b3acf780f3d35c1b9c0aa Gitweb: https://git.kernel.org/tip/148e3731d124079a036b3acf780f3d35c1b9c0aa Author:Uladzislau Rezki (Sony) AuthorDate:Wed, 20 Jan 2021 17:21:46 +01:00

[tip: core/rcu] kvfree_rcu: Replace __GFP_RETRY_MAYFAIL by __GFP_NORETRY

2021-04-11 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: 3e7ce7a187fc6aaa9fda1310a2b8da8770342ff7 Gitweb: https://git.kernel.org/tip/3e7ce7a187fc6aaa9fda1310a2b8da8770342ff7 Author:Uladzislau Rezki (Sony) AuthorDate:Fri, 29 Jan 2021 17:16:03 +01:00

[tip: core/rcu] kvfree_rcu: Use same set of GFP flags as does single-argument

2021-04-11 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: ee6ddf58475cce8a3d3697614679cd8cb4a6f583 Gitweb: https://git.kernel.org/tip/ee6ddf58475cce8a3d3697614679cd8cb4a6f583 Author:Uladzislau Rezki (Sony) AuthorDate:Fri, 29 Jan 2021 21:05:05 +01:00

[tip: core/rcu] rcuscale: Add kfree_rcu() single-argument scale test

2021-04-11 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: 686fe1bf6bcce3ce9fc03c9d9035c643c320ca46 Gitweb: https://git.kernel.org/tip/686fe1bf6bcce3ce9fc03c9d9035c643c320ca46 Author:Uladzislau Rezki (Sony) AuthorDate:Wed, 17 Feb 2021 19:51:10 +01:00

[PATCH-next 1/1] lib/test_vmalloc.c: extend max value of nr_threads parameter

2021-04-06 Thread Uladzislau Rezki (Sony)
Rezki (Sony) --- lib/test_vmalloc.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/test_vmalloc.c b/lib/test_vmalloc.c index d337985e4c5e..01e9543de566 100644 --- a/lib/test_vmalloc.c +++ b/lib/test_vmalloc.c @@ -24,7 +24,7 @@ MODULE_PARM_DESC(name, msg

[PATCH-next 5/5] mm/vmalloc: remove an empty line

2021-04-02 Thread Uladzislau Rezki (Sony)
Signed-off-by: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 093c7e034ca2..1e643280cbcf 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1503,7 +1503,6 @@ static struct vmap_area *alloc_vmap_area(unsigned long size

[PATCH-next 4/5] mm/vmalloc: refactor the preloading loagic

2021-04-02 Thread Uladzislau Rezki (Sony)
: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 60 +++- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 8b564f91a610..093c7e034ca2 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1430,6 +1430,29 @@ static void

[PATCH-next 3/5] vm/test_vmalloc.sh: adapt for updated driver interface

2021-04-02 Thread Uladzislau Rezki (Sony)
ch are equal to number of CPUs. Also update an output of help message based on a new interface. CC: linux-kselft...@vger.kernel.org CC: Shuah Khan Signed-off-by: Uladzislau Rezki (Sony) --- tools/testing/selftests/vm/test_vmalloc.sh | 21 +++-- 1 file changed, 11 insertions(+), 10 de

[PATCH-next 2/5] lib/test_vmalloc.c: add a new 'nr_threads' parameter

2021-04-02 Thread Uladzislau Rezki (Sony)
By using this parameter we can specify how many workers are created to perform vmalloc tests. By default it is one CPU. The maximum value is set to 1024. As a result of this change a 'single_cpu_test' one becomes obsolete, therefore it is no longer needed. Signed-off-by: Uladzislau R

[PATCH-next 1/5] lib/test_vmalloc.c: remove two kvfree_rcu() tests

2021-04-02 Thread Uladzislau Rezki (Sony)
Remove two test cases related to kvfree_rcu() and SLAB. Those are considered as redundant now, because similar test functionality has recently been introduced in the "rcuscale" RCU test-suite. Signed-off-by: Uladzislau Rezki (Sony) --- lib/test_vmal

[PATCH v2 1/1] kvfree_rcu: Release a page cache under memory pressure

2021-03-10 Thread Uladzislau Rezki (Sony)
. When a system hits such condition, a page cache is drained for all CPUs in a system. Apart of that a page cache work is delayed with 5 seconds interval until a memory pressure disappears. Co-developed-by: Uladzislau Rezki (Sony) Signed-off-by: Uladzislau Rezki (Sony) Signed-off-by: Zqiang

[PATCH 2/2] kvfree_rcu: convert a page cache to lock-free variant

2021-03-08 Thread Uladzislau Rezki (Sony)
00 MAX: 11312145160 patch: AVG: 10787596486.1 MIN: 10397559880 MAX: 11214901050 Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 91 +-- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/

[PATCH 1/2] kvfree_rcu: Release a page cache under memory pressure

2021-03-08 Thread Uladzislau Rezki (Sony)
. When a system hits such condition, a page cache is drained for all CPUs in a system. Apart of that a page cache work is delayed with 5 seconds interval until a memory pressure disappears. Co-developed-by: Uladzislau Rezki (Sony) Signed-off-by: Uladzislau Rezki (Sony) Signed-off-by: Zqiang

[PATCH v3 1/1] rcuscale: add kfree_rcu() single-argument scale test

2021-02-17 Thread Uladzislau Rezki (Sony)
this is that it allows testing of both options with one test. Suggested-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/rcuscale.c | 15 ++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/rcuscale.c b/kernel/rcu/rcuscale.c index

[tip: core/rcu] rcu: Introduce kfree_rcu() single-argument macro

2021-02-15 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: 5130b8fd06901c1b3a4bd0d0f5c5ea99b2b0a6f0 Gitweb: https://git.kernel.org/tip/5130b8fd06901c1b3a4bd0d0f5c5ea99b2b0a6f0 Author:Uladzislau Rezki (Sony) AuthorDate:Fri, 20 Nov 2020 12:49:16 +01:00

[tip: core/rcu] rcu: Eliminate the __kvfree_rcu() macro

2021-02-15 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: 5ea5d1ed572cb5ac173674fe770252253d2d9e27 Gitweb: https://git.kernel.org/tip/5ea5d1ed572cb5ac173674fe770252253d2d9e27 Author:Uladzislau Rezki (Sony) AuthorDate:Fri, 20 Nov 2020 12:49:17 +01:00

[tip: core/rcu] rcu-tasks: Add RCU-tasks self tests

2021-02-12 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: bfba7ed084f8ab0269a5a1d2f51b07865456c334 Gitweb: https://git.kernel.org/tip/bfba7ed084f8ab0269a5a1d2f51b07865456c334 Author:Uladzislau Rezki (Sony) AuthorDate:Wed, 09 Dec 2020 21:27:32 +01:00

[PATCH 2/2] kvfree_rcu: Use same set of flags as for single-argument

2021-01-29 Thread Uladzislau Rezki (Sony)
s. With this change an rcuscale and the parameters which are in question never runs into "Kernel panic". Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 1e86212

[PATCH 1/2] rcuscale: add kfree_rcu() single-argument scale test

2021-01-29 Thread Uladzislau Rezki (Sony)
To stress and test a single argument of kfree_rcu() call, we should to have a special coverage for it. We used to have it in the test-suite related to vmalloc stressing. The reason is the rcuscale is a correct place for RCU related things. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu

[PATCH 1/3] kvfree_rcu: Allocate a page for a single argument

2021-01-20 Thread Uladzislau Rezki (Sony)
ned-off-by: Uladzislau Rezki (Sony) Signed-off-by: Paul E. McKenney --- kernel/rcu/tree.c | 42 ++ 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e04e336bee42..2014fb22644d 100644 --- a/kernel/rcu/tr

[PATCH 2/3] kvfree_rcu: Use __GFP_NOMEMALLOC for single-argument kvfree_rcu()

2021-01-20 Thread Uladzislau Rezki (Sony)
chal Hocko Signed-off-by: Paul E. McKenney Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 2014fb22644d..454809514c91 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c

[PATCH 3/3] kvfree_rcu: use migrate_disable/enable()

2021-01-20 Thread Uladzislau Rezki (Sony)
() are now independent of RT, use it in order to prevent any migration during a page request for a specific CPU it is requested for. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index

[tip: core/rcu] rcu/tree: Defer kvfree_rcu() allocation to a clean context

2020-12-13 Thread tip-bot2 for Uladzislau Rezki (Sony)
The following commit has been merged into the core/rcu branch of tip: Commit-ID: 56292e8609e39537297a7468dda4d87b9bd81d6a Gitweb: https://git.kernel.org/tip/56292e8609e39537297a7468dda4d87b9bd81d6a Author:Uladzislau Rezki (Sony) AuthorDate:Thu, 29 Oct 2020 17:50:04 +01:00

[PATCH 2/2] rcu-tasks: add RCU-tasks self tests

2020-12-09 Thread Uladzislau Rezki (Sony)
Add self tests for checking of RCU-tasks API functionality. It covers: - wait API functions; - invoking/completion call_rcu_tasks*(). Self-tests are run when CONFIG_PROVE_RCU kernel parameter is set. Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tasks.h | 44

[PATCH 1/2] rcu-tasks: move RCU-tasks initialization out of core_initcall()

2020-12-09 Thread Uladzislau Rezki (Sony)
es in early_initcall") Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate.h | 6 ++ init/main.c | 1 + kernel/rcu/tasks.h | 26 ++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/include/linux/rcupdate.h b/include/linux/

[PATCH 1/2] rcu: introduce kfree_rcu() single argument macro

2020-11-20 Thread Uladzislau Rezki (Sony)
for users. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate.h | 22 -- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index e09c0d87b3c3..b1e75648d402 100644 --- a/include/linux/rcupdate.h

[PATCH 2/2] rcu: eliminate the __kvfree_rcu() macro

2020-11-20 Thread Uladzislau Rezki (Sony)
Make the kvfree_rcu_arg_2() to be open-coded, so readability and review look better from the first glance. Moreover, that makes it clear that both kvfree_rcu_arg_1/2() use one single interface. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/rcupdate.h | 18 ++ 1 file

[PATCH 2/2] mm/vmalloc: rework the drain logic

2020-11-16 Thread Uladzislau Rezki (Sony)
presents a free space is faster because of (a). As a result the lock contention is also reduced. Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/vmalloc.h | 8 ++-- mm/vmalloc.c| 90 +++-- 2 files changed, 53 insertions(+

[PATCH 1/2] mm/vmalloc: use free_vm_area() if an allocation fails

2020-11-16 Thread Uladzislau Rezki (Sony)
e same, to perform a cleanup. Signed-off-by: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index d7075ad340aa..b08b06a8cc2a 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2479,8 +2479,7 @@ s

[PATCH 06/16] mm/pagemap: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
From: Thomas Gleixner CONFIG_PREEMPT_COUNT is now unconditionally enabled and will be removed. Cleanup the leftovers before doing so. Signed-off-by: Thomas Gleixner Cc: Andrew Morton Cc: linux...@kvack.org Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/pagemap.h | 4 +--- 1 file

[PATCH 10/16] ARM: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
From: Thomas Gleixner CONFIG_PREEMPT_COUNT is now unconditionally enabled and will be removed. Cleanup the leftovers before doing so. Signed-off-by: Thomas Gleixner Cc: Russell King Cc: linux-arm-ker...@lists.infradead.org Signed-off-by: Uladzislau Rezki (Sony) --- arch/arm/include/asm

[PATCH 03/16] preempt: Make preempt count unconditional

2020-10-29 Thread Uladzislau Rezki (Sony)
essential functionality of the kernel consistent accross the various preemption models. Enable CONFIG_PREEMPT_COUNT unconditionally. Follow up changes will remove the #ifdeffery and remove the config option at the end. Signed-off-by: Thomas Gleixner Signed-off-by: Uladzislau Rezki (Sony) -

[PATCH 11/16] xtensa: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
From: Thomas Gleixner CONFIG_PREEMPT_COUNT is now unconditionally enabled and will be removed. Cleanup the leftovers before doing so. Signed-off-by: Thomas Gleixner Cc: Chris Zankel Cc: Max Filippov Cc: linux-xte...@linux-xtensa.org Signed-off-by: Uladzislau Rezki (Sony) --- arch/xtensa

[PATCH 13/16] rcutorture: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
han Cc: r...@vger.kernel.org Cc: linux-kselft...@vger.kernel.org Signed-off-by: Uladzislau Rezki (Sony) --- tools/testing/selftests/rcutorture/configs/rcu/SRCU-t| 1 - tools/testing/selftests/rcutorture/configs/rcu/SRCU-u| 1 - tools/testing/selftests/rcutorture/configs/rcu/TINY01

[PATCH 05/16] lockdep: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
-by: Uladzislau Rezki (Sony) --- include/linux/lockdep.h | 6 ++ lib/Kconfig.debug | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index f5594879175a..d05db575f60f 100644 --- a/include/linux/lockdep.h +++ b/include

[PATCH 04/16] preempt: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
Segall Cc: Mel Gorman Cc: Daniel Bristot de Oliveira Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/preempt.h | 37 - 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 7d9c1c0e149c

[PATCH 14/16] preempt: Remove PREEMPT_COUNT from Kconfig

2020-10-29 Thread Uladzislau Rezki (Sony)
From: Thomas Gleixner All conditionals and irritations are gone. Signed-off-by: Thomas Gleixner Signed-off-by: Uladzislau Rezki (Sony) --- kernel/Kconfig.preempt | 3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt index 3f4712ff073b

[PATCH 12/16] drm/i915: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
Cc: dri-de...@lists.freedesktop.org Signed-off-by: Uladzislau Rezki (Sony) --- drivers/gpu/drm/i915/Kconfig.debug | 1 - drivers/gpu/drm/i915/i915_utils.h | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915

[PATCH 08/16] uaccess: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
From: Thomas Gleixner CONFIG_PREEMPT_COUNT is now unconditionally enabled and will be removed. Cleanup the leftovers before doing so. Signed-off-by: Thomas Gleixner Signed-off-by: Uladzislau Rezki (Sony) --- include/linux/uaccess.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions

[PATCH 15/16] rcu/tree: Allocate a page when caller is preemptible

2020-10-29 Thread Uladzislau Rezki (Sony)
within the memory allocator. [ paulmck: Add add_ptr_to_bulk_krc_lock header comment per Michal Hocko. ] Signed-off-by: Uladzislau Rezki (Sony) Signed-off-by: Paul E. McKenney --- kernel/rcu/tree.c | 48 ++- 1 file changed, 31 insertions(+), 17 deletions

[PATCH 09/16] sched: Cleanup PREEMPT_COUNT leftovers

2020-10-29 Thread Uladzislau Rezki (Sony)
Segall Cc: Mel Gorman Cc: Daniel Bristot de Oliveira Signed-off-by: Uladzislau Rezki (Sony) --- kernel/sched/core.c | 6 +- lib/Kconfig.debug | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index d2003a7d5ab5..e172f2ddfa16 100644

[PATCH 01/16] rcu/tree: Add a work to allocate pages from regular context

2020-10-29 Thread Uladzislau Rezki (Sony)
by: Sebastian Andrzej Siewior Signed-off-by: Uladzislau Rezki (Sony) --- kernel/rcu/tree.c | 109 -- 1 file changed, 66 insertions(+), 43 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 06895ef85d69..f2da2a1cc716 100644 --- a/kernel/

[PATCH 02/16] lib/debug: Remove pointless ARCH_NO_PREEMPT dependencies

2020-10-29 Thread Uladzislau Rezki (Sony)
counter nor is there a reason to prevent the enablement of CONFIG_DEBUG_ATOMIC_SLEEP on such architectures. Remove the dependencies. Signed-off-by: Thomas Gleixner Signed-off-by: Uladzislau Rezki (Sony) --- lib/Kconfig.debug | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib

  1   2   3   >