<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>cc8d5a2f - Revert &quot;printk: Save console options for add_preferred_console_match()&quot;</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#cc8d5a2f</link>
        <description>Revert &quot;printk: Save console options for add_preferred_console_match()&quot;This reverts commit f03e8c1060f86c23eb49bafee99d9fcbd1c1bd77.Let&apos;s roll back all of the serial core and printk console changes thatwent into 6.10-rc1 as there still are problems with them that need to besorted out.Link: https://lore.kernel.org/r/ZnpRozsdw6zbjqze@tlindgre-MOBL1Reported-by: Petr Mladek &lt;pmladek@suse.com&gt;Reported-by: Tony Lindgren &lt;tony@atomide.com&gt;Cc: Jiri Slaby &lt;jirislaby@kernel.org&gt;Cc: John Ogness &lt;john.ogness@linutronix.de&gt;Cc: Sergey Senozhatsky &lt;senozhatsky@chromium.org&gt;Cc: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;Cc: Ilpo J&#228;rvinen &lt;ilpo.jarvinen@linux.intel.com&gt;Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Tue, 25 Jun 2024 05:58:10 +0000</pubDate>
        <dc:creator>Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;</dc:creator>
    </item>
<item>
        <title>f03e8c10 - printk: Save console options for add_preferred_console_match()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#f03e8c10</link>
        <description>printk: Save console options for add_preferred_console_match()Driver subsystems may need to translate the preferred console name to thecharacter device name used. We already do some of this in console_setup()with a few hardcoded names, but that does not scale well.The console options are parsed early in console_setup(), and the consolesare added with __add_preferred_console(). At this point we don&apos;t know muchabout the character device names and device drivers getting probed.To allow driver subsystems to set up a preferred console, let&apos;s save thekernel command line console options. To add a preferred console from adriver subsystem with optional character device name translation, let&apos;sadd a new function add_preferred_console_match().This allows the serial core layer to support console=DEVNAME:0.0 stylehardware based addressing in addition to the current console=ttyS0 stylenaming. And we can start moving console_setup() character device parsingto the driver subsystem specific code.We use a separate array from the console_cmdline array as the characterdevice name and index may be unknown at the console_setup() time. Andeventually there&apos;s no need to call __add_preferred_console() until thesubsystem is ready to handle the console.Adding the console name in addition to the character device name, and aflag for an added console, could be added to the struct console_cmdline.And the console_cmdline array handling could be modified accordingly. Butthat complicates things compared saving the console options, and thenadding the consoles when the subsystems handling the consoles are ready.Co-developed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;Link: https://lore.kernel.org/r/20240327110021.59793-2-tony@atomide.comSigned-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Wed, 27 Mar 2024 10:59:35 +0000</pubDate>
        <dc:creator>Tony Lindgren &lt;tony@atomide.com&gt;</dc:creator>
    </item>
