All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] random improvments and cleanups for elevator.c
@ 2022-11-22 14:21 Jinlong Chen
  2022-11-22 14:21 ` [PATCH 1/4] elevator: update the document of elevator_switch Jinlong Chen
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Jinlong Chen @ 2022-11-22 14:21 UTC (permalink / raw)
  To: axboe; +Cc: hch, linux-block, linux-kernel, nickyc975

This series updates some function documents (patch 1 and 3), removes an
outdated comment (patch 4), and adds a warning message (patch 2) in
elevator.c.

Jinlong Chen (4):
  elevator: update the document of elevator_switch
  elevator: printk a warning if switching to a new io scheduler fails
  elevator: update the document of elevator_match
  elevator: remove an outdated comment in elevator_change

 block/elevator.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

-- 
2.34.1


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

* [PATCH 1/4] elevator: update the document of elevator_switch
  2022-11-22 14:21 [PATCH 0/4] random improvments and cleanups for elevator.c Jinlong Chen
@ 2022-11-22 14:21 ` Jinlong Chen
  2022-11-23  7:37   ` Christoph Hellwig
  2022-11-22 14:21 ` [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails Jinlong Chen
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Jinlong Chen @ 2022-11-22 14:21 UTC (permalink / raw)
  To: axboe; +Cc: hch, linux-block, linux-kernel, nickyc975

We no longer support falling back to the old io scheduler if switching to
the new one fails. Update the document to indicate that.

Fixes: a1ce35fa4985 ("block: remove dead elevator code")
Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
---
 block/elevator.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/block/elevator.c b/block/elevator.c
index a5bdc3b1e7e5..01aa9f38f22e 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -650,10 +650,10 @@ void elevator_init_mq(struct request_queue *q)
 }
 
 /*
- * switch to new_e io scheduler. be careful not to introduce deadlocks -
- * we don't free the old io scheduler, before we have allocated what we
- * need for the new one. this way we have a chance of going back to the old
- * one, if the new one fails init for some reason.
+ * Switch to new_e io scheduler.
+ *
+ * If switching fails, we are most likely running out of memory and not able
+ * to restore the old io scheduler, so leaving the io scheduler being none.
  */
 int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
 {
-- 
2.34.1


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

* [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails
  2022-11-22 14:21 [PATCH 0/4] random improvments and cleanups for elevator.c Jinlong Chen
  2022-11-22 14:21 ` [PATCH 1/4] elevator: update the document of elevator_switch Jinlong Chen
@ 2022-11-22 14:21 ` Jinlong Chen
  2022-11-22 14:55   ` Jinlong Chen
  2022-11-23  7:37   ` Christoph Hellwig
  2022-11-22 14:21 ` [PATCH 3/4] elevator: update the document of elevator_match Jinlong Chen
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: Jinlong Chen @ 2022-11-22 14:21 UTC (permalink / raw)
  To: axboe; +Cc: hch, linux-block, linux-kernel, nickyc975

printk a warning to indicate that the io scheduler has been set to none
if switching to a new io scheduler fails.

Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
---
 block/elevator.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/block/elevator.c b/block/elevator.c
index 01aa9f38f22e..1fa45717b1d6 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -683,6 +683,12 @@ int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
 out_unfreeze:
 	blk_mq_unquiesce_queue(q);
 	blk_mq_unfreeze_queue(q);
+
+	if (ret) {
+		pr_warn("elv: switch to \"%s\" failed, falling back to \"none\"\n",
+			new_e->elevator_name);
+	}
+
 	return ret;
 }
 
-- 
2.34.1


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

* [PATCH 3/4] elevator: update the document of elevator_match
  2022-11-22 14:21 [PATCH 0/4] random improvments and cleanups for elevator.c Jinlong Chen
  2022-11-22 14:21 ` [PATCH 1/4] elevator: update the document of elevator_switch Jinlong Chen
  2022-11-22 14:21 ` [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails Jinlong Chen
@ 2022-11-22 14:21 ` Jinlong Chen
  2022-11-23  7:37   ` Christoph Hellwig
  2022-11-22 14:21 ` [PATCH 4/4] elevator: remove an outdated comment in elevator_change Jinlong Chen
  2022-11-23 13:53 ` [PATCH 0/4] random improvments and cleanups for elevator.c Jens Axboe
  4 siblings, 1 reply; 11+ messages in thread
From: Jinlong Chen @ 2022-11-22 14:21 UTC (permalink / raw)
  To: axboe; +Cc: hch, linux-block, linux-kernel, nickyc975

elevator_match does not care about elevator_features any more. Remove
related descriptions from its document.

Fixes: ffb86425ee2c ("block: don't check for required features in elevator_match")
Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
---
 block/elevator.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/block/elevator.c b/block/elevator.c
index 1fa45717b1d6..5287b39cd7a9 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -91,12 +91,11 @@ static inline bool elv_support_features(struct request_queue *q,
 }
 
 /**
- * elevator_match - Test an elevator name and features
+ * elevator_match - Check whether @e's name or alias matches @name
  * @e: Scheduler to test
  * @name: Elevator name to test
  *
- * Return true if the elevator @e name matches @name and if @e provides all
- * the features specified by @required_features.
+ * Return true if the elevator @e's name or alias matches @name.
  */
 static bool elevator_match(const struct elevator_type *e, const char *name)
 {
-- 
2.34.1


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

* [PATCH 4/4] elevator: remove an outdated comment in elevator_change
  2022-11-22 14:21 [PATCH 0/4] random improvments and cleanups for elevator.c Jinlong Chen
                   ` (2 preceding siblings ...)
  2022-11-22 14:21 ` [PATCH 3/4] elevator: update the document of elevator_match Jinlong Chen
@ 2022-11-22 14:21 ` Jinlong Chen
  2022-11-23  7:38   ` Christoph Hellwig
  2022-11-23 13:53 ` [PATCH 0/4] random improvments and cleanups for elevator.c Jens Axboe
  4 siblings, 1 reply; 11+ messages in thread
From: Jinlong Chen @ 2022-11-22 14:21 UTC (permalink / raw)
  To: axboe; +Cc: hch, linux-block, linux-kernel, nickyc975

mq is no longer a special case.

Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
---
 block/elevator.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/block/elevator.c b/block/elevator.c
index 5287b39cd7a9..599413620558 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -721,9 +721,6 @@ static int elevator_change(struct request_queue *q, const char *elevator_name)
 	if (!blk_queue_registered(q))
 		return -ENOENT;
 
-	/*
-	 * Special case for mq, turn off scheduling
-	 */
 	if (!strncmp(elevator_name, "none", 4)) {
 		if (q->elevator)
 			elevator_disable(q);
-- 
2.34.1


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

* Re: [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails
  2022-11-22 14:21 ` [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails Jinlong Chen
@ 2022-11-22 14:55   ` Jinlong Chen
  2022-11-23  7:37   ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: Jinlong Chen @ 2022-11-22 14:55 UTC (permalink / raw)
  To: axboe; +Cc: hch, linux-block, linux-kernel

> 
> printk a warning to indicate that the io scheduler has been set to none
> if switching to a new io scheduler fails.
> 
> Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
> ---
>  block/elevator.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/block/elevator.c b/block/elevator.c
> index 01aa9f38f22e..1fa45717b1d6 100644
> --- a/block/elevator.c
> +++ b/block/elevator.c
> @@ -683,6 +683,12 @@ int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
>  out_unfreeze:
>  	blk_mq_unquiesce_queue(q);
>  	blk_mq_unfreeze_queue(q);
> +
> +	if (ret) {
> +		pr_warn("elv: switch to \"%s\" failed, falling back to \"none\"\n",
> +			new_e->elevator_name);
> +	}
> +
>  	return ret;
>  }
>  

Hi, Jens!

This patch is suggested by Christoph, but I forgot to add the Suggested-by
tag. Would you please add "Suggested-by: Christoph Hellwig <hch@lst.de>"
if you apply the patch?

Thanks!
Jinlong Chen

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

* Re: [PATCH 1/4] elevator: update the document of elevator_switch
  2022-11-22 14:21 ` [PATCH 1/4] elevator: update the document of elevator_switch Jinlong Chen
@ 2022-11-23  7:37   ` Christoph Hellwig
  0 siblings, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2022-11-23  7:37 UTC (permalink / raw)
  To: Jinlong Chen; +Cc: axboe, hch, linux-block, linux-kernel

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails
  2022-11-22 14:21 ` [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails Jinlong Chen
  2022-11-22 14:55   ` Jinlong Chen
@ 2022-11-23  7:37   ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2022-11-23  7:37 UTC (permalink / raw)
  To: Jinlong Chen; +Cc: axboe, hch, linux-block, linux-kernel

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH 3/4] elevator: update the document of elevator_match
  2022-11-22 14:21 ` [PATCH 3/4] elevator: update the document of elevator_match Jinlong Chen
@ 2022-11-23  7:37   ` Christoph Hellwig
  0 siblings, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2022-11-23  7:37 UTC (permalink / raw)
  To: Jinlong Chen; +Cc: axboe, hch, linux-block, linux-kernel

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH 4/4] elevator: remove an outdated comment in elevator_change
  2022-11-22 14:21 ` [PATCH 4/4] elevator: remove an outdated comment in elevator_change Jinlong Chen
@ 2022-11-23  7:38   ` Christoph Hellwig
  0 siblings, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2022-11-23  7:38 UTC (permalink / raw)
  To: Jinlong Chen; +Cc: axboe, hch, linux-block, linux-kernel

On Tue, Nov 22, 2022 at 10:21:26PM +0800, Jinlong Chen wrote:
> mq is no longer a special case.

But switching to none still is a special case.  Then again this should
be very obvious from the code, so I'm fine the comment removal:

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH 0/4] random improvments and cleanups for elevator.c
  2022-11-22 14:21 [PATCH 0/4] random improvments and cleanups for elevator.c Jinlong Chen
                   ` (3 preceding siblings ...)
  2022-11-22 14:21 ` [PATCH 4/4] elevator: remove an outdated comment in elevator_change Jinlong Chen
