The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] printk: modify console_unlock with printk-safe macros
@ 2017-07-15 10:36 Pierre Kuo
  2017-07-15 12:36 ` Andy Shevchenko
  2017-07-17  9:28 ` Sergey Senozhatsky
  0 siblings, 2 replies; 4+ messages in thread
From: Pierre Kuo @ 2017-07-15 10:36 UTC (permalink / raw)
  To: pmladek; +Cc: sergey.senozhatsky, rostedt, linux-kernel, joe, pierre Kuo

From: pierre Kuo <vichy.kuo@gmail.com>

In commit de6fcbdb68b2 ("printk: convert the rest to printk-safe"), we
create 4 helper macros to make printk-safe usage easier.
Here we modify some part of console_unlock with above marcros.

Signed-off-by: Pierre Kuo <vichy.kuo@gmail.com>
---
 kernel/printk/printk.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index fc47863..21557cc 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2194,8 +2194,7 @@ void console_unlock(void)
 		size_t ext_len = 0;
 		size_t len;
 
-		printk_safe_enter_irqsave(flags);
-		raw_spin_lock(&logbuf_lock);
+		logbuf_lock_irqsave(flags);
 		if (seen_seq != log_next_seq) {
 			wake_klogd = true;
 			seen_seq = log_next_seq;
@@ -2267,8 +2266,7 @@ void console_unlock(void)
 	 */
 	raw_spin_lock(&logbuf_lock);
 	retry = console_seq != log_next_seq;
-	raw_spin_unlock(&logbuf_lock);
-	printk_safe_exit_irqrestore(flags);
+	logbuf_unlock_irqrestore(flags);
 
 	if (retry && console_trylock())
 		goto again;
-- 
1.7.9.5

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

* Re: [PATCH] printk: modify console_unlock with printk-safe macros
  2017-07-15 10:36 [PATCH] printk: modify console_unlock with printk-safe macros Pierre Kuo
@ 2017-07-15 12:36 ` Andy Shevchenko
  2017-07-17  9:28 ` Sergey Senozhatsky
  1 sibling, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2017-07-15 12:36 UTC (permalink / raw)
  To: Pierre Kuo
  Cc: Petr Mladek, Sergey Senozhatsky, Steven Rostedt,
	linux-kernel@vger.kernel.org, Joe Perches

On Sat, Jul 15, 2017 at 1:36 PM, Pierre Kuo <vichy.kuo@gmail.com> wrote:
> In commit de6fcbdb68b2 ("printk: convert the rest to printk-safe"), we
> create 4 helper macros to make printk-safe usage easier.
> Here we modify some part of console_unlock with above marcros.

>         raw_spin_lock(&logbuf_lock);

...and now we have "orphaned" call to lock.

> -       raw_spin_unlock(&logbuf_lock);

> +       logbuf_unlock_irqrestore(flags);

Personally I can't say this makes things clearer.

-- 
With Best Regards,
Andy Shevchenko

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

* Re: [PATCH] printk: modify console_unlock with printk-safe macros
  2017-07-15 10:36 [PATCH] printk: modify console_unlock with printk-safe macros Pierre Kuo
  2017-07-15 12:36 ` Andy Shevchenko
@ 2017-07-17  9:28 ` Sergey Senozhatsky
  2017-07-17 11:06   ` pierre kuo
  1 sibling, 1 reply; 4+ messages in thread
From: Sergey Senozhatsky @ 2017-07-17  9:28 UTC (permalink / raw)
  To: Pierre Kuo; +Cc: pmladek, sergey.senozhatsky, rostedt, linux-kernel, joe

On (07/15/17 18:36), Pierre Kuo wrote:
[..]
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index fc47863..21557cc 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -2194,8 +2194,7 @@ void console_unlock(void)
>  		size_t ext_len = 0;
>  		size_t len;
>  
> -		printk_safe_enter_irqsave(flags);
> -		raw_spin_lock(&logbuf_lock);
> +		logbuf_lock_irqsave(flags);
>  		if (seen_seq != log_next_seq) {
>  			wake_klogd = true;
>  			seen_seq = log_next_seq;
> @@ -2267,8 +2266,7 @@ void console_unlock(void)
>  	 */
>  	raw_spin_lock(&logbuf_lock);
>  	retry = console_seq != log_next_seq;
> -	raw_spin_unlock(&logbuf_lock);
> -	printk_safe_exit_irqrestore(flags);
> +	logbuf_unlock_irqrestore(flags);
>  
>  	if (retry && console_trylock())
>  		goto again;

I did it that particular way for a reason - console_unlock() does a
bunch of tricks: unlocking logbuf in the middle of printing loop,
breaking out of loop with local IRQs disabled, re-taking the logbuf
after the loop still will local IRQs disabled, etc. etc. I didn't
want to (and still don't) mix-in logbuf macros; we do things that
macros don't cover anyway. sorry, I don't agree that the patch
improves readability.

	-ss

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

* Re: [PATCH] printk: modify console_unlock with printk-safe macros
  2017-07-17  9:28 ` Sergey Senozhatsky
@ 2017-07-17 11:06   ` pierre kuo
  0 siblings, 0 replies; 4+ messages in thread
From: pierre kuo @ 2017-07-17 11:06 UTC (permalink / raw)
  To: Sergey Senozhatsky
  Cc: Petr Mladek, Sergey Senozhatsky, rostedt, linux-kernel,
	Joe Perches

hi Sergey and Andy:
> On (07/15/17 18:36), Pierre Kuo wrote:
> [..]
>> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
>> index fc47863..21557cc 100644
>> --- a/kernel/printk/printk.c
>> +++ b/kernel/printk/printk.c
>> @@ -2194,8 +2194,7 @@ void console_unlock(void)
>>               size_t ext_len = 0;
>>               size_t len;
>>
>> -             printk_safe_enter_irqsave(flags);
>> -             raw_spin_lock(&logbuf_lock);
>> +             logbuf_lock_irqsave(flags);
>>               if (seen_seq != log_next_seq) {
>>                       wake_klogd = true;
>>                       seen_seq = log_next_seq;
>> @@ -2267,8 +2266,7 @@ void console_unlock(void)
>>        */
>>       raw_spin_lock(&logbuf_lock);
>>       retry = console_seq != log_next_seq;
>> -     raw_spin_unlock(&logbuf_lock);
>> -     printk_safe_exit_irqrestore(flags);
>> +     logbuf_unlock_irqrestore(flags);
>>
>>       if (retry && console_trylock())
>>               goto again;
>
> I did it that particular way for a reason - console_unlock() does a
> bunch of tricks: unlocking logbuf in the middle of printing loop,
> breaking out of loop with local IRQs disabled, re-taking the logbuf
> after the loop still will local IRQs disabled, etc. etc. I didn't
> want to (and still don't) mix-in logbuf macros; we do things that
> macros don't cover anyway. sorry, I don't agree that the patch
> improves readability.
Got ur points and appreciate for your illustration. ^^
Thanks a lot,

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

end of thread, other threads:[~2017-07-17 11:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-15 10:36 [PATCH] printk: modify console_unlock with printk-safe macros Pierre Kuo
2017-07-15 12:36 ` Andy Shevchenko
2017-07-17  9:28 ` Sergey Senozhatsky
2017-07-17 11:06   ` pierre kuo

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