public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: John Ogness <john.ogness@linutronix.de>
To: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-kernel@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [PATCH printk v3 3/7] printk: nbcon: Add buffer management
Date: Fri, 08 Sep 2023 15:09:34 +0206	[thread overview]
Message-ID: <875y4kx1eh.fsf@jogness.linutronix.de> (raw)
In-Reply-To: <ZPh99nwo9zJXxqQz@alley>

On 2023-09-06, Petr Mladek <pmladek@suse.com> wrote:
>> +bool nbcon_alloc(struct console *con)
>> +{
>> +
>> +	con->pbufs = kmalloc(sizeof(*con->pbufs), GFP_KERNEL);
>
> We might need to use memblock_alloc() at least for early consoles.

I wasn't planning on addressing early consoles at this stage. The
initial 8250 NBCON implementation will only be for the regular console.

However, since it is planned that NBCON consoles are synchronized with
boot consoles using the console_lock, we might as well establish that
boot consoles (in general) are always synchronized uisng the
console_lock.

This allows us to use the single global pbufs of the legacy consoles
(see console_emit_next_record()) for NBCON boot consoles as well. The
static buffer is much more attractive because it is always available.

For v4, nbcon_alloc() will initialize con->pbufs to use the global
legacy pbufs for con->flags == CON_BOOT.

bool nbcon_alloc(struct console *con)
{
        if (con->flags & CON_BOOT) {
                /*
                 * Boot console printing is synchronized with legacy console
                 * printing, so boot consoles can share the same global printk
                 * buffers.
                 */
                con->pbufs = &printk_shared_pbufs;
        } else {
                con->pbufs = kmalloc(sizeof(*con->pbufs), GFP_KERNEL);
                if (!con->pbufs) {
                        con_printk(KERN_ERR, con, "failed to allocate printing buffer\n");
                        return false;
                }
        }

        return true;
}

John Ogness

  reply	other threads:[~2023-09-08 13:03 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-03 15:05 [PATCH printk v3 0/7] provide nbcon base John Ogness
2023-09-03 15:05 ` [PATCH printk v3 1/7] printk: Add non-BKL (nbcon) console basic infrastructure John Ogness
2023-09-05 11:45   ` Petr Mladek
2023-09-03 15:05 ` [PATCH printk v3 2/7] printk: nbcon: Add acquire/release logic John Ogness
2023-09-03 16:32   ` kernel test robot
2023-09-05  9:07     ` John Ogness
2023-09-03 16:43   ` kernel test robot
2023-09-06 13:01   ` Petr Mladek
2023-09-03 15:05 ` [PATCH printk v3 3/7] printk: nbcon: Add buffer management John Ogness
2023-09-06 13:26   ` Petr Mladek
2023-09-08 13:03     ` John Ogness [this message]
2023-09-03 15:05 ` [PATCH printk v3 4/7] printk: nbcon: Add ownership state functions John Ogness
2023-09-06 13:57   ` Petr Mladek
2023-09-08 13:20     ` John Ogness
2023-09-03 15:05 ` [PATCH printk v3 5/7] printk: nbcon: Add sequence handling John Ogness
2023-09-07  7:45   ` Petr Mladek
2023-09-03 15:05 ` [PATCH printk v3 6/7] printk: nbcon: Add emit function and callback function for atomic printing John Ogness
2023-09-07  8:22   ` Petr Mladek
2023-09-03 15:05 ` [PATCH printk v3 7/7] printk: nbcon: Add functions for drivers to mark unsafe regions John Ogness
2023-09-07  8:24   ` Petr Mladek

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=875y4kx1eh.fsf@jogness.linutronix.de \
    --to=john.ogness@linutronix.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    --cc=tglx@linutronix.de \
    /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