mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] locking/osq: remove spin node definition from header
@ 2023-10-10  9:53 Thomas Weißschuh
  2023-10-10 23:07 ` Waiman Long
  0 siblings, 1 reply; 2+ messages in thread
From: Thomas Weißschuh @ 2023-10-10  9:53 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Will Deacon, Waiman Long, Boqun Feng
  Cc: linux-kernel, Thomas Weißschuh

This structure is an implementation detail of osq_lock.c, and there are
no external users.

Also drop the redundant overview comment from osq_lock.c.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 include/linux/osq_lock.h  | 5 -----
 kernel/locking/osq_lock.c | 9 ++++++---
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/include/linux/osq_lock.h b/include/linux/osq_lock.h
index 5581dbd3bd34..ea8fb31379e3 100644
--- a/include/linux/osq_lock.h
+++ b/include/linux/osq_lock.h
@@ -6,11 +6,6 @@
  * An MCS like lock especially tailored for optimistic spinning for sleeping
  * lock implementations (mutex, rwsem, etc).
  */
-struct optimistic_spin_node {
-	struct optimistic_spin_node *next, *prev;
-	int locked; /* 1 if lock acquired */
-	int cpu; /* encoded CPU # + 1 value */
-};
 
 struct optimistic_spin_queue {
 	/*
diff --git a/kernel/locking/osq_lock.c b/kernel/locking/osq_lock.c
index d5610ad52b92..918866edbc30 100644
--- a/kernel/locking/osq_lock.c
+++ b/kernel/locking/osq_lock.c
@@ -3,10 +3,13 @@
 #include <linux/sched.h>
 #include <linux/osq_lock.h>
 
+struct optimistic_spin_node {
+	struct optimistic_spin_node *next, *prev;
+	int locked; /* 1 if lock acquired */
+	int cpu; /* encoded CPU # + 1 value */
+};
+
 /*
- * An MCS like lock especially tailored for optimistic spinning for sleeping
- * lock implementations (mutex, rwsem, etc).
- *
  * Using a single mcs node per CPU is safe because sleeping locks should not be
  * called from interrupt context and we have preemption disabled while
  * spinning.

---
base-commit: 94f6f0550c625fab1f373bb86a6669b45e9748b3
change-id: 20231010-osq-header-9aca778ade30

Best regards,
-- 
Thomas Weißschuh <linux@weissschuh.net>


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

* Re: [PATCH] locking/osq: remove spin node definition from header
  2023-10-10  9:53 [PATCH] locking/osq: remove spin node definition from header Thomas Weißschuh
@ 2023-10-10 23:07 ` Waiman Long
  0 siblings, 0 replies; 2+ messages in thread
From: Waiman Long @ 2023-10-10 23:07 UTC (permalink / raw)
  To: Thomas Weißschuh, Peter Zijlstra, Ingo Molnar, Will Deacon,
	Boqun Feng
  Cc: linux-kernel


On 10/10/23 05:53, Thomas Weißschuh wrote:
> This structure is an implementation detail of osq_lock.c, and there are
> no external users.
>
> Also drop the redundant overview comment from osq_lock.c.
>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
>   include/linux/osq_lock.h  | 5 -----
>   kernel/locking/osq_lock.c | 9 ++++++---
>   2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/include/linux/osq_lock.h b/include/linux/osq_lock.h
> index 5581dbd3bd34..ea8fb31379e3 100644
> --- a/include/linux/osq_lock.h
> +++ b/include/linux/osq_lock.h
> @@ -6,11 +6,6 @@
>    * An MCS like lock especially tailored for optimistic spinning for sleeping
>    * lock implementations (mutex, rwsem, etc).
>    */
> -struct optimistic_spin_node {
> -	struct optimistic_spin_node *next, *prev;
> -	int locked; /* 1 if lock acquired */
> -	int cpu; /* encoded CPU # + 1 value */
> -};

It is probably better to drop the MCS like lock comment here as it is 
not relevant without the optimistic_spin_node struct.


>   
>   struct optimistic_spin_queue {
>   	/*
> diff --git a/kernel/locking/osq_lock.c b/kernel/locking/osq_lock.c
> index d5610ad52b92..918866edbc30 100644
> --- a/kernel/locking/osq_lock.c
> +++ b/kernel/locking/osq_lock.c
> @@ -3,10 +3,13 @@
>   #include <linux/sched.h>
>   #include <linux/osq_lock.h>
>   
> +struct optimistic_spin_node {
> +	struct optimistic_spin_node *next, *prev;
> +	int locked; /* 1 if lock acquired */
> +	int cpu; /* encoded CPU # + 1 value */
> +};
> +
>   /*
> - * An MCS like lock especially tailored for optimistic spinning for sleeping
> - * lock implementations (mutex, rwsem, etc).
> - *
>    * Using a single mcs node per CPU is safe because sleeping locks should not be
>    * called from interrupt context and we have preemption disabled while
>    * spinning.

We should keep the MCS comment here. My other suggestion is to put the 
structure definition after the comment.

Other than these minor nits, it is a worthwhile cleanup patch.

Cheers,
Longman


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

end of thread, other threads:[~2023-10-10 23:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-10  9:53 [PATCH] locking/osq: remove spin node definition from header Thomas Weißschuh
2023-10-10 23:07 ` Waiman Long

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®