<item>
        <title>6b93bb41 - printk: Add non-BKL (nbcon) console basic infrastructure</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#6b93bb41</link>
        <description>printk: Add non-BKL (nbcon) console basic infrastructureThe current console/printk subsystem is protected by a Big Kernel Lock,(aka console_lock) which has ill defined semantics and is more or lessstateless. This puts severe limitations on the console subsystem andmakes forced takeover and output in emergency and panic situations afragile endeavour that is based on try and pray.The goal of non-BKL (nbcon) consoles is to break out of the console lockjail and to provide a new infrastructure that avoids the pitfalls andalso allows console drivers to be gradually converted over.The proposed infrastructure aims for the following properties:  - Per console locking instead of global locking  - Per console state that allows to make informed decisions  - Stateful handover and takeoverAs a first step, state is added to struct console. The per console stateis an atomic_t using a 32bit bit field.Reserve state bits, which will be populated later in the series. Wireit up into the console register/unregister functionality.It was decided to use a bitfield because using a plain u32 withmask/shift operations resulted in uncomprehensible code.Co-developed-by: John Ogness &lt;john.ogness@linutronix.de&gt;Signed-off-by: John Ogness &lt;john.ogness@linutronix.de&gt;Signed-off-by: Thomas Gleixner (Intel) &lt;tglx@linutronix.de&gt;Reviewed-by: Petr Mladek &lt;pmladek@suse.com&gt;Signed-off-by: Petr Mladek &lt;pmladek@suse.com&gt;Link: https://lore.kernel.org/r/20230916192007.608398-2-john.ogness@linutronix.de

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Sat, 16 Sep 2023 19:20:00 +0000</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>faaa357a - printk: move printk sysctl to printk/sysctl.c</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#faaa357a</link>
        <description>printk: move printk sysctl to printk/sysctl.ckernel/sysctl.c is a kitchen sink where everyone leaves their dirtydishes, this makes it very difficult to maintain.To help with this maintenance let&apos;s start by moving sysctls to placeswhere they actually belong.  The proc sysctl maintainers do not want toknow what sysctl knobs you wish to add for your own piece of code, wejust care about the core logic.So move printk sysctl from kernel/sysctl.c to kernel/printk/sysctl.c.Use register_sysctl() to register the sysctl interface.[mcgrof@kernel.org: fixed compile issues when PRINTK is not set, commit log update]Link: https://lkml.kernel.org/r/20211124231435.1445213-6-mcgrof@kernel.orgSigned-off-by: Xiaoming Ni &lt;nixiaoming@huawei.com&gt;Signed-off-by: Luis Chamberlain &lt;mcgrof@kernel.org&gt;Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;Cc: Amir Goldstein &lt;amir73il@gmail.com&gt;Cc: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;Cc: Antti Palosaari &lt;crope@iki.fi&gt;Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;Cc: Benjamin LaHaise &lt;bcrl@kvack.org&gt;Cc: Clemens Ladisch &lt;clemens@ladisch.de&gt;Cc: David Airlie &lt;airlied@linux.ie&gt;Cc: Douglas Gilbert &lt;dgilbert@interlog.com&gt;Cc: Eric Biederman &lt;ebiederm@xmission.com&gt;Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;Cc: Iurii Zaikin &lt;yzaikin@google.com&gt;Cc: James E.J. Bottomley &lt;jejb@linux.ibm.com&gt;Cc: Jani Nikula &lt;jani.nikula@intel.com&gt;Cc: Jani Nikula &lt;jani.nikula@linux.intel.com&gt;Cc: Jan Kara &lt;jack@suse.cz&gt;Cc: Joel Becker &lt;jlbec@evilplan.org&gt;Cc: John Ogness &lt;john.ogness@linutronix.de&gt;Cc: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;Cc: Joseph Qi &lt;joseph.qi@linux.alibaba.com&gt;Cc: Julia Lawall &lt;julia.lawall@inria.fr&gt;Cc: Kees Cook &lt;keescook@chromium.org&gt;Cc: Lukas Middendorf &lt;kernel@tuxforce.de&gt;Cc: Mark Fasheh &lt;mark@fasheh.com&gt;Cc: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;Cc: Paul Turner &lt;pjt@google.com&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Cc: Petr Mladek &lt;pmladek@suse.com&gt;Cc: Phillip Potter &lt;phil@philpotter.co.uk&gt;Cc: Qing Wang &lt;wangqing@vivo.com&gt;Cc: &quot;Rafael J. Wysocki&quot; &lt;rafael@kernel.org&gt;Cc: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;Cc: Sebastian Reichel &lt;sre@kernel.org&gt;Cc: Sergey Senozhatsky &lt;senozhatsky@chromium.org&gt;Cc: Stephen Kitt &lt;steve@sk2.org&gt;Cc: Steven Rostedt (VMware) &lt;rostedt@goodmis.org&gt;Cc: Suren Baghdasaryan &lt;surenb@google.com&gt;Cc: Tetsuo Handa &lt;penguin-kernel@I-love.SAKURA.ne.jp&gt;Cc: &quot;Theodore Ts&apos;o&quot; &lt;tytso@mit.edu&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Sat, 22 Jan 2022 06:12:33 +0000</pubDate>
        <dc:creator>Xiaoming Ni &lt;nixiaoming@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>33701557 - printk: Userspace format indexing support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#33701557</link>
        <description>printk: Userspace format indexing supportWe have a number of systems industry-wide that have a subset of theirfunctionality that works as follows:1. Receive a message from local kmsg, serial console, or netconsole;2. Apply a set of rules to classify the message;3. Do something based on this classification (like scheduling a   remediation for the machine), rinse, and repeat.As a couple of examples of places we have this implemented just insideFacebook, although this isn&apos;t a Facebook-specific problem, we have thisinside our netconsole processing (for alarm classification), and as partof our machine health checking. We use these messages to determinefairly important metrics around production health, and it&apos;s importantthat we get them right.While for some kinds of issues we have counters, tracepoints, or metricswith a stable interface which can reliably indicate the issue, in orderto react to production issues quickly we need to work with the interfacewhich most kernel developers naturally use when developing: printk.Most production issues come from unexpected phenomena, and as suchusually the code in question doesn&apos;t have easily usable tracepoints orother counters available for the specific problem being mitigated. Wehave a number of lines of monitoring defence against problems inproduction (host metrics, process metrics, service metrics, etc), andwhere it&apos;s not feasible to reliably monitor at another level, this kindof pragmatic netconsole monitoring is essential.As one would expect, monitoring using printk is rather brittle for anumber of reasons -- most notably that the message might disappearentirely in a new version of the kernel, or that the message may changein some way that the regex or other classification methods start tosilently fail.One factor that makes this even harder is that, under normal operation,many of these messages are never expected to be hit. For example, theremay be a rare hardware bug which one wants to detect if it was to everhappen again, but its recurrence is not likely or anticipated. Thisprecludes using something like checking whether the printk in questionwas printed somewhere fleetwide recently to determine whether themessage in question is still present or not, since we don&apos;t anticipatethat it should be printed anywhere, but still need to monitor for itsfuture presence in the long-term.This class of issue has happened on a number of occasions, causingunhealthy machines with hardware issues to remain in production forlonger than ideal. As a recent example, some monitoring aroundblk_update_request fell out of date and caused semi-broken machines toremain in production for longer than would be desirable.Searching through the codebase to find the message is also extremelyfragile, because many of the messages are further constructed beyondtheir callsite (eg. btrfs_printk and other module-specific wrappers,each with their own functionality). Even if they aren&apos;t, guessing theformat and formulation of the underlying message based on the aestheticsof the message emitted is not a recipe for success at scale, and ourprevious issues with fleetwide machine health checking demonstrate asmuch.This provides a solution to the issue of silently changed or deletedprintks: we record pointers to all printk format strings known atcompile time into a new .printk_index section, both in vmlinux andmodules. At runtime, this can then be iterated by looking at&lt;debugfs&gt;/printk/index/&lt;module&gt;, which emits the following format, bothreadable by humans and able to be parsed by machines:    $ head -1 vmlinux; shuf -n 5 vmlinux    # &lt;level[,flags]&gt; filename:line function &quot;format&quot;    &lt;5&gt; block/blk-settings.c:661 disk_stack_limits &quot;%s: Warning: Device %s is misaligned\n&quot;    &lt;4&gt; kernel/trace/trace.c:8296 trace_create_file &quot;Could not create tracefs &apos;%s&apos; entry\n&quot;    &lt;6&gt; arch/x86/kernel/hpet.c:144 _hpet_print_config &quot;hpet: %s(%d):\n&quot;    &lt;6&gt; init/do_mounts.c:605 prepare_namespace &quot;Waiting for root device %s...\n&quot;    &lt;6&gt; drivers/acpi/osl.c:1410 acpi_no_auto_serialize_setup &quot;ACPI: auto-serialization disabled\n&quot;This mitigates the majority of cases where we have a highly-specificprintk which we want to match on, as we can now enumerate and checkwhether the format changed or the printk callsite disappeared entirelyin userspace. This allows us to catch changes to printks we monitorearlier and decide what to do about it before it becomes problematic.There is no additional runtime cost for printk callers or printk itself,and the assembly generated is exactly the same.Signed-off-by: Chris Down &lt;chris@chrisdown.name&gt;Cc: Petr Mladek &lt;pmladek@suse.com&gt;Cc: Jessica Yu &lt;jeyu@kernel.org&gt;Cc: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;Cc: John Ogness &lt;john.ogness@linutronix.de&gt;Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;Cc: Johannes Weiner &lt;hannes@cmpxchg.org&gt;Cc: Kees Cook &lt;keescook@chromium.org&gt;Reviewed-by: Petr Mladek &lt;pmladek@suse.com&gt;Tested-by: Petr Mladek &lt;pmladek@suse.com&gt;Reported-by: kernel test robot &lt;lkp@intel.com&gt;Acked-by: Andy Shevchenko &lt;andy.shevchenko@gmail.com&gt;Acked-by: Jessica Yu &lt;jeyu@kernel.org&gt; # for module.{c,h}Signed-off-by: Petr Mladek &lt;pmladek@suse.com&gt;Link: https://lore.kernel.org/r/e42070983637ac5e384f17fbdbe86d19c7b212a5.1623775748.git.chris@chrisdown.name

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Tue, 15 Jun 2021 16:52:53 +0000</pubDate>
        <dc:creator>Chris Down &lt;chris@chrisdown.name&gt;</dc:creator>
    </item>
