From: Petr Mladek <pmladek@suse.com> To: John Ogness <john.ogness@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org>, Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>, Sergey Senozhatsky <sergey.senozhatsky@gmail.com>, Steven Rostedt <rostedt@goodmis.org>, Linus Torvalds <torvalds@linux-foundation.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Andrea Parri <parri.andrea@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, Paul McKenney <paulmck@kernel.org>, kexec@lists.infradead.org, linux-kernel@vger.kernel.org Subject: syslog size unread: was: [PATCH v3 3/3] printk: use the lockless ringbuffer Date: Thu, 25 Jun 2020 17:20:42 +0200 [thread overview] Message-ID: <20200625152042.GI8444@alley> (raw) In-Reply-To: <20200618144919.9806-4-john.ogness@linutronix.de> On Thu 2020-06-18 16:55:19, John Ogness wrote: > Replace the existing ringbuffer usage and implementation with > lockless ringbuffer usage. Even though the new ringbuffer does not > require locking, all existing locking is left in place. Therefore, > this change is purely replacing the underlining ringbuffer. > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c > @@ -1609,11 +1633,15 @@ int do_syslog(int type, char __user *buf, int len, int source) > break; > /* Number of chars in the log buffer */ > case SYSLOG_ACTION_SIZE_UNREAD: > + if (source != SYSLOG_FROM_PROC) { > + text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL); > + if (!text) > + return -ENOMEM; The buffer is needed only to count lines to count the size of added prefixes. Could we use the new prb_read_valid_info() that allows to get the number of lines without actually reading the buffer? > + > + } > logbuf_lock_irq(); > - if (syslog_seq < log_first_seq) { > + if (syslog_seq < prb_first_seq(prb)) { > /* messages are gone, move to first one */ > - syslog_seq = log_first_seq; > - syslog_idx = log_first_idx; > + syslog_seq = prb_first_seq(prb); > syslog_partial = 0; > } > if (source == SYSLOG_FROM_PROC) { Best Regards, Petr
WARNING: multiple messages have this Message-ID (diff)
From: Petr Mladek <pmladek@suse.com> To: John Ogness <john.ogness@linutronix.de> Cc: Andrea Parri <parri.andrea@gmail.com>, Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>, Paul McKenney <paulmck@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, Steven Rostedt <rostedt@goodmis.org>, Sergey Senozhatsky <sergey.senozhatsky@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, Linus Torvalds <torvalds@linux-foundation.org> Subject: syslog size unread: was: [PATCH v3 3/3] printk: use the lockless ringbuffer Date: Thu, 25 Jun 2020 17:20:42 +0200 [thread overview] Message-ID: <20200625152042.GI8444@alley> (raw) In-Reply-To: <20200618144919.9806-4-john.ogness@linutronix.de> On Thu 2020-06-18 16:55:19, John Ogness wrote: > Replace the existing ringbuffer usage and implementation with > lockless ringbuffer usage. Even though the new ringbuffer does not > require locking, all existing locking is left in place. Therefore, > this change is purely replacing the underlining ringbuffer. > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c > @@ -1609,11 +1633,15 @@ int do_syslog(int type, char __user *buf, int len, int source) > break; > /* Number of chars in the log buffer */ > case SYSLOG_ACTION_SIZE_UNREAD: > + if (source != SYSLOG_FROM_PROC) { > + text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL); > + if (!text) > + return -ENOMEM; The buffer is needed only to count lines to count the size of added prefixes. Could we use the new prb_read_valid_info() that allows to get the number of lines without actually reading the buffer? > + > + } > logbuf_lock_irq(); > - if (syslog_seq < log_first_seq) { > + if (syslog_seq < prb_first_seq(prb)) { > /* messages are gone, move to first one */ > - syslog_seq = log_first_seq; > - syslog_idx = log_first_idx; > + syslog_seq = prb_first_seq(prb); > syslog_partial = 0; > } > if (source == SYSLOG_FROM_PROC) { Best Regards, Petr _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2020-06-25 15:20 UTC|newest] Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-06-18 14:49 [PATCH v3 0/3] printk: replace ringbuffer John Ogness 2020-06-18 14:49 ` John Ogness 2020-06-18 14:49 ` [PATCH v3 1/3] crash: add VMCOREINFO macro to define offset in a struct declared by typedef John Ogness 2020-06-18 14:49 ` John Ogness 2020-06-24 8:49 ` Petr Mladek 2020-06-24 8:49 ` Petr Mladek 2020-07-04 9:30 ` Baoquan He 2020-07-04 9:30 ` Baoquan He 2020-06-18 14:49 ` [PATCH v3 2/3] printk: add lockless ringbuffer John Ogness 2020-06-18 14:49 ` John Ogness 2020-06-29 15:32 ` Paul E. McKenney 2020-06-29 15:32 ` Paul E. McKenney 2020-07-02 8:35 ` Petr Mladek 2020-07-02 8:35 ` Petr Mladek 2020-06-18 14:49 ` [PATCH v3 3/3] printk: use the " John Ogness 2020-06-18 14:49 ` John Ogness 2020-06-18 18:23 ` kernel test robot 2020-06-18 18:23 ` kernel test robot 2020-06-18 18:23 ` kernel test robot 2020-06-18 18:23 ` [RFC PATCH] printk: _printk_rb_static_dict can be static kernel test robot 2020-06-18 18:23 ` kernel test robot 2020-06-18 18:23 ` kernel test robot 2020-06-19 6:49 ` John Ogness 2020-06-19 6:49 ` John Ogness 2020-06-19 6:49 ` John Ogness 2020-06-19 12:29 ` Steven Rostedt 2020-06-19 12:29 ` Steven Rostedt 2020-06-19 12:29 ` Steven Rostedt 2020-06-25 8:16 ` truncate dict: was: Re: [PATCH v3 3/3] printk: use the lockless ringbuffer Petr Mladek 2020-06-25 8:16 ` Petr Mladek 2020-06-26 13:48 ` John Ogness 2020-06-26 13:48 ` John Ogness 2020-06-25 8:28 ` buffer allocation: was: " Petr Mladek 2020-06-25 8:28 ` Petr Mladek 2020-06-26 15:02 ` John Ogness 2020-06-26 15:02 ` John Ogness 2020-06-29 14:04 ` Petr Mladek 2020-06-29 14:04 ` Petr Mladek 2020-06-29 21:57 ` John Ogness 2020-06-29 21:57 ` John Ogness 2020-07-02 13:27 ` Petr Mladek 2020-07-02 13:27 ` Petr Mladek 2020-06-25 12:09 ` record_printk_text tricks: " Petr Mladek 2020-06-25 12:09 ` Petr Mladek 2020-06-25 15:25 ` Petr Mladek 2020-06-25 15:25 ` Petr Mladek 2020-06-26 23:25 ` John Ogness 2020-06-26 23:25 ` John Ogness 2020-06-25 15:17 ` pending output optimization: " Petr Mladek 2020-06-25 15:17 ` Petr Mladek 2020-07-01 19:58 ` John Ogness 2020-07-01 19:58 ` John Ogness 2020-06-25 15:20 ` Petr Mladek [this message] 2020-06-25 15:20 ` syslog size unread: " Petr Mladek 2020-06-29 21:51 ` John Ogness 2020-06-29 21:51 ` John Ogness 2020-07-02 8:25 ` lijiang 2020-07-02 8:25 ` lijiang 2020-07-02 9:02 ` John Ogness 2020-07-02 9:02 ` John Ogness 2020-07-02 9:43 ` lijiang 2020-07-02 9:43 ` lijiang 2020-07-02 13:31 ` Petr Mladek 2020-07-02 13:31 ` Petr Mladek 2020-07-04 1:12 ` lijiang 2020-07-04 1:12 ` lijiang 2020-07-03 11:54 ` John Ogness 2020-07-03 11:54 ` John Ogness 2020-07-08 5:50 ` lijiang 2020-07-08 5:50 ` lijiang 2020-06-25 7:19 ` [PATCH v3 0/3] printk: replace ringbuffer Dave Young 2020-06-25 7:19 ` Dave Young 2020-06-25 14:13 ` John Ogness 2020-06-25 14:13 ` John Ogness
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=20200625152042.GI8444@alley \ --to=pmladek@suse.com \ --cc=gregkh@linuxfoundation.org \ --cc=john.ogness@linutronix.de \ --cc=kexec@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=parri.andrea@gmail.com \ --cc=paulmck@kernel.org \ --cc=peterz@infradead.org \ --cc=rostedt@goodmis.org \ --cc=sergey.senozhatsky.work@gmail.com \ --cc=sergey.senozhatsky@gmail.com \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.