16 Mar, 2016
1 commit
-
In mm we use several kinds of flags bitfields that are sometimes printed
for debugging purposes, or exported to userspace via sysfs. To make
them easier to interpret independently on kernel version and config, we
want to dump also the symbolic flag names. So far this has been done
with repeated calls to pr_cont(), which is unreliable on SMP, and not
usable for e.g. sysfs export.To get a more reliable and universal solution, this patch extends
printk() format string for pointers to handle the page flags (%pGp),
gfp_flags (%pGg) and vma flags (%pGv). Existing users of
dump_flag_names() are converted and simplified.It would be possible to pass flags by value instead of pointer, but the
%p format string for pointers already has extensions for various kernel
structures, so it's a good fit, and the extra indirection in a
non-critical path is negligible.[linux@rasmusvillemoes.dk: lots of good implementation suggestions]
Signed-off-by: Vlastimil Babka
Acked-by: Michal Hocko
Cc: Steven Rostedt
Cc: Peter Zijlstra
Cc: Arnaldo Carvalho de Melo
Cc: Ingo Molnar
Cc: Rasmus Villemoes
Cc: Joonsoo Kim
Cc: Minchan Kim
Cc: Sasha Levin
Cc: "Kirill A. Shutemov"
Cc: Mel Gorman
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Jan, 2016
1 commit
-
%pT for task->comm has been proposed (several times, I think), but is
not actually implemented. Remove it from printk-formats.txt and add it
back if/when it gets implemented.Signed-off-by: Rasmus Villemoes
Reviewed-by: Andy Shevchenko
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Jan, 2016
1 commit
-
This allow to directly print block_device name.
Currently one should use bdevname() with temporal char buffer.
This is very ineffective because bloat stack usage for deep IO call-tracesExample:
%pg -> sda, sda1 or loop0p1[AV: fixed a minor braino - position updates should not be dependent
upon having reached the of buffer]Signed-off-by: Dmitry Monakhov
Signed-off-by: Al Viro
07 Nov, 2015
2 commits
-
%n is no longer just ignored; it results in early return from vsnprintf.
Also add a request to add test cases for future %p extensions.Signed-off-by: Rasmus Villemoes
Reviewed-by: Martin Kletzander
Reviewed-by: Andy Shevchenko
Cc: Jonathan Corbet
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Move all pointer-formatting documentation to one place in the code and one
place in the documentation instead of keeping it in three places with
different level of completeness. Documentation/printk-formats.txt has
detailed information about each modifier, docstring above pointer() has
short descriptions of them (as that is the function dealing with %p) and
docstring above vsprintf() is removed as redundant. Both docstrings in
the code that were modified are updated with a reminder of updating the
documentation upon any further change.[akpm@linux-foundation.org: fix comment]
Signed-off-by: Martin Kletzander
Reviewed-by: Andy Shevchenko
Cc: Rasmus Villemoes
Cc: Jonathan Corbet
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
18 Apr, 2015
1 commit
-
Pull documentation updates from Jonathan Corbet:
"Numerous fixes, the overdue removal of the i2o docs, some new Chinese
translations, and, hopefully, the README fix that will end the flow of
identical patches to that file"* tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (34 commits)
Documentation/memcg: update memcg/kmem status
Documentation: blackfin: Makefile: Typo building issue
Documentation/vm/pagemap.txt: correct location of page-types tool
Documentation/memory-barriers.txt: typo fix
doc: Add guest_nice column to example output of `cat /proc/stat'
Documentation/kernel-parameters: Move "eagerfpu" to its right place
Documentation: gpio: Update ACPI part of the document to mention _DSD
docs/completion.txt: Various tweaks and corrections
doc: completion: context, scope and language fixes
Documentation:Update Documentation/zh_CN/arm64/memory.txt
Documentation:Update Documentation/zh_CN/arm64/booting.txt
Documentation: Chinese translation of arm64/legacy_instructions.txt
DocBook media: fix broken EIA hyperlink
Documentation: tweak the maintainers entry
README: Change gzip/bzip2 to xz compression format
README: Update version number reference
doc:pci: Fix typo in Documentation/PCI
Documentation: drm: Use '->' when describing access through pointers.
Documentation: Remove mentioning of block barriers
Documentation/email-clients.txt: Fix one grammar mistake, add extra info about TB
...
16 Apr, 2015
3 commits
-
Add format specifiers for printing struct clk:
- '%pC' or '%pCn': name (Common Clock Framework) or address (legacy
clock framework) of the clock,
- '%pCr': rate of the clock.[akpm@linux-foundation.org: omit code if !CONFIG_HAVE_CLK]
Signed-off-by: Geert Uytterhoeven
Cc: Jonathan Corbet
Cc: Mike Turquette
Cc: Stephen Boyd
Cc: Tetsuo Handa
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Move the format types for 64-bit integers and configurable size integers
to the top, so they're next to the other integer format types. While at
it, add the missing format types for s32 and u32.Signed-off-by: Geert Uytterhoeven
Cc: Jonathan Corbet
Cc: Mike Turquette
Cc: Stephen Boyd
Cc: Tetsuo Handa
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch series improves the documentation for printk() formats, and
adds support for printing clocks. The latter has always been a hassle if
you wanted to support both the common and legacy clock frameworks.- '%pC' and '%pCn' print the name (Common Clock Framework) or address
(legacy clock framework) of a clock,
- '%pCr' prints the current clock rate.This patch (of 3):
Make sure all %p extensions that take parameters by references are
documented to do so.Signed-off-by: Geert Uytterhoeven
Cc: Jonathan Corbet
Cc: Mike Turquette
Cc: Stephen Boyd
Cc: Tetsuo Handa
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
20 Mar, 2015
2 commits
-
The documentation and the code disagrees; fix the former.
Signed-off-by: Rasmus Villemoes
Signed-off-by: Jonathan Corbet -
as the commit: "lib/vsprintf: implement bitmap printing through
'%*pb[l]'" add an easy way to print bitmaps. so printk-formats.txt
should reflect it.Signed-off-by: Wang Long
Acked-by: Tejun Heo
Signed-off-by: Jonathan Corbet
14 Oct, 2014
1 commit
-
This allows user to print a given buffer as an escaped string. The
rules are applied according to an optional mix of flags provided by
additional format letters.For example, if the given buffer is:
1b 62 20 5c 43 07 22 90 0d 5d
The result strings would be:
%*pE "\eb \C\a"\220\r]"
%*pEhp "\x1bb \C\x07"\x90\x0d]"
%*pEa "\e\142\040\\\103\a\042\220\r\135"Please, read Documentation/printk-formats.txt and lib/string_helpers.c
kernel documentation to get further information.[akpm@linux-foundation.org: tidy up comment layout, per Joe]
Signed-off-by: Andy Shevchenko
Suggested-by: Joe Perches
Cc: "John W . Linville"
Cc: Johannes Berg
Cc: Greg Kroah-Hartman
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 May, 2014
1 commit
-
Do not mention casts for u64/s64. Complements commit 2a7930bd77fe
("Documentation/printk-formats.txt: No casts needed for u64/s64").Signed-off-by: Ilya Dryomov
Acked-by: Randy Dunlap
Signed-off-by: Jiri Kosina
24 Jan, 2014
1 commit
-
dma_addr_t's can be either u32 or u64 depending on a CONFIG option.
There are a few hundred dma_addr_t's printed via either cast to unsigned
long long, unsigned long or no cast at all.Add %pad to be able to emit them without the cast.
Update Documentation/printk-formats.txt too.
Signed-off-by: Joe Perches
Cc: "Shevchenko, Andriy"
Cc: Rob Landley
Cc: Laurent Pinchart
Cc: Julia Lawall
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Sep, 2013
1 commit
-
Pull trivial tree from Jiri Kosina:
"The usual trivial updates all over the tree -- mostly typo fixes and
documentation updates"* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
doc: Documentation/cputopology.txt fix typo
treewide: Convert retrun typos to return
Fix comment typo for init_cma_reserved_pageblock
Documentation/trace: Correcting and extending tracepoint documentation
mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
power: Documentation: Update s2ram link
doc: fix a typo in Documentation/00-INDEX
Documentation/printk-formats.txt: No casts needed for u64/s64
doc: Fix typo "is is" in Documentations
treewide: Fix printks with 0x%#
zram: doc fixes
Documentation/kmemcheck: update kmemcheck documentation
doc: documentation/hwspinlock.txt fix typo
PM / Hibernate: add section for resume options
doc: filesystems : Fix typo in Documentations/filesystems
scsi/megaraid fixed several typos in comments
ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
page_isolation: Fix a comment typo in test_pages_isolated()
doc: fix a typo about irq affinity
...
04 Sep, 2013
1 commit
-
New formats: %p[dD][234]?. The next pointer is interpreted as struct dentry *
or struct file * resp. ('d' => dentry, 'D' => file) and the last component(s)
of pathname are printed (%pd => just the last one, %pd2 => the last two, etc.)Signed-off-by: Al Viro
27 Aug, 2013
1 commit
-
Now all 64-bit architectures have been converted to int-ll64.h in kernel
space, casting to (unsigned) long long is no longer needed when formatting
u64/s64.For backwards compatibility, alpha, ia64, mips64, and powerpc64 still use
int-l64.h in userspace.Signed-off-by: Geert Uytterhoeven
Acked-by: Randy Dunlap
Acked-by: Rob Landley
Signed-off-by: Jiri Kosina
25 Jul, 2013
1 commit
-
Sync with Linus' master to be able to apply
trivial patche to newer code.Signed-off-by: Jiri Kosina
08 Jul, 2013
1 commit
-
This might have been an oversight, as '4' is needed as %pI4/%pi4
are format specifiers and [hnbl] are extensions of it.Signed-off-by: Daniel Borkmann
CC: Joe Perches
Signed-off-by: Jiri Kosina
02 Jul, 2013
1 commit
-
In order to avoid making code that deals with printing both, IPv4 and
IPv6 addresses, unnecessary complicated as for example ...if (sa.sa_family == AF_INET6)
printk("... %pI6 ...", ..sin6_addr);
else
printk("... %pI4 ...", ..sin_addr.s_addr);... it would be better to introduce a format specifier that can deal
with those kind of situations internally; just as we have a "struct
sockaddr" for generic mapping into "struct sockaddr_in" or "struct
sockaddr_in6" as e.g. done in "union sctp_addr". Then, we could
reduce the above statement into something like:printk("... %pIS ..", &sockaddr);
In case our pointer is NULL, pointer() then deals with that already at
an earlier point in time internally. While we're at it, support for both
%piS/%pIS, where 'S' stands for sockaddr, comes (almost) for free.Additionally to that, postfix specifiers 'p', 'f' and 's' are supported
as suggested and initially implemented in 2009 by Joe Perches [1].
Handling of those additional specifiers orientate on the initial RFC that
was proposed. Also we support IPv6 compressed format specified by 'c' and
various other IPv4 extensions as stated in the documentation part.Likely, there are many other areas than just SCTP in the kernel to make
use of this extension as well.[1] http://patchwork.ozlabs.org/patch/31480/
Signed-off-by: Daniel Borkmann
CC: Joe Perches
CC: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller
01 May, 2013
2 commits
-
Pull fixup for trivial branch from Jiri Kosina:
"Unfortunately I made a mistake when merging into for-linus branch, and
omitted one pre-requisity patch for a few other patches (which have
been Acked by the appropriate maintainers) in the series. Mea culpa
maxima, sorry for that."The trivial branch added %pSR usage before actually teaching vsnprintf()
about the 'R' part of %pSR. The 'R' causes the symbol translation to do
a "__builtin_extract_return_addr()" before symbol lookup.That said, on most architectures __builtin_extract_return_addr() isn't
likely to do anything special, so it probably is not normally
noticeable.* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
vsprintf: Add extension %pSR - print_symbol replacement -
print_symbol takes a long and converts it to a function
name and offset. %pS does something similar, but doesn't
translate the address via __builtin_extract_return_addr.
%pSR does the translation.This will enable replacing multiple calls like
printk(...);
printk_symbol(addr);
printk("\n");
with a single non-interleavable in dmesg
printk("... %pSR\n", (void *)addr);Update documentation too.
Signed-off-by: Joe Perches
Signed-off-by: Jiri Kosina
09 Mar, 2013
1 commit
-
Update email address and CREDITS info. xenotime.net is defunct.
Signed-off-by: Randy Dunlap
Cc: Harry Wei
Cc: Keiichi KII
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
22 Feb, 2013
1 commit
-
Add the %pa format specifier for printing a phys_addr_t type and its
derivative types (such as resource_size_t), since the physical address
size on some platforms can vary based on build options, regardless of
the native integer type.Signed-off-by: Stepan Moskovchenko
Cc: Rob Landley
Cc: George Spelvin
Cc: Andy Shevchenko
Cc: Stephen Boyd
Cc: Andrei Emeltchenko
Cc: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
06 Oct, 2012
1 commit
-
Acked-by: Andrei Emeltchenko
Signed-off-by: Andy Shevchenko
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
31 Jul, 2012
2 commits
-
There are many places in the kernel where the drivers print small buffers
as a hex string. This patch adds a support of the variable width buffer
to print it as a hex string with a delimiter. The idea came from Pavel
Roskin here: http://www.digipedia.pl/usenet/thread/18835/17449/Sample output of
pr_info("buf[%d:%d] %*phC\n", from, len, len, &buf[from]);
could be look like this:
[ 0.726130] buf[51:8] e8:16:b6:ef:e3:74:45:6e
[ 0.750736] buf[59:15] 31:81:b8:3f:35:49:06:ae:df:32:06:05:4a:af:55
[ 0.757602] buf[17:5] ac:16:d5:2c:efSigned-off-by: Andy Shevchenko
Cc: Joe Perches
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Bluetooth uses mostly LE byte order which is reversed for visual
interpretation. Currently in Bluetooth in use unsafe batostr function.This is a slightly modified version of Joe's patch (sent Sat, Dec 4,
2010).Signed-off-by: Andrei Emeltchenko
Cc: Joe Perches
Cc: Marcel Holtmann
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
16 Jun, 2011
1 commit
-
This patch updates the incomplete documentation concerning the printk
extended format specifiers.Signed-off-by: Andrew Murray
Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds
13 Nov, 2008
1 commit
-
Add printk-formats.txt so that we don't have to keep fixing the
same things over and over again.Signed-off-by: Randy Dunlap
Cc: Alexey Dobriyan
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds