All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-01-29  1:51   ` Jens Axboe
  0 siblings, 0 replies; 21+ messages in thread
From: Jens Axboe @ 2022-01-29  1:51 UTC (permalink / raw)
  To: Yu Kuai, paolo.valente, jack; +Cc: linux-block, cgroups, linux-kernel, yi.zhang

On 1/28/22 6:59 PM, Yu Kuai wrote:
> Changes in v3:
>  - fix a clerical error in patch 2
> 
> Chagnes in v2:
>  - add comment in patch 2
>  - remove patch 4, since the problem do not exist.
> 
> Yu Kuai (3):
>   block, bfq: cleanup bfq_bfqq_to_bfqg()
>   block, bfq: avoid moving bfqq to it's parent bfqg
>   block, bfq: don't move oom_bfqq
> 
>  block/bfq-cgroup.c  | 16 +++++++++++++++-
>  block/bfq-iosched.c |  4 ++--
>  block/bfq-iosched.h |  1 -
>  block/bfq-wf2q.c    | 15 ---------------
>  4 files changed, 17 insertions(+), 19 deletions(-)

I'm not even looking at this until you tell me that:

a) you've actually compiled this one. which, btw, I can't believe
   needs mentioning, particularly when you had enough time to keep
   pinging about this patchset.

b) it's actually be run. last one was clearly not.

-- 
Jens Axboe


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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-01-29  1:51   ` Jens Axboe
  0 siblings, 0 replies; 21+ messages in thread
From: Jens Axboe @ 2022-01-29  1:51 UTC (permalink / raw)
  To: Yu Kuai, paolo.valente-QSEj5FYQhm4dnm+yROfE0A, jack-AlSwsSmVLrQ
  Cc: linux-block-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yi.zhang-hv44wF8Li93QT0dZR+AlfA

On 1/28/22 6:59 PM, Yu Kuai wrote:
> Changes in v3:
>  - fix a clerical error in patch 2
> 
> Chagnes in v2:
>  - add comment in patch 2
>  - remove patch 4, since the problem do not exist.
> 
> Yu Kuai (3):
>   block, bfq: cleanup bfq_bfqq_to_bfqg()
>   block, bfq: avoid moving bfqq to it's parent bfqg
>   block, bfq: don't move oom_bfqq
> 
>  block/bfq-cgroup.c  | 16 +++++++++++++++-
>  block/bfq-iosched.c |  4 ++--
>  block/bfq-iosched.h |  1 -
>  block/bfq-wf2q.c    | 15 ---------------
>  4 files changed, 17 insertions(+), 19 deletions(-)

I'm not even looking at this until you tell me that:

a) you've actually compiled this one. which, btw, I can't believe
   needs mentioning, particularly when you had enough time to keep
   pinging about this patchset.

b) it's actually be run. last one was clearly not.

-- 
Jens Axboe


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