<item>
        <title>b6cf8b3f - printk: add lockless ringbuffer</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#b6cf8b3f</link>
        <description>printk: add lockless ringbufferIntroduce a multi-reader multi-writer lockless ringbuffer for storingthe kernel log messages. Readers and writers may use their API fromany context (including scheduler and NMI). This ringbuffer will makeit possible to decouple printk() callers from any context, locking,or console constraints. It also makes it possible for readers to havefull access to the ringbuffer contents at any time and context (forexample from any panic situation).The printk_ringbuffer is made up of 3 internal ringbuffers:desc_ring:A ring of descriptors. A descriptor contains all record meta data(sequence number, timestamp, loglevel, etc.) as well as internal stateinformation about the record and logical positions specifying where inthe other ringbuffers the text and dictionary strings are located.text_data_ring:A ring of data blocks. A data block consists of an unsigned longinteger (ID) that maps to a desc_ring index followed by the textstring of the record.dict_data_ring:A ring of data blocks. A data block consists of an unsigned longinteger (ID) that maps to a desc_ring index followed by the dictionarystring of the record.The internal state information of a descriptor is the key element toallow readers and writers to locklessly synchronize access to the data.Co-developed-by: Petr Mladek &lt;pmladek@suse.com&gt;Signed-off-by: John Ogness &lt;john.ogness@linutronix.de&gt;Reviewed-by: Petr Mladek &lt;pmladek@suse.com&gt;Reviewed-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;Signed-off-by: Petr Mladek &lt;pmladek@suse.com&gt;Link: https://lore.kernel.org/r/20200709132344.760-3-john.ogness@linutronix.de

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Thu, 09 Jul 2020 13:23:42 +0000</pubDate>
        <dc:creator>John Ogness &lt;john.ogness@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>ec8f24b7 - treewide: Add SPDX license identifier - Makefile/Kconfig</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#ec8f24b7</link>
        <description>treewide: Add SPDX license identifier - Makefile/KconfigAdd SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any formThese files fall under the project license, GPL v2 only. The resulting SPDXlicense identifier is:  GPL-2.0-onlySigned-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Sun, 19 May 2019 12:07:45 +0000</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>099f1c84 - printk: introduce per-cpu safe_print seq buffer</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#099f1c84</link>
        <description>printk: introduce per-cpu safe_print seq bufferThis patch extends the idea of NMI per-cpu buffers to regionsthat may cause recursive printk() calls and possible deadlocks.Namely, printk() can&apos;t handle printk calls from schedule codeor printk() calls from lock debugging code (spin_dump() for instance);because those may be called with `sem-&gt;lock&apos; already taken or anyother `critical&apos; locks (p-&gt;pi_lock, etc.). An example of deadlockcan be vprintk_emit()  console_unlock()   up()                        &lt;&lt; raw_spin_lock_irqsave(&amp;sem-&gt;lock, flags);    wake_up_process()     try_to_wake_up()      ttwu_queue()       ttwu_activate()        activate_task()         enqueue_task()          enqueue_task_fair()           cfs_rq_of()            task_of()             WARN_ON_ONCE(!entity_is_task(se))              vprintk_emit()               console_trylock()                down_trylock()                 raw_spin_lock_irqsave(&amp;sem-&gt;lock, flags)                 ^^^^ deadlockand some other cases.Just like in NMI implementation, the solution uses a per-cpu`printk_func&apos; pointer to &apos;redirect&apos; printk() calls to a &apos;safe&apos;callback, that store messages in a per-cpu buffer and flushesthem back to logbuf buffer later.Usage example: printk()  printk_safe_enter_irqsave(flags)  //  //  any printk() call from here will endup in vprintk_safe(),  //  that stores messages in a special per-CPU buffer.  //  printk_safe_exit_irqrestore(flags)The &apos;redirection&apos; mechanism, though, has been reworked, as suggestedby Petr Mladek. Instead of using a per-cpu @print_func callback we nowkeep a per-cpu printk-context variable and call either default or nmivprintk function depending on its value. printk_nmi_entrer/exit andprintk_safe_enter/exit, thus, just set/celar corresponding bits inprintk-context functions.The patch only adds printk_safe support, we don&apos;t use it yet.Link: http://lkml.kernel.org/r/20161227141611.940-4-sergey.senozhatsky@gmail.comCc: Andrew Morton &lt;akpm@linux-foundation.org&gt;Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Cc: Jan Kara &lt;jack@suse.cz&gt;Cc: Tejun Heo &lt;tj@kernel.org&gt;Cc: Calvin Owens &lt;calvinowens@fb.com&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Cc: Andy Lutomirski &lt;luto@kernel.org&gt;Cc: Peter Hurley &lt;peter@hurleysoftware.com&gt;Cc: linux-kernel@vger.kernel.orgSigned-off-by: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;Signed-off-by: Petr Mladek &lt;pmladek@suse.com&gt;Reviewed-by: Steven Rostedt (VMware) &lt;rostedt@goodmis.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Tue, 27 Dec 2016 14:16:06 +0000</pubDate>
        <dc:creator>Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f92bac3b - printk: rename nmi.c and exported api</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#f92bac3b</link>
        <description>printk: rename nmi.c and exported apiA preparation patch for printk_safe work. No functional change.- rename nmi.c to print_safe.c- add `printk_safe&apos; prefix to some (which used both by printk-safe  and printk-nmi) of the exported functions.Link: http://lkml.kernel.org/r/20161227141611.940-3-sergey.senozhatsky@gmail.comCc: Andrew Morton &lt;akpm@linux-foundation.org&gt;Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Cc: Jan Kara &lt;jack@suse.cz&gt;Cc: Tejun Heo &lt;tj@kernel.org&gt;Cc: Calvin Owens &lt;calvinowens@fb.com&gt;Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;Cc: Andy Lutomirski &lt;luto@kernel.org&gt;Cc: Peter Hurley &lt;peter@hurleysoftware.com&gt;Cc: linux-kernel@vger.kernel.orgSigned-off-by: Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;Signed-off-by: Petr Mladek &lt;pmladek@suse.com&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Tue, 27 Dec 2016 14:16:05 +0000</pubDate>
        <dc:creator>Sergey Senozhatsky &lt;sergey.senozhatsky@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>42a0bb3f - printk/nmi: generic solution for safe printk in NMI</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#42a0bb3f</link>
        <description>printk/nmi: generic solution for safe printk in NMIprintk() takes some locks and could not be used a safe way in NMIcontext.The chance of a deadlock is real especially when printing stacks fromall CPUs.  This particular problem has been addressed on x86 by thecommit a9edc8809328 (&quot;x86/nmi: Perform a safe NMI stack trace on allCPUs&quot;).The patchset brings two big advantages.  First, it makes the NMIbacktraces safe on all architectures for free.  Second, it makes all NMImessages almost safe on all architectures (the temporary buffer islimited.  We still should keep the number of messages in NMI context atminimum).Note that there already are several messages printed in NMI context:WARN_ON(in_nmi()), BUG_ON(in_nmi()), anything being printed out from MCEhandlers.  These are not easy to avoid.This patch reuses most of the code and makes it generic.  It is usefulfor all messages and architectures that support NMI.The alternative printk_func is set when entering and is reseted whenleaving NMI context.  It queues IRQ work to copy the messages into themain ring buffer in a safe context.__printk_nmi_flush() copies all available messages and reset the buffer.Then we could use a simple cmpxchg operations to get synchronized withwriters.  There is also used a spinlock to get synchronized with otherflushers.We do not longer use seq_buf because it depends on external lock.  Itwould be hard to make all supported operations safe for a lockless use.It would be confusing and error prone to make only some operations safe.The code is put into separate printk/nmi.c as suggested by StevenRostedt.  It needs a per-CPU buffer and is compiled only onarchitectures that call nmi_enter().  This is achieved by the newHAVE_NMI Kconfig flag.The are MN10300 and Xtensa architectures.  We need to clean up NMIhandling there first.  Let&apos;s do it separately.The patch is heavily based on the draft from Peter Zijlstra, see  https://lkml.org/lkml/2015/6/10/327[arnd@arndb.de: printk-nmi: use %zu format string for size_t][akpm@linux-foundation.org: min_t-&gt;min - all types are size_t here]Signed-off-by: Petr Mladek &lt;pmladek@suse.com&gt;Suggested-by: Peter Zijlstra &lt;peterz@infradead.org&gt;Suggested-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;Cc: Jan Kara &lt;jack@suse.cz&gt;Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;	[arm part]Cc: Daniel Thompson &lt;daniel.thompson@linaro.org&gt;Cc: Jiri Kosina &lt;jkosina@suse.com&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;Cc: David Miller &lt;davem@davemloft.net&gt;Cc: Daniel Thompson &lt;daniel.thompson@linaro.org&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Sat, 21 May 2016 00:00:33 +0000</pubDate>
        <dc:creator>Petr Mladek &lt;pmladek@suse.com&gt;</dc:creator>
    </item>
