From: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
To: Jan Kara <jack@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Petr Mladek <pmladek@suse.cz>, KY Sri nivasan <kys@microsoft.com>,
Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Subject: Re: [PATCH 1/7] printk: Hand over printing to console if printing too long
Date: Wed, 6 Jan 2016 17:36:53 +0900 [thread overview]
Message-ID: <20160106083653.GA10678@swordfish> (raw)
In-Reply-To: <20160106033830.GB781@swordfish>
On (01/06/16 12:38), Sergey Senozhatsky wrote:
> On (01/05/16 15:48), Jan Kara wrote:
> > > [..]
> > > > cond_resched() does its job there, of course. well, a user process still can
> > > > do a lot of call_console_drivers() calls. may be we can check who is calling
> > > > console_unlock() and if we have "!printk_sync && !oops_in_progress" (or just printk_sync
> > > > test) AND a user process then return from console_unlock() doing irq_work_queue()
> > > > and set PRINTK_PENDING_OUTPUT pending bit, the way vprintk_emit() does it.
> > >
> > > attached two patches, I ended up having on top of yours. just in case.
> > >
> > > printk: factor out can_printk_async()
> > >
> > > console_unlock() can be called directly or indirectly by a user
> > > space process, so it can end up doing call_console_drivers() loop,
> > > which will hold it from returning back to user-space from a syscall
> > > for unpredictable amount of time.
> > >
> > > Factor out can_printk_async() function, which queues an irq work and
> > > sets a PRINTK_PENDING_OUTPUT pending bit (if we can do async printk).
> > > vprintk_emit() already does it, add can_printk_async() call to
> > > console_unlock() for !PF_KTHREAD processes.
> >
> > I'd be cautious about changing this userspace visible behavior. Someone may
> > be relying on it... I agree that sometimes we can block userspace process
> > in kernel for a long time (e.g. in my testing I often see syslog process
> > doing the printing) but so far I didn't see / was notified about some real
> > problem with this. So unless I see some real user issues with user
> > processes doing printing for too long I would not touch this.
>
> and w/o a lot of effort (no heavy printk message traffic)
or like this on another setup ([k|u]_ts updated to u64)
# cat /proc/1/time_in_console_unlock
kern:[12.755920] user:[38.367332]
-ss
next prev parent reply other threads:[~2016-01-06 8:35 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-10 14:52 [PATCH 1/7] printk: Hand over printing to console if printing too long Sergey Senozhatsky
2015-12-10 15:24 ` Sergey Senozhatsky
2015-12-11 4:27 ` Sergey Senozhatsky
2015-12-11 6:29 ` Sergey Senozhatsky
2015-12-22 13:47 ` Jan Kara
2015-12-22 14:48 ` Sergey Senozhatsky
2015-12-23 1:54 ` Sergey Senozhatsky
2015-12-23 3:37 ` Sergey Senozhatsky
2015-12-23 3:57 ` Sergey Senozhatsky
2015-12-23 4:15 ` Sergey Senozhatsky
2016-01-05 14:37 ` Jan Kara
2016-01-06 1:41 ` Sergey Senozhatsky
2016-01-06 6:48 ` Sergey Senozhatsky
2016-01-06 12:25 ` Jan Kara
2016-01-11 13:25 ` Sergey Senozhatsky
2015-12-31 2:44 ` Sergey Senozhatsky
2015-12-31 3:13 ` Sergey Senozhatsky
2015-12-31 4:58 ` Sergey Senozhatsky
2016-01-05 14:48 ` Jan Kara
2016-01-06 3:38 ` Sergey Senozhatsky
2016-01-06 8:36 ` Sergey Senozhatsky [this message]
2016-01-06 10:21 ` Jan Kara
2016-01-06 11:10 ` Sergey Senozhatsky
2016-01-11 12:54 ` Petr Mladek
2016-01-12 14:00 ` Jan Kara
-- strict thread matches above, loose matches on Subject: below --
2015-10-26 4:52 [PATCH 0/6 v2] printk: Softlockup avoidance Jan Kara
2015-10-26 4:52 ` [PATCH 1/7] printk: Hand over printing to console if printing too long Jan Kara
2016-03-01 17:22 ` Denys Vlasenko
2016-03-02 9:30 ` Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160106083653.GA10678@swordfish \
--to=sergey.senozhatsky.work@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=jack@suse.cz \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.cz \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).