* [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-01-29  1:59 ` Yu Kuai
  0 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente, jack, axboe
  Cc: linux-block, cgroups, linux-kernel, yukuai3, yi.zhang

Changes in v3:
 - fix a clerical error in patch 2

Chagnes in v2:
 - add comment in patch 2
 - remove patch 4, since the problem do not exist.

Yu Kuai (3):
  block, bfq: cleanup bfq_bfqq_to_bfqg()
  block, bfq: avoid moving bfqq to it's parent bfqg
  block, bfq: don't move oom_bfqq

 block/bfq-cgroup.c  | 16 +++++++++++++++-
 block/bfq-iosched.c |  4 ++--
 block/bfq-iosched.h |  1 -
 block/bfq-wf2q.c    | 15 ---------------
 4 files changed, 17 insertions(+), 19 deletions(-)

-- 
2.31.1


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

* [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-01-29  1:59 ` Yu Kuai
  0 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente-QSEj5FYQhm4dnm+yROfE0A, jack-AlSwsSmVLrQ,
	axboe-tSWWG44O7X1aa/9Udqfwiw
  Cc: linux-block-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yukuai3-hv44wF8Li93QT0dZR+AlfA, yi.zhang-hv44wF8Li93QT0dZR+AlfA

Changes in v3:
 - fix a clerical error in patch 2

Chagnes in v2:
 - add comment in patch 2
 - remove patch 4, since the problem do not exist.

Yu Kuai (3):
  block, bfq: cleanup bfq_bfqq_to_bfqg()
  block, bfq: avoid moving bfqq to it's parent bfqg
  block, bfq: don't move oom_bfqq

 block/bfq-cgroup.c  | 16 +++++++++++++++-
 block/bfq-iosched.c |  4 ++--
 block/bfq-iosched.h |  1 -
 block/bfq-wf2q.c    | 15 ---------------
 4 files changed, 17 insertions(+), 19 deletions(-)

-- 
2.31.1


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

* [PATCH v3 1/3] block, bfq: cleanup bfq_bfqq_to_bfqg()
  2022-01-29  1:59 ` Yu Kuai
@ 2022-01-29  1:59   ` Yu Kuai
  -1 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente, jack, axboe
  Cc: linux-block, cgroups, linux-kernel, yukuai3, yi.zhang

Use bfq_group() instead, which do the same thing.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Acked-by: Paolo Valente <paolo.valente@linaro.org>
---
 block/bfq-iosched.c |  4 ++--
 block/bfq-iosched.h |  1 -
 block/bfq-wf2q.c    | 15 ---------------
 3 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 0c612a911696..2f2b97cad980 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -774,7 +774,7 @@ bfq_pos_tree_add_move(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 	if (!bfqq->next_rq)
 		return;
 
-	bfqq->pos_root = &bfq_bfqq_to_bfqg(bfqq)->rq_pos_tree;
+	bfqq->pos_root = &bfqq_group(bfqq)->rq_pos_tree;
 	__bfqq = bfq_rq_pos_tree_lookup(bfqd, bfqq->pos_root,
 			blk_rq_pos(bfqq->next_rq), &parent, &p);
 	if (!__bfqq) {
@@ -2669,7 +2669,7 @@ static struct bfq_queue *bfqq_find_close(struct bfq_data *bfqd,
 					 struct bfq_queue *bfqq,
 					 sector_t sector)
 {
-	struct rb_root *root = &bfq_bfqq_to_bfqg(bfqq)->rq_pos_tree;
+	struct rb_root *root = &bfqq_group(bfqq)->rq_pos_tree;
 	struct rb_node *parent, *node;
 	struct bfq_queue *__bfqq;
 
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h
index 07288b9da389..99949548896e 100644
--- a/block/bfq-iosched.h
+++ b/block/bfq-iosched.h
@@ -1051,7 +1051,6 @@ extern struct blkcg_policy blkcg_policy_bfq;
 	for (parent = NULL; entity ; entity = parent)
 #endif /* CONFIG_BFQ_GROUP_IOSCHED */
 
-struct bfq_group *bfq_bfqq_to_bfqg(struct bfq_queue *bfqq);
 struct bfq_queue *bfq_entity_to_bfqq(struct bfq_entity *entity);
 unsigned int bfq_tot_busy_queues(struct bfq_data *bfqd);
 struct bfq_service_tree *bfq_entity_service_tree(struct bfq_entity *entity);
diff --git a/block/bfq-wf2q.c b/block/bfq-wf2q.c
index b74cc0da118e..e1f5ca5c1fdb 100644
--- a/block/bfq-wf2q.c
+++ b/block/bfq-wf2q.c
@@ -142,16 +142,6 @@ static bool bfq_update_next_in_service(struct bfq_sched_data *sd,
 
 #ifdef CONFIG_BFQ_GROUP_IOSCHED
 
-struct bfq_group *bfq_bfqq_to_bfqg(struct bfq_queue *bfqq)
-{
-	struct bfq_entity *group_entity = bfqq->entity.parent;
-
-	if (!group_entity)
-		group_entity = &bfqq->bfqd->root_group->entity;
-
-	return container_of(group_entity, struct bfq_group, entity);
-}
-
 /*
  * Returns true if this budget changes may let next_in_service->parent
  * become the next_in_service entity for its parent entity.
@@ -230,11 +220,6 @@ static bool bfq_no_longer_next_in_service(struct bfq_entity *entity)
 
 #else /* CONFIG_BFQ_GROUP_IOSCHED */
 
-struct bfq_group *bfq_bfqq_to_bfqg(struct bfq_queue *bfqq)
-{
-	return bfqq->bfqd->root_group;
-}
-
 static bool bfq_update_parent_budget(struct bfq_entity *next_in_service)
 {
 	return false;
-- 
2.31.1


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

* [PATCH v3 1/3] block, bfq: cleanup bfq_bfqq_to_bfqg()
@ 2022-01-29  1:59   ` Yu Kuai
  0 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente, jack, axboe
  Cc: linux-block, cgroups, linux-kernel, yukuai3, yi.zhang

Use bfq_group() instead, which do the same thing.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Acked-by: Paolo Valente <paolo.valente@linaro.org>
---
 block/bfq-iosched.c |  4 ++--
 block/bfq-iosched.h |  1 -
 block/bfq-wf2q.c    | 15 ---------------
 3 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 0c612a911696..2f2b97cad980 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -774,7 +774,7 @@ bfq_pos_tree_add_move(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 	if (!bfqq->next_rq)
 		return;
 
-	bfqq->pos_root = &bfq_bfqq_to_bfqg(bfqq)->rq_pos_tree;
+	bfqq->pos_root = &bfqq_group(bfqq)->rq_pos_tree;
 	__bfqq = bfq_rq_pos_tree_lookup(bfqd, bfqq->pos_root,
 			blk_rq_pos(bfqq->next_rq), &parent, &p);
 	if (!__bfqq) {
@@ -2669,7 +2669,7 @@ static struct bfq_queue *bfqq_find_close(struct bfq_data *bfqd,
 					 struct bfq_queue *bfqq,
 					 sector_t sector)
 {
-	struct rb_root *root = &bfq_bfqq_to_bfqg(bfqq)->rq_pos_tree;
+	struct rb_root *root = &bfqq_group(bfqq)->rq_pos_tree;
 	struct rb_node *parent, *node;
 	struct bfq_queue *__bfqq;
 
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h
index 07288b9da389..99949548896e 100644
--- a/block/bfq-iosched.h
+++ b/block/bfq-iosched.h
@@ -1051,7 +1051,6 @@ extern struct blkcg_policy blkcg_policy_bfq;
 	for (parent = NULL; entity ; entity = parent)
 #endif /* CONFIG_BFQ_GROUP_IOSCHED */
 
-struct bfq_group *bfq_bfqq_to_bfqg(struct bfq_queue *bfqq);
 struct bfq_queue *bfq_entity_to_bfqq(struct bfq_entity *entity);
 unsigned int bfq_tot_busy_queues(struct bfq_data *bfqd);
 struct bfq_service_tree *bfq_entity_service_tree(struct bfq_entity *entity);
diff --git a/block/bfq-wf2q.c b/block/bfq-wf2q.c
index b74cc0da118e..e1f5ca5c1fdb 100644
--- a/block/bfq-wf2q.c
+++ b/block/bfq-wf2q.c
@@ -142,16 +142,6 @@ static bool bfq_update_next_in_service(struct bfq_sched_data *sd,
 
 #ifdef CONFIG_BFQ_GROUP_IOSCHED
 
-struct bfq_group *bfq_bfqq_to_bfqg(struct bfq_queue *bfqq)
-{
-	struct bfq_entity *group_entity = bfqq->entity.parent;
-
-	if (!group_entity)
-		group_entity = &bfqq->bfqd->root_group->entity;
-
-	return container_of(group_entity, struct bfq_group, entity);
-}
-
 /*
  * Returns true if this budget changes may let next_in_service->parent
  * become the next_in_service entity for its parent entity.
@@ -230,11 +220,6 @@ static bool bfq_no_longer_next_in_service(struct bfq_entity *entity)
 
 #else /* CONFIG_BFQ_GROUP_IOSCHED */
 
-struct bfq_group *bfq_bfqq_to_bfqg(struct bfq_queue *bfqq)
-{
-	return bfqq->bfqd->root_group;
-}
-
 static bool bfq_update_parent_budget(struct bfq_entity *next_in_service)
 {
 	return false;
-- 
2.31.1


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

* [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg
  2022-01-29  1:59 ` Yu Kuai
@ 2022-01-29  1:59   ` Yu Kuai
  -1 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente, jack, axboe
  Cc: linux-block, cgroups, linux-kernel, yukuai3, yi.zhang

Moving bfqq to it's parent bfqg is pointless.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bfq-cgroup.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 24a5c5329bcd..9783c1156159 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -645,6 +645,14 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 		   struct bfq_group *bfqg)
 {
 	struct bfq_entity *entity = &bfqq->entity;
+	struct bfq_group *old_parent = bfqq_group(bfqq);
+
+	/*
+	 * No point to move bfqq to the same group, which can happen when
+	 * root group is offlined
+	 */
+	if (old_parent == bfqg)
+		return;
 
 	/*
 	 * Get extra reference to prevent bfqq from being freed in
@@ -666,7 +674,7 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 		bfq_deactivate_bfqq(bfqd, bfqq, false, false);
 	else if (entity->on_st_or_in_serv)
 		bfq_put_idle_entity(bfq_entity_service_tree(entity), entity);
-	bfqg_and_blkg_put(bfqq_group(bfqq));
+	bfqg_and_blkg_put(old_parent);
 
 	if (entity->parent &&
 	    entity->parent->last_bfqq_created == bfqq)
-- 
2.31.1


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

* [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg
@ 2022-01-29  1:59   ` Yu Kuai
  0 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente, jack, axboe
  Cc: linux-block, cgroups, linux-kernel, yukuai3, yi.zhang

Moving bfqq to it's parent bfqg is pointless.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 block/bfq-cgroup.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 24a5c5329bcd..9783c1156159 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -645,6 +645,14 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 		   struct bfq_group *bfqg)
 {
 	struct bfq_entity *entity = &bfqq->entity;
+	struct bfq_group *old_parent = bfqq_group(bfqq);
+
+	/*
+	 * No point to move bfqq to the same group, which can happen when
+	 * root group is offlined
+	 */
+	if (old_parent == bfqg)
+		return;
 
 	/*
 	 * Get extra reference to prevent bfqq from being freed in
@@ -666,7 +674,7 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 		bfq_deactivate_bfqq(bfqd, bfqq, false, false);
 	else if (entity->on_st_or_in_serv)
 		bfq_put_idle_entity(bfq_entity_service_tree(entity), entity);
-	bfqg_and_blkg_put(bfqq_group(bfqq));
+	bfqg_and_blkg_put(old_parent);
 
 	if (entity->parent &&
 	    entity->parent->last_bfqq_created == bfqq)
-- 
2.31.1


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

* [PATCH v3 3/3] block, bfq: don't move oom_bfqq
@ 2022-01-29  1:59   ` Yu Kuai
  0 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente, jack, axboe
  Cc: linux-block, cgroups, linux-kernel, yukuai3, yi.zhang

Our test report a UAF:

[ 2073.019181] ==================================================================
[ 2073.019188] BUG: KASAN: use-after-free in __bfq_put_async_bfqq+0xa0/0x168
[ 2073.019191] Write of size 8 at addr ffff8000ccf64128 by task rmmod/72584
[ 2073.019192]
[ 2073.019196] CPU: 0 PID: 72584 Comm: rmmod Kdump: loaded Not tainted 4.19.90-yk #5
[ 2073.019198] Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015
[ 2073.019200] Call trace:
[ 2073.019203]  dump_backtrace+0x0/0x310
[ 2073.019206]  show_stack+0x28/0x38
[ 2073.019210]  dump_stack+0xec/0x15c
[ 2073.019216]  print_address_description+0x68/0x2d0
[ 2073.019220]  kasan_report+0x238/0x2f0
[ 2073.019224]  __asan_store8+0x88/0xb0
[ 2073.019229]  __bfq_put_async_bfqq+0xa0/0x168
[ 2073.019233]  bfq_put_async_queues+0xbc/0x208
[ 2073.019236]  bfq_pd_offline+0x178/0x238
[ 2073.019240]  blkcg_deactivate_policy+0x1f0/0x420
[ 2073.019244]  bfq_exit_queue+0x128/0x178
[ 2073.019249]  blk_mq_exit_sched+0x12c/0x160
[ 2073.019252]  elevator_exit+0xc8/0xd0
[ 2073.019256]  blk_exit_queue+0x50/0x88
[ 2073.019259]  blk_cleanup_queue+0x228/0x3d8
[ 2073.019267]  null_del_dev+0xfc/0x1e0 [null_blk]
[ 2073.019274]  null_exit+0x90/0x114 [null_blk]
[ 2073.019278]  __arm64_sys_delete_module+0x358/0x5a0
[ 2073.019282]  el0_svc_common+0xc8/0x320
[ 2073.019287]  el0_svc_handler+0xf8/0x160
[ 2073.019290]  el0_svc+0x10/0x218
[ 2073.019291]
[ 2073.019294] Allocated by task 14163:
[ 2073.019301]  kasan_kmalloc+0xe0/0x190
[ 2073.019305]  kmem_cache_alloc_node_trace+0x1cc/0x418
[ 2073.019308]  bfq_pd_alloc+0x54/0x118
[ 2073.019313]  blkcg_activate_policy+0x250/0x460
[ 2073.019317]  bfq_create_group_hierarchy+0x38/0x110
[ 2073.019321]  bfq_init_queue+0x6d0/0x948
[ 2073.019325]  blk_mq_init_sched+0x1d8/0x390
[ 2073.019330]  elevator_switch_mq+0x88/0x170
[ 2073.019334]  elevator_switch+0x140/0x270
[ 2073.019338]  elv_iosched_store+0x1a4/0x2a0
[ 2073.019342]  queue_attr_store+0x90/0xe0
[ 2073.019348]  sysfs_kf_write+0xa8/0xe8
[ 2073.019351]  kernfs_fop_write+0x1f8/0x378
[ 2073.019359]  __vfs_write+0xe0/0x360
[ 2073.019363]  vfs_write+0xf0/0x270
[ 2073.019367]  ksys_write+0xdc/0x1b8
[ 2073.019371]  __arm64_sys_write+0x50/0x60
[ 2073.019375]  el0_svc_common+0xc8/0x320
[ 2073.019380]  el0_svc_handler+0xf8/0x160
[ 2073.019383]  el0_svc+0x10/0x218
[ 2073.019385]
[ 2073.019387] Freed by task 72584:
[ 2073.019391]  __kasan_slab_free+0x120/0x228
[ 2073.019394]  kasan_slab_free+0x10/0x18
[ 2073.019397]  kfree+0x94/0x368
[ 2073.019400]  bfqg_put+0x64/0xb0
[ 2073.019404]  bfqg_and_blkg_put+0x90/0xb0
[ 2073.019408]  bfq_put_queue+0x220/0x228
[ 2073.019413]  __bfq_put_async_bfqq+0x98/0x168
[ 2073.019416]  bfq_put_async_queues+0xbc/0x208
[ 2073.019420]  bfq_pd_offline+0x178/0x238
[ 2073.019424]  blkcg_deactivate_policy+0x1f0/0x420
[ 2073.019429]  bfq_exit_queue+0x128/0x178
[ 2073.019433]  blk_mq_exit_sched+0x12c/0x160
[ 2073.019437]  elevator_exit+0xc8/0xd0
[ 2073.019440]  blk_exit_queue+0x50/0x88
[ 2073.019443]  blk_cleanup_queue+0x228/0x3d8
[ 2073.019451]  null_del_dev+0xfc/0x1e0 [null_blk]
[ 2073.019459]  null_exit+0x90/0x114 [null_blk]
[ 2073.019462]  __arm64_sys_delete_module+0x358/0x5a0
[ 2073.019467]  el0_svc_common+0xc8/0x320
[ 2073.019471]  el0_svc_handler+0xf8/0x160
[ 2073.019474]  el0_svc+0x10/0x218
[ 2073.019475]
[ 2073.019479] The buggy address belongs to the object at ffff8000ccf63f00
 which belongs to the cache kmalloc-1024 of size 1024
[ 2073.019484] The buggy address is located 552 bytes inside of
 1024-byte region [ffff8000ccf63f00, ffff8000ccf64300)
[ 2073.019486] The buggy address belongs to the page:
[ 2073.019492] page:ffff7e000333d800 count:1 mapcount:0 mapping:ffff8000c0003a00 index:0x0 compound_mapcount: 0
[ 2073.020123] flags: 0x7ffff0000008100(slab|head)
[ 2073.020403] raw: 07ffff0000008100 ffff7e0003334c08 ffff7e00001f5a08 ffff8000c0003a00
[ 2073.020409] raw: 0000000000000000 00000000001c001c 00000001ffffffff 0000000000000000
[ 2073.020411] page dumped because: kasan: bad access detected
[ 2073.020412]
[ 2073.020414] Memory state around the buggy address:
[ 2073.020420]  ffff8000ccf64000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020424]  ffff8000ccf64080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020428] >ffff8000ccf64100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020430]                                   ^
[ 2073.020434]  ffff8000ccf64180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020438]  ffff8000ccf64200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020439] ==================================================================

The same problem exist in mainline as well.

This is because oom_bfqq is moved to a non-root group, thus root_group
is freed earlier.

Thus fix the problem by don't move oom_bfqq.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Acked-by: Paolo Valente <paolo.valente@linaro.org>
---
 block/bfq-cgroup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 9783c1156159..420eda2589c0 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -654,6 +654,12 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 	if (old_parent == bfqg)
 		return;
 
+	/*
+	 * oom_bfqq is not allowed to move, oom_bfqq will hold ref to root_group
+	 * until elevator exit.
+	 */
+	if (bfqq == &bfqd->oom_bfqq)
+		return;
 	/*
 	 * Get extra reference to prevent bfqq from being freed in
 	 * next possible expire or deactivate.
-- 
2.31.1


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

* [PATCH v3 3/3] block, bfq: don't move oom_bfqq
@ 2022-01-29  1:59   ` Yu Kuai
  0 siblings, 0 replies; 21+ messages in thread
From: Yu Kuai @ 2022-01-29  1:59 UTC (permalink / raw)
  To: paolo.valente-QSEj5FYQhm4dnm+yROfE0A, jack-AlSwsSmVLrQ,
	axboe-tSWWG44O7X1aa/9Udqfwiw
  Cc: linux-block-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yukuai3-hv44wF8Li93QT0dZR+AlfA, yi.zhang-hv44wF8Li93QT0dZR+AlfA

Our test report a UAF:

[ 2073.019181] ==================================================================
[ 2073.019188] BUG: KASAN: use-after-free in __bfq_put_async_bfqq+0xa0/0x168
[ 2073.019191] Write of size 8 at addr ffff8000ccf64128 by task rmmod/72584
[ 2073.019192]
[ 2073.019196] CPU: 0 PID: 72584 Comm: rmmod Kdump: loaded Not tainted 4.19.90-yk #5
[ 2073.019198] Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015
[ 2073.019200] Call trace:
[ 2073.019203]  dump_backtrace+0x0/0x310
[ 2073.019206]  show_stack+0x28/0x38
[ 2073.019210]  dump_stack+0xec/0x15c
[ 2073.019216]  print_address_description+0x68/0x2d0
[ 2073.019220]  kasan_report+0x238/0x2f0
[ 2073.019224]  __asan_store8+0x88/0xb0
[ 2073.019229]  __bfq_put_async_bfqq+0xa0/0x168
[ 2073.019233]  bfq_put_async_queues+0xbc/0x208
[ 2073.019236]  bfq_pd_offline+0x178/0x238
[ 2073.019240]  blkcg_deactivate_policy+0x1f0/0x420
[ 2073.019244]  bfq_exit_queue+0x128/0x178
[ 2073.019249]  blk_mq_exit_sched+0x12c/0x160
[ 2073.019252]  elevator_exit+0xc8/0xd0
[ 2073.019256]  blk_exit_queue+0x50/0x88
[ 2073.019259]  blk_cleanup_queue+0x228/0x3d8
[ 2073.019267]  null_del_dev+0xfc/0x1e0 [null_blk]
[ 2073.019274]  null_exit+0x90/0x114 [null_blk]
[ 2073.019278]  __arm64_sys_delete_module+0x358/0x5a0
[ 2073.019282]  el0_svc_common+0xc8/0x320
[ 2073.019287]  el0_svc_handler+0xf8/0x160
[ 2073.019290]  el0_svc+0x10/0x218
[ 2073.019291]
[ 2073.019294] Allocated by task 14163:
[ 2073.019301]  kasan_kmalloc+0xe0/0x190
[ 2073.019305]  kmem_cache_alloc_node_trace+0x1cc/0x418
[ 2073.019308]  bfq_pd_alloc+0x54/0x118
[ 2073.019313]  blkcg_activate_policy+0x250/0x460
[ 2073.019317]  bfq_create_group_hierarchy+0x38/0x110
[ 2073.019321]  bfq_init_queue+0x6d0/0x948
[ 2073.019325]  blk_mq_init_sched+0x1d8/0x390
[ 2073.019330]  elevator_switch_mq+0x88/0x170
[ 2073.019334]  elevator_switch+0x140/0x270
[ 2073.019338]  elv_iosched_store+0x1a4/0x2a0
[ 2073.019342]  queue_attr_store+0x90/0xe0
[ 2073.019348]  sysfs_kf_write+0xa8/0xe8
[ 2073.019351]  kernfs_fop_write+0x1f8/0x378
[ 2073.019359]  __vfs_write+0xe0/0x360
[ 2073.019363]  vfs_write+0xf0/0x270
[ 2073.019367]  ksys_write+0xdc/0x1b8
[ 2073.019371]  __arm64_sys_write+0x50/0x60
[ 2073.019375]  el0_svc_common+0xc8/0x320
[ 2073.019380]  el0_svc_handler+0xf8/0x160
[ 2073.019383]  el0_svc+0x10/0x218
[ 2073.019385]
[ 2073.019387] Freed by task 72584:
[ 2073.019391]  __kasan_slab_free+0x120/0x228
[ 2073.019394]  kasan_slab_free+0x10/0x18
[ 2073.019397]  kfree+0x94/0x368
[ 2073.019400]  bfqg_put+0x64/0xb0
[ 2073.019404]  bfqg_and_blkg_put+0x90/0xb0
[ 2073.019408]  bfq_put_queue+0x220/0x228
[ 2073.019413]  __bfq_put_async_bfqq+0x98/0x168
[ 2073.019416]  bfq_put_async_queues+0xbc/0x208
[ 2073.019420]  bfq_pd_offline+0x178/0x238
[ 2073.019424]  blkcg_deactivate_policy+0x1f0/0x420
[ 2073.019429]  bfq_exit_queue+0x128/0x178
[ 2073.019433]  blk_mq_exit_sched+0x12c/0x160
[ 2073.019437]  elevator_exit+0xc8/0xd0
[ 2073.019440]  blk_exit_queue+0x50/0x88
[ 2073.019443]  blk_cleanup_queue+0x228/0x3d8
[ 2073.019451]  null_del_dev+0xfc/0x1e0 [null_blk]
[ 2073.019459]  null_exit+0x90/0x114 [null_blk]
[ 2073.019462]  __arm64_sys_delete_module+0x358/0x5a0
[ 2073.019467]  el0_svc_common+0xc8/0x320
[ 2073.019471]  el0_svc_handler+0xf8/0x160
[ 2073.019474]  el0_svc+0x10/0x218
[ 2073.019475]
[ 2073.019479] The buggy address belongs to the object at ffff8000ccf63f00
 which belongs to the cache kmalloc-1024 of size 1024
[ 2073.019484] The buggy address is located 552 bytes inside of
 1024-byte region [ffff8000ccf63f00, ffff8000ccf64300)
[ 2073.019486] The buggy address belongs to the page:
[ 2073.019492] page:ffff7e000333d800 count:1 mapcount:0 mapping:ffff8000c0003a00 index:0x0 compound_mapcount: 0
[ 2073.020123] flags: 0x7ffff0000008100(slab|head)
[ 2073.020403] raw: 07ffff0000008100 ffff7e0003334c08 ffff7e00001f5a08 ffff8000c0003a00
[ 2073.020409] raw: 0000000000000000 00000000001c001c 00000001ffffffff 0000000000000000
[ 2073.020411] page dumped because: kasan: bad access detected
[ 2073.020412]
[ 2073.020414] Memory state around the buggy address:
[ 2073.020420]  ffff8000ccf64000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020424]  ffff8000ccf64080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020428] >ffff8000ccf64100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020430]                                   ^
[ 2073.020434]  ffff8000ccf64180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020438]  ffff8000ccf64200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 2073.020439] ==================================================================

The same problem exist in mainline as well.

This is because oom_bfqq is moved to a non-root group, thus root_group
is freed earlier.

Thus fix the problem by don't move oom_bfqq.

Signed-off-by: Yu Kuai <yukuai3-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
Reviewed-by: Jan Kara <jack-AlSwsSmVLrQ@public.gmane.org>
Acked-by: Paolo Valente <paolo.valente-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 block/bfq-cgroup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 9783c1156159..420eda2589c0 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -654,6 +654,12 @@ void bfq_bfqq_move(struct bfq_data *bfqd, struct bfq_queue *bfqq,
 	if (old_parent == bfqg)
 		return;
 
+	/*
+	 * oom_bfqq is not allowed to move, oom_bfqq will hold ref to root_group
+	 * until elevator exit.
+	 */
+	if (bfqq == &bfqd->oom_bfqq)
+		return;
 	/*
 	 * Get extra reference to prevent bfqq from being freed in
 	 * next possible expire or deactivate.
-- 
2.31.1


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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-01-29  2:05     ` yukuai (C)
  0 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-01-29  2:05 UTC (permalink / raw)
  To: Jens Axboe, paolo.valente, jack
  Cc: linux-block, cgroups, linux-kernel, yi.zhang

在 2022/01/29 9:51, Jens Axboe 写道:
> On 1/28/22 6:59 PM, Yu Kuai wrote:
>> Changes in v3:
>>   - fix a clerical error in patch 2
>>
>> Chagnes in v2:
>>   - add comment in patch 2
>>   - remove patch 4, since the problem do not exist.
>>
>> Yu Kuai (3):
>>    block, bfq: cleanup bfq_bfqq_to_bfqg()
>>    block, bfq: avoid moving bfqq to it's parent bfqg
>>    block, bfq: don't move oom_bfqq
>>
>>   block/bfq-cgroup.c  | 16 +++++++++++++++-
>>   block/bfq-iosched.c |  4 ++--
>>   block/bfq-iosched.h |  1 -
>>   block/bfq-wf2q.c    | 15 ---------------
>>   4 files changed, 17 insertions(+), 19 deletions(-)
> 
> I'm not even looking at this until you tell me that:
> 
> a) you've actually compiled this one. which, btw, I can't believe
>     needs mentioning, particularly when you had enough time to keep
>     pinging about this patchset.
> 
> b) it's actually be run. last one was clearly not.
> 
Hi,

I compiled and tested the patchset locally in a different version,
v4.19 specifically. However, after I decide to send them to mainline,
I made such clerical mistake and forgot to check the patches.

My sincerely apologize again...
Kuai

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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-01-29  2:05     ` yukuai (C)
  0 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-01-29  2:05 UTC (permalink / raw)
  To: Jens Axboe, paolo.valente-QSEj5FYQhm4dnm+yROfE0A, jack-AlSwsSmVLrQ
  Cc: linux-block-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yi.zhang-hv44wF8Li93QT0dZR+AlfA

在 2022/01/29 9:51, Jens Axboe 写道:
> On 1/28/22 6:59 PM, Yu Kuai wrote:
>> Changes in v3:
>>   - fix a clerical error in patch 2
>>
>> Chagnes in v2:
>>   - add comment in patch 2
>>   - remove patch 4, since the problem do not exist.
>>
>> Yu Kuai (3):
>>    block, bfq: cleanup bfq_bfqq_to_bfqg()
>>    block, bfq: avoid moving bfqq to it's parent bfqg
>>    block, bfq: don't move oom_bfqq
>>
>>   block/bfq-cgroup.c  | 16 +++++++++++++++-
>>   block/bfq-iosched.c |  4 ++--
>>   block/bfq-iosched.h |  1 -
>>   block/bfq-wf2q.c    | 15 ---------------
>>   4 files changed, 17 insertions(+), 19 deletions(-)
> 
> I'm not even looking at this until you tell me that:
> 
> a) you've actually compiled this one. which, btw, I can't believe
>     needs mentioning, particularly when you had enough time to keep
>     pinging about this patchset.
> 
> b) it's actually be run. last one was clearly not.
> 
Hi,

I compiled and tested the patchset locally in a different version,
v4.19 specifically. However, after I decide to send them to mainline,
I made such clerical mistake and forgot to check the patches.

My sincerely apologize again...
Kuai

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

* Re: [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg
  2022-01-29  1:59   ` Yu Kuai
@ 2022-02-08  3:53     ` yukuai (C)
  -1 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-02-08  3:53 UTC (permalink / raw)
  To: paolo.valente, jack, axboe; +Cc: linux-block, cgroups, linux-kernel, yi.zhang

在 2022/01/29 9:59, Yu Kuai 写道:
> Moving bfqq to it's parent bfqg is pointless.
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
>   block/bfq-cgroup.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)

Hi, Paolo

I make a clerical error in last version of this patch:

bfq_group should be bfqq_group

Can you please take a look of this patch? I do compile and
test the patch this time...

Thanks,
Kuai

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

* Re: [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg
@ 2022-02-08  3:53     ` yukuai (C)
  0 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-02-08  3:53 UTC (permalink / raw)
  To: paolo.valente, jack, axboe; +Cc: linux-block, cgroups, linux-kernel, yi.zhang

ÔÚ 2022/01/29 9:59, Yu Kuai дµÀ:
> Moving bfqq to it's parent bfqg is pointless.
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
>   block/bfq-cgroup.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)

Hi, Paolo

I make a clerical error in last version of this patch:

bfq_group should be bfqq_group

Can you please take a look of this patch? I do compile and
test the patch this time...

Thanks,
Kuai

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

* Re: [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg
@ 2022-02-08 16:07       ` Paolo Valente
  0 siblings, 0 replies; 21+ messages in thread
From: Paolo Valente @ 2022-02-08 16:07 UTC (permalink / raw)
  To: yukuai (C)
  Cc: Jan Kara, Jens Axboe, linux-block, cgroups, linux-kernel, yi.zhang



> Il giorno 8 feb 2022, alle ore 04:53, yukuai (C) <yukuai3@huawei.com> ha scritto:
> 
> 在 2022/01/29 9:59, Yu Kuai 写道:
>> Moving bfqq to it's parent bfqg is pointless.
>> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
>> ---
>>  block/bfq-cgroup.c | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> Hi, Paolo
> 
> I make a clerical error in last version of this patch:
> 
> bfq_group should be bfqq_group
> 
> Can you please take a look of this patch? I do compile and
> test the patch this time...
> 

Haven't I acked this patch series already?

Thanks,
Paolo

> Thanks,
> Kuai


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

* Re: [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg
@ 2022-02-08 16:07       ` Paolo Valente
  0 siblings, 0 replies; 21+ messages in thread
From: Paolo Valente @ 2022-02-08 16:07 UTC (permalink / raw)
  To: yukuai (C)
  Cc: Jan Kara, Jens Axboe, linux-block,
	cgroups-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yi.zhang-hv44wF8Li93QT0dZR+AlfA



> Il giorno 8 feb 2022, alle ore 04:53, yukuai (C) <yukuai3-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> ha scritto:
> 
> 在 2022/01/29 9:59, Yu Kuai 写道:
>> Moving bfqq to it's parent bfqg is pointless.
>> Signed-off-by: Yu Kuai <yukuai3-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
>> ---
>>  block/bfq-cgroup.c | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> Hi, Paolo
> 
> I make a clerical error in last version of this patch:
> 
> bfq_group should be bfqq_group
> 
> Can you please take a look of this patch? I do compile and
> test the patch this time...
> 

Haven't I acked this patch series already?

Thanks,
Paolo

> Thanks,
> Kuai


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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
  2022-01-29  2:05     ` yukuai (C)
@ 2022-02-10 11:46       ` yukuai (C)
  -1 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-02-10 11:46 UTC (permalink / raw)
  To: Jens Axboe
  Cc: paolo.valente, jack, linux-block, cgroups, linux-kernel, yi.zhang

在 2022/01/29 10:05, yukuai (C) 写道:
> 在 2022/01/29 9:51, Jens Axboe 写道:
>> On 1/28/22 6:59 PM, Yu Kuai wrote:
>>> Changes in v3:
>>>   - fix a clerical error in patch 2
>>>
>>> Chagnes in v2:
>>>   - add comment in patch 2
>>>   - remove patch 4, since the problem do not exist.
>>>
>>> Yu Kuai (3):
>>>    block, bfq: cleanup bfq_bfqq_to_bfqg()
>>>    block, bfq: avoid moving bfqq to it's parent bfqg
>>>    block, bfq: don't move oom_bfqq
>>>
>>>   block/bfq-cgroup.c  | 16 +++++++++++++++-
>>>   block/bfq-iosched.c |  4 ++--
>>>   block/bfq-iosched.h |  1 -
>>>   block/bfq-wf2q.c    | 15 ---------------
>>>   4 files changed, 17 insertions(+), 19 deletions(-)
>>
>> I'm not even looking at this until you tell me that:
>>
>> a) you've actually compiled this one. which, btw, I can't believe
>>     needs mentioning, particularly when you had enough time to keep
>>     pinging about this patchset.
>>
>> b) it's actually be run. last one was clearly not.
>>
> Hi,
> 
> I compiled and tested the patchset locally in a different version,
> v4.19 specifically. However, after I decide to send them to mainline,
> I made such clerical mistake and forgot to check the patches.
> 
> My sincerely apologize again...
> Kuai

Hi, Jens

Can you please apply this patch this time?

Thanks,
Kuai

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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-02-10 11:46       ` yukuai (C)
  0 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-02-10 11:46 UTC (permalink / raw)
  To: Jens Axboe
  Cc: paolo.valente, jack, linux-block, cgroups, linux-kernel, yi.zhang

在 2022/01/29 10:05, yukuai (C) 写道:
> 在 2022/01/29 9:51, Jens Axboe 写道:
>> On 1/28/22 6:59 PM, Yu Kuai wrote:
>>> Changes in v3:
>>>   - fix a clerical error in patch 2
>>>
>>> Chagnes in v2:
>>>   - add comment in patch 2
>>>   - remove patch 4, since the problem do not exist.
>>>
>>> Yu Kuai (3):
>>>    block, bfq: cleanup bfq_bfqq_to_bfqg()
>>>    block, bfq: avoid moving bfqq to it's parent bfqg
>>>    block, bfq: don't move oom_bfqq
>>>
>>>   block/bfq-cgroup.c  | 16 +++++++++++++++-
>>>   block/bfq-iosched.c |  4 ++--
>>>   block/bfq-iosched.h |  1 -
>>>   block/bfq-wf2q.c    | 15 ---------------
>>>   4 files changed, 17 insertions(+), 19 deletions(-)
>>
>> I'm not even looking at this until you tell me that:
>>
>> a) you've actually compiled this one. which, btw, I can't believe
>>     needs mentioning, particularly when you had enough time to keep
>>     pinging about this patchset.
>>
>> b) it's actually be run. last one was clearly not.
>>
> Hi,
> 
> I compiled and tested the patchset locally in a different version,
> v4.19 specifically. However, after I decide to send them to mainline,
> I made such clerical mistake and forgot to check the patches.
> 
> My sincerely apologize again...
> Kuai

Hi, Jens

Can you please apply this patch this time?

Thanks,
Kuai

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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-02-18  8:30         ` yukuai (C)
  0 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-02-18  8:30 UTC (permalink / raw)
  To: Jens Axboe
  Cc: paolo.valente, jack, linux-block, cgroups, linux-kernel, yi.zhang

friendly ping ...

在 2022/02/10 19:46, yukuai (C) 写道:
> 在 2022/01/29 10:05, yukuai (C) 写道:
>> 在 2022/01/29 9:51, Jens Axboe 写道:
>>> On 1/28/22 6:59 PM, Yu Kuai wrote:
>>>> Changes in v3:
>>>>   - fix a clerical error in patch 2
>>>>
>>>> Chagnes in v2:
>>>>   - add comment in patch 2
>>>>   - remove patch 4, since the problem do not exist.
>>>>
>>>> Yu Kuai (3):
>>>>    block, bfq: cleanup bfq_bfqq_to_bfqg()
>>>>    block, bfq: avoid moving bfqq to it's parent bfqg
>>>>    block, bfq: don't move oom_bfqq
>>>>
>>>>   block/bfq-cgroup.c  | 16 +++++++++++++++-
>>>>   block/bfq-iosched.c |  4 ++--
>>>>   block/bfq-iosched.h |  1 -
>>>>   block/bfq-wf2q.c    | 15 ---------------
>>>>   4 files changed, 17 insertions(+), 19 deletions(-)
>>>
>>> I'm not even looking at this until you tell me that:
>>>
>>> a) you've actually compiled this one. which, btw, I can't believe
>>>     needs mentioning, particularly when you had enough time to keep
>>>     pinging about this patchset.
>>>
>>> b) it's actually be run. last one was clearly not.
>>>
>> Hi,
>>
>> I compiled and tested the patchset locally in a different version,
>> v4.19 specifically. However, after I decide to send them to mainline,
>> I made such clerical mistake and forgot to check the patches.
>>
>> My sincerely apologize again...
>> Kuai
> 
> Hi, Jens
> 
> Can you please apply this patch this time?
> 
> Thanks,
> Kuai

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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
@ 2022-02-18  8:30         ` yukuai (C)
  0 siblings, 0 replies; 21+ messages in thread
From: yukuai (C) @ 2022-02-18  8:30 UTC (permalink / raw)
  To: Jens Axboe
  Cc: paolo.valente-QSEj5FYQhm4dnm+yROfE0A, jack-AlSwsSmVLrQ,
	linux-block-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yi.zhang-hv44wF8Li93QT0dZR+AlfA

friendly ping ...

在 2022/02/10 19:46, yukuai (C) 写道:
> 在 2022/01/29 10:05, yukuai (C) 写道:
>> 在 2022/01/29 9:51, Jens Axboe 写道:
>>> On 1/28/22 6:59 PM, Yu Kuai wrote:
>>>> Changes in v3:
>>>>   - fix a clerical error in patch 2
>>>>
>>>> Chagnes in v2:
>>>>   - add comment in patch 2
>>>>   - remove patch 4, since the problem do not exist.
>>>>
>>>> Yu Kuai (3):
>>>>    block, bfq: cleanup bfq_bfqq_to_bfqg()
>>>>    block, bfq: avoid moving bfqq to it's parent bfqg
>>>>    block, bfq: don't move oom_bfqq
>>>>
>>>>   block/bfq-cgroup.c  | 16 +++++++++++++++-
>>>>   block/bfq-iosched.c |  4 ++--
>>>>   block/bfq-iosched.h |  1 -
>>>>   block/bfq-wf2q.c    | 15 ---------------
>>>>   4 files changed, 17 insertions(+), 19 deletions(-)
>>>
>>> I'm not even looking at this until you tell me that:
>>>
>>> a) you've actually compiled this one. which, btw, I can't believe
>>>     needs mentioning, particularly when you had enough time to keep
>>>     pinging about this patchset.
>>>
>>> b) it's actually be run. last one was clearly not.
>>>
>> Hi,
>>
>> I compiled and tested the patchset locally in a different version,
>> v4.19 specifically. However, after I decide to send them to mainline,
>> I made such clerical mistake and forgot to check the patches.
>>
>> My sincerely apologize again...
>> Kuai
> 
> Hi, Jens
> 
> Can you please apply this patch this time?
> 
> Thanks,
> Kuai

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

* Re: [PATCH v3 0/3] block, bfq: minor cleanup and fix
  2022-01-29  1:59 ` Yu Kuai
                   ` (4 preceding siblings ...)
  (?)
@ 2022-02-18 13:13 ` Jens Axboe
  -1 siblings, 0 replies; 21+ messages in thread
From: Jens Axboe @ 2022-02-18 13:13 UTC (permalink / raw)
  To: jack, Yu Kuai, paolo.valente; +Cc: linux-block, yi.zhang, linux-kernel, cgroups

On Sat, 29 Jan 2022 09:59:21 +0800, Yu Kuai wrote:
> Changes in v3:
>  - fix a clerical error in patch 2
> 
> Chagnes in v2:
>  - add comment in patch 2
>  - remove patch 4, since the problem do not exist.
> 
> [...]

Applied, thanks!

[1/3] block, bfq: cleanup bfq_bfqq_to_bfqg()
      commit: 43a4b1fee098bd38eed9c334d0e0df221ecdf719
[2/3] block, bfq: avoid moving bfqq to it's parent bfqg
      commit: c5e4cb0fcbbaa5ad853818c4a2383e9bd147fad6
[3/3] block, bfq: don't move oom_bfqq
      commit: 8410f70977734f21b8ed45c37e925d311dfda2e7

Best regards,
-- 
Jens Axboe



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

end of thread, other threads:[~2022-02-18 13:13 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-29  1:59 [PATCH v3 0/3] block, bfq: minor cleanup and fix Yu Kuai
2022-01-29  1:59 ` Yu Kuai
2022-01-29  1:51 ` Jens Axboe
2022-01-29  1:51   ` Jens Axboe
2022-01-29  2:05   ` yukuai (C)
2022-01-29  2:05     ` yukuai (C)
2022-02-10 11:46     ` yukuai (C)
2022-02-10 11:46       ` yukuai (C)
2022-02-18  8:30       ` yukuai (C)
2022-02-18  8:30         ` yukuai (C)
2022-01-29  1:59 ` [PATCH v3 1/3] block, bfq: cleanup bfq_bfqq_to_bfqg() Yu Kuai
2022-01-29  1:59   ` Yu Kuai
2022-01-29  1:59 ` [PATCH v3 2/3] block, bfq: avoid moving bfqq to it's parent bfqg Yu Kuai
2022-01-29  1:59   ` Yu Kuai
2022-02-08  3:53   ` yukuai (C)
2022-02-08  3:53     ` yukuai (C)
2022-02-08 16:07     ` Paolo Valente
2022-02-08 16:07       ` Paolo Valente
2022-01-29  1:59 ` [PATCH v3 3/3] block, bfq: don't move oom_bfqq Yu Kuai
2022-01-29  1:59   ` Yu Kuai
2022-02-18 13:13 ` [PATCH v3 0/3] block, bfq: minor cleanup and fix Jens Axboe

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.