Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

printk(9) [centos man page]

PRINTK(9)							   Driver Basics							 PRINTK(9)

printk - print a kernel message SYNOPSIS
int printk(const char * fmt, ...); ARGUMENTS
fmt format string ... variable arguments DESCRIPTION
This is printk. It can be called from any context. We want it to work. We try to grab the console_lock. If we succeed, it's easy - we log the output and call the console drivers. If we fail to get the semaphore, we place the output into the log buffer and return. The current holder of the console_sem will notice the new output in console_unlock; and will send it to the consoles before releasing the lock. One effect of this deferred printing is that code which calls printk and then changes console_loglevel may break. This is because console_loglevel is inspected when the actual printing occurs. SEE ALSO
printf(3) See the vsnprintf documentation for format string extensions over C99. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 PRINTK(9)

Check Out this Related Man Page

TRACE_PRINTK(9) 						   Driver Basics						   TRACE_PRINTK(9)

trace_printk - printf formatting in the ftrace buffer SYNOPSIS
trace_printk(fmt, ...); ARGUMENTS
fmt the printf format for printing ... variable arguments NOTE
__trace_printk is an internal function for trace_printk and the ip is passed in via the trace_printk macro. This function allows a kernel developer to debug fast path sections that printk is not appropriate for. By scattering in various printk like tracing in the code, a developer can quickly see where problems are occurring. This is intended as a debugging tool for the developer only. Please refrain from leaving trace_printks scattered around in your code. (Extra memory is used for special buffers that are allocated when trace_printk is used) A little optization trick is done here. If there's only one argument, there's no need to scan the string for printf formats. The trace_puts will suffice. But how can we take advantage of using trace_puts when trace_printk has only one argument? By stringifying the args and checking the size we can tell whether or not there are args. __stringify((__VA_ARGS__)) will turn into "()" with a size of 3 when there are no args, anything else will be bigger. All we need to do is define a string to this, and then take its size and compare to 3. If it's bigger, use do_trace_printk otherwise, optimize it to trace_puts. Then just let gcc optimize the rest. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 TRACE_PRINTK(9)
Man Page

11 More Discussions You Might Find Interesting

1. Programming

Kernel module - How to test if file doesn't exist

Hey, I'm currently getting into some kernel module progamming. As a little exercise I want to read the headers out of an ELF file. My code is very simple, here is the important part: struct file *fp; /* ... */ fp = filp_open("some/file/on/my/pc", O_RDONLY, 0); if(fp == NULL) { ... (15 Replies)
Discussion started by: disaster
15 Replies

2. UNIX for Advanced & Expert Users

How can I get data in the sk_buff?

Hi, all: In debugging, how can I get the data in a sk_buff? Can printk print them, or which function can get the data? li, kunlun (2 Replies)
Discussion started by: liklstar
2 Replies

3. Shell Programming and Scripting

Merging multiple files using lines from one file

I have been working of this script for a very long time and I have searched the internet for direction but I am stuck here. I have about 3000 files with two columns each. The length of each file is 50000. Each of these files is named this way b.4, b.5, b.6, b.7, b.8, b.9, b.10, b.11, b.12... (10 Replies)
Discussion started by: iconig
10 Replies

4. Ubuntu

Kernel panics : trying to write / read on tiny tty driver

I'm a beginner to the Linux programming and trying my hands on some device driver examples while practising. The below code (a trimmed down version of tiny_tty.c from ldd3 book) loads perfectly using insmod and I'm able to see it in /proc/tty/drivers , /proc/modules and device nodes are getting... (1 Reply)
Discussion started by: diwsdiwa
1 Replies

5. UNIX for Advanced & Expert Users

Kernel crash - NULL pointer dereference when calling DEVICE_WRITE from KTHREAD in a USB device drive

I'm writing a simple USB driver to drive a stepper motor based on USB Skeleton 2.2 Driver, kernel 3.8. The basic version is running properly. As a advancement, I introduced KTHREAD to call the DEVICE_WRITE (skel_write) (), so that the driver will be available for other tasks & requests. Calling... (0 Replies)
Discussion started by: miteshgaware
0 Replies

6. Red Hat

Cause PCIe error callbacks using AER injection

I am trying to cause a callback in the Linux nvme driver by using AER injection. I've modified the AER source code to directly inject errors through module loading rather than from userland program. I've verified that I got the correct bus, dev, and fn and that the error injection went... (0 Replies)
Discussion started by: Decrypto
0 Replies

7. UNIX for Dummies Questions & Answers

How to pass cat file in awk statement?

Hi, I am working on kernel parameters, want to check values under /proc/sys/kernel below I tried for kernel.sem SEMMNS: 4096 cat /proc/sys/kernel/sem | awk '{print $2}' awk '{ if ($2 < 33000) print }' /proc/sys/kernel/sem |awk '{print $2}' 32000 The above... (7 Replies)
Discussion started by: stew
7 Replies

8. Ubuntu

Measuring the correctness of ndelay() function.

I wrote this kernel module to test the correctness of ndelay() function. Kernel mdoule: #include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/time.h> #include <linux/delay.h> static int __init initialize(void) { ktime_t start, end; s64... (1 Reply)
Discussion started by: BHASKAR JUPUDI
1 Replies

9. Red Hat

Meaning of /var/log/messages

I am getting a lot of message as follows in /var/log/message files as follows. messages.1:559:May 4 20:01:56 SERVER2 kernel: session_stat: sync=0 async=33 aretr=0 messages.1:560:May 4 20:02:42 SERVER2 kernel: session_stat: dev=fd:5 state=6 blksize=4096 mmapsize=262144 messages.1:561:May 4... (2 Replies)
Discussion started by: Anjan Ganguly
2 Replies

10. Ubuntu

Ubuntu very slow after repartitioning

Good evening, i don't know if this is the right section, so forgive me if it's wrong. i have an Asus Gl503v in dual boot w10-ubuntu18. hard disk is hybrid ssd-hhd. w10 is the native system and it is on ssd. I partitioned the hdd left a part ntfs and a part ext4. In the ext4 part i created... (15 Replies)
Discussion started by: Marcov
15 Replies

11. UNIX for Beginners Questions & Answers

Missing Modules After Compiling Kernel

I'm a little embarrassed after all these years I've never really successfully compiled my own kernel. I used this guide to make the following files: linux-headers-5.1.9_5.1.9-1_amd64.deb linux-image-5.1.9_5.1.9-1_amd64.deb linux-libc-dev_5.1.9-1_amd64.deb When I first booted into this... (4 Replies)
Discussion started by: Azrael
4 Replies

Featured Tech Videos