Skip to Content
Mastering Linux Kernel Development
book

Mastering Linux Kernel Development

by CH Raghav Maruthi
October 2017
Intermediate to advanced
354 pages
9h 28m
English
Packt Publishing
Content preview from Mastering Linux Kernel Development

Operation interfaces:

Wait/wound mutexes are represented through struct ww_mutex defined in the header <linux/ww_mutex.h>:

struct ww_mutex {
       struct mutex base;
       struct ww_acquire_ctx *ctx;
# ifdef CONFIG_DEBUG_MUTEXES
       struct ww_class *ww_class;
#endif
};

The first step to use wait/wound mutex is to define a class, which is a mechanism to represent a group of locks. When concurrent tasks contend for the same locks, they must do so by specifying this class.

A class can be defined using a macro:

static DEFINE_WW_CLASS(bufclass);

Each class declared is an instance of type struct ww_class and contains an atomic counter stamp, which is used to hold a sequence number that records which one of the contending tasks got there first. Other fields are ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Linux Kernel Development, Third Edition

Linux Kernel Development, Third Edition

Robert Love
Understanding the Linux Kernel

Understanding the Linux Kernel

Daniel P. Bovet, Marco Cesati
Linux Kernel Debugging

Linux Kernel Debugging

Kaiwan N. Billimoria

Publisher Resources

ISBN: 9781785883057Other