From: John Ogness <john.ogness@linutronix.de>
To: Petr Mladek <pmladek@suse.com>
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: Re: buffer allocation: was: [PATCH v3 3/3] printk: use the lockless ringbuffer
Date: Mon, 29 Jun 2020 23:57:59 +0200 [thread overview]
Message-ID: <87ftad8rh4.fsf@jogness.linutronix.de> (raw)
In-Reply-To: <20200629140445.GK6156@alley> (Petr Mladek's message of "Mon, 29 Jun 2020 16:04:45 +0200")
On 2020-06-29, Petr Mladek <pmladek@suse.com> wrote:
>> @@ @@ void __init setup_log_buf(int early)
>> + prb_init(&printk_rb_dynamic,
>> + new_log_buf, order_base_2(new_log_buf_len),
>> + new_dict_buf, order_base_2(new_log_buf_len),
>> + new_descs, order_base_2(new_descs_count));
>
> order_base_2() is safe. But the result might be tat some allocated
> space is not used.
>
> I would prefer to make sure that new_log_buf_len is rounded, e.g.
> by roundup_pow_of_two(), at the beginning of the function. Then we
> could use ilog2() here.
new_log_buf_len can only be set within log_buf_len_update(), and it
is already doing exactly what you want:
if (size)
size = roundup_pow_of_two(size);
if (size > log_buf_len)
new_log_buf_len = (unsigned long)size;
I can switch to ilog2() instead of the more conservative order_base_2().
John Ogness
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: John Ogness <john.ogness@linutronix.de>
To: Petr Mladek <pmladek@suse.com>
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: Re: buffer allocation: was: [PATCH v3 3/3] printk: use the lockless ringbuffer
Date: Mon, 29 Jun 2020 23:57:59 +0200 [thread overview]
Message-ID: <87ftad8rh4.fsf@jogness.linutronix.de> (raw)
In-Reply-To: <20200629140445.GK6156@alley> (Petr Mladek's message of "Mon, 29 Jun 2020 16:04:45 +0200")
On 2020-06-29, Petr Mladek <pmladek@suse.com> wrote:
>> @@ @@ void __init setup_log_buf(int early)
>> + prb_init(&printk_rb_dynamic,
>> + new_log_buf, order_base_2(new_log_buf_len),
>> + new_dict_buf, order_base_2(new_log_buf_len),
>> + new_descs, order_base_2(new_descs_count));
>
> order_base_2() is safe. But the result might be tat some allocated
> space is not used.
>
> I would prefer to make sure that new_log_buf_len is rounded, e.g.
> by roundup_pow_of_two(), at the beginning of the function. Then we
> could use ilog2() here.
new_log_buf_len can only be set within log_buf_len_update(), and it
is already doing exactly what you want:
if (size)
size = roundup_pow_of_two(size);
if (size > log_buf_len)
new_log_buf_len = (unsigned long)size;
I can switch to ilog2() instead of the more conservative order_base_2().
John Ogness
next prev parent reply other threads:[~2020-06-29 21:58 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 [this message]
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 ` syslog size unread: " Petr Mladek
2020-06-25 15:20 ` 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=87ftad8rh4.fsf@jogness.linutronix.de \
--to=john.ogness@linutronix.de \
--cc=gregkh@linuxfoundation.org \
--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=pmladek@suse.com \
--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: link
Be 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.