@ 2022-11-23 13:53 ` Jens Axboe
  4 siblings, 0 replies; 11+ messages in thread
From: Jens Axboe @ 2022-11-23 13:53 UTC (permalink / raw)
  To: Jinlong Chen; +Cc: linux-block, hch, linux-kernel

On Tue, 22 Nov 2022 22:21:22 +0800, Jinlong Chen wrote:
> This series updates some function documents (patch 1 and 3), removes an
> outdated comment (patch 4), and adds a warning message (patch 2) in
> elevator.c.
> 
> Jinlong Chen (4):
>   elevator: update the document of elevator_switch
>   elevator: printk a warning if switching to a new io scheduler fails
>   elevator: update the document of elevator_match
>   elevator: remove an outdated comment in elevator_change
> 
> [...]

Applied, thanks!

[1/4] elevator: update the document of elevator_switch
      commit: ac1171bd2c7a3a32dfbdd3c347919fee32b745a1
[2/4] elevator: printk a warning if switching to a new io scheduler fails
      commit: e0cca8bc9cd8d6176921cb3f5f466d3ccfbc6b99
[3/4] elevator: update the document of elevator_match
      commit: f69b5e8f356e4e57e94b806ca1dcb9771933bb9c
[4/4] elevator: remove an outdated comment in elevator_change
      commit: 4284354758d67cf77ab2a4494e28d4c05fb83074

Best regards,
-- 
Jens Axboe



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

end of thread, other threads:[~2022-11-23 13:59 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-22 14:21 [PATCH 0/4] random improvments and cleanups for elevator.c Jinlong Chen
2022-11-22 14:21 ` [PATCH 1/4] elevator: update the document of elevator_switch Jinlong Chen
2022-11-23  7:37   ` Christoph Hellwig
2022-11-22 14:21 ` [PATCH 2/4] elevator: printk a warning if switching to a new io scheduler fails Jinlong Chen
2022-11-22 14:55   ` Jinlong Chen
2022-11-23  7:37   ` Christoph Hellwig
2022-11-22 14:21 ` [PATCH 3/4] elevator: update the document of elevator_match Jinlong Chen
2022-11-23  7:37   ` Christoph Hellwig
2022-11-22 14:21 ` [PATCH 4/4] elevator: remove an outdated comment in elevator_change Jinlong Chen
2022-11-23  7:38   ` Christoph Hellwig
2022-11-23 13:53 ` [PATCH 0/4] random improvments and cleanups for elevator.c 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.