<item>
        <title>bbeddf52 - printk: move braille console support into separate braille.[ch] files</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#bbeddf52</link>
        <description>printk: move braille console support into separate braille.[ch] filesCreate files with prototypes and static inlines for braille support.  Makebraille_console functions return 1 on success.Corrected CONFIG_A11Y_BRAILLE_CONSOLE=n _braille_console_setupreturn value to NULL.Signed-off-by: Joe Perches &lt;joe@perches.com&gt;Reviewed-by: Samuel Thibault &lt;samuel.thibault@ens-lyon.org&gt;Cc: Ming Lei &lt;ming.lei@canonical.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Wed, 31 Jul 2013 20:53:45 +0000</pubDate>
        <dc:creator>Joe Perches &lt;joe@perches.com&gt;</dc:creator>
    </item>
<item>
        <title>b9ee979e - printk: move to separate directory for easier modification</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/kernel/printk/Makefile#b9ee979e</link>
        <description>printk: move to separate directory for easier modificationMake it easier to break up printk into bite-sized chunks.Remove printk path/filename from comment.Signed-off-by: Joe Perches &lt;joe@perches.com&gt;Cc: Samuel Thibault &lt;samuel.thibault@ens-lyon.org&gt;Cc: Ming Lei &lt;ming.lei@canonical.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/kernel/printk/Makefile</description>
        <pubDate>Wed, 31 Jul 2013 20:53:42 +0000</pubDate>
        <dc:creator>Joe Perches &lt;joe@perches.com&gt;</dc:creator>
    </item>
</channel>
</rss>
