diff --git a/LKM.svg b/LKM.svg
index ccda420..fa87350 100644
--- a/LKM.svg
+++ b/LKM.svg
@@ -1,3 +1,4 @@
+
diff --git a/Linux_kernel_diagram.dot b/Linux_kernel_diagram.dot
index 4402ae3..18f73a5 100644
--- a/Linux_kernel_diagram.dot
+++ b/Linux_kernel_diagram.dot
@@ -8,7 +8,7 @@ digraph "Linux_kernel_diagram" {
]
node [
fixedsize = false,
- fontname = Ubuntu
+ fontname = "Helvetica,Arial,sans-serif",
fontsize = 24,
height = 1,
shape = box,
@@ -18,7 +18,7 @@ digraph "Linux_kernel_diagram" {
edge [
arrowhead = none,
arrowsize = 0.5,
- labelfontname = "Ubuntu",
+ labelfontname = "Helvetica,Arial,sans-serif",
weight = 10,
style = "filled,setlinewidth(5)"
]
@@ -135,23 +135,23 @@ digraph "Linux_kernel_diagram" {
width = 1.2]
NFS -> log_prot [weight = 0]
}
- subgraph processing {
+ subgraph multitasking {
node [color = "#c46747"]
edge [color = "#c46747"]
- processing_ [
+ multitasking_ [
fixedsize = true,
height = 0,
shape = point
style = invis,
width = 0]
- processing [
- URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Processing",
+ multitasking [
+ URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Multitasking",
fillcolor = white,
fixedsize = true,
height = 0.6,
row = func,
width = 2]
- processing -> processing_ [
+ multitasking -> multitasking_ [
arrowhead = "",
row = func]
proc [
@@ -167,8 +167,8 @@ digraph "Linux_kernel_diagram" {
fillcolor = "#91b5c9",
fixedsize = true,
fontsize = 20,
- fontname = "Ubuntu Condensed"
- label = synchronization,
+ fontname = "Helvetica,Arial,sans-serif",
+ label = synchronization,
height = 0.7,
//width = 2,
shape = octagon]
@@ -188,7 +188,7 @@ digraph "Linux_kernel_diagram" {
fontsize = 20,
row = chip]
IRQ -> CPU
- } // processing
+ } // multitasking
subgraph mem {
node [
color = "#51bf5b",
@@ -363,7 +363,7 @@ digraph "Linux_kernel_diagram" {
]
system;
networking;
- system -> processing [weight = 1]
+ system -> multitasking [weight = 1]
storage -> networking [weight = 1]
memory [
color = "#51bf5b",
@@ -374,7 +374,7 @@ digraph "Linux_kernel_diagram" {
row = func,
width = 2]
memory -> storage [weight = 1]
- processing -> memory [weight = 1]
+ multitasking -> memory [weight = 1]
functions_ [
fixedsize = true,
height = 0,
@@ -385,7 +385,7 @@ digraph "Linux_kernel_diagram" {
functions [
color = gray,
tooltip = "Columns represent main functionalities of the kernel",
- URL = "http://www.makelinux.net/ldd3/chp-1-sect-2.shtml",
+ URL = "https://www.oreilly.com/library/view/linux-device-drivers/0596000081/ch01s02.html",
fillcolor = gray,
fixedsize = true,
height = 0.6,
@@ -431,9 +431,9 @@ digraph "Linux_kernel_diagram" {
storage_;
FS;
storage_ -> FS;
- processing_;
+ multitasking_;
proc;
- processing_ -> proc;
+ multitasking_ -> proc;
HI_;
char;
HI_ -> char;
@@ -553,7 +553,7 @@ digraph "Linux_kernel_diagram" {
RAM;
}
bottom [
- label = "© 2007-2021 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram",
+ label = "© 2007 Constantine Shulyupin https://makelinux.github.io/kernel/diagram",
shape = plaintext,
style = ""]
CPU -> bottom [style = invis]
@@ -623,5 +623,5 @@ digraph "Linux_kernel_diagram" {
label = "Linux kernel diagram",
shape = plain,
style = ""]
- LKD -> processing [style = invis]
+ LKD -> multitasking [style = invis]
}
diff --git a/README.md b/README.md
index 7114cd9..7d7c29b 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
# linux_kernel_map
+
Linux kernel map
Edited with Inkscape 0.46 on Ubuntu 9.04.
-Latter vesions of Inkscape don't render connetors propely.
+Recent versions of Inkscape don't render connectors properly.
Online demo:
https://makelinux.github.io/kernel/map/
-
Online demo of the Linux kernel diagram:
https://makelinux.github.io/kernel/diagram/
diff --git a/ignore.txt b/ignore.txt
index 0eb3516..c76a5bd 100644
--- a/ignore.txt
+++ b/ignore.txt
@@ -36,6 +36,7 @@ compound_head
cond_resched
container_of
cpumask_bits
+cpu_of
cpu_relax
cpu_to_le16
current
@@ -44,7 +45,9 @@ DECLARE_BITMAP
DECLARE_COMPLETION_ONSTACK
DECLARE_WAITQUEUE
defined
+DEFINE_IO_COMP_BATCH
DEFINE_MUTEX
+dequeue_entity
dev_dbg
dev_err
device_add
@@ -59,8 +62,10 @@ d_inode
disable_irq
DIV_ROUND_UP
DMA_BIT_MASK
+dma_rmb
dma_set_mask_and_coherent
dput
+drm_dev_dbg
dump_stack
EAGAIN
EBADF
@@ -124,6 +129,7 @@ init_completion
__initdata
INIT_LIST_HEAD
init_waitqueue_head
+inw
irq_state_set_disabled
irq_state_set_masked
IS_ENABLED
@@ -145,6 +151,8 @@ _kstrtoul
kstrtoull
kvasprintf_const
kzalloc
+le16_to_cpu
+le32_to_cpu
likely
list
list_add
@@ -171,6 +179,7 @@ memset
might_sleep
min
MINOR
+min_t
MKDEV
msleep
mutex_init
@@ -201,6 +210,7 @@ PAGE_SIZE
page_to_nid
page_to_pfn
page_zone
+parent_entity
path_put
path_put
pci_dev_put
@@ -229,7 +239,9 @@ pr_err
pr_fmt
pr_info
pr_info_once
+__printf
printk
+printk_once
pr_warn
pte_t
ptl
@@ -241,7 +253,12 @@ PVOP_CALLEE0
PVOP_VCALLEE0
PVOP_VCALLEE1
raw_local_irq_save
+raw_spin_*lock
+raw_spin_lock
+raw_spin_lock_irq
raw_spin_lock_irqsave
+raw_spin_unlock
+raw_spin_unlock_irq
raw_spin_unlock_irqrestore
rcu_read_lock
rcu_read_unlock
@@ -251,6 +268,7 @@ readl_relaxed
READ_ONCE
read_unlock
real_mount
+reg_write
__releases
resource_size
ret
@@ -258,6 +276,7 @@ _RET_IP_
retry
retry_estale
rmb
+rq_list_empty
__set_bit
sigdelsetmask
SIGKILL
@@ -266,6 +285,10 @@ SIGSTOP
simple_strtoul
size
size_t
+smp_mb
+smp_mb__after_spinlock
+smp_rmb
+smp_wmb
spi_master_get_devdata
spin_lock
spin_lock_init
@@ -315,6 +338,8 @@ __volatile__
WARN
WARN_ON
WARN_ON_ONCE
+wmb
+writel
writel_relaxed
write_reg16
XXstart
diff --git a/linux.adoc b/linux.adoc
new file mode 100644
index 0000000..d057f13
--- /dev/null
+++ b/linux.adoc
@@ -0,0 +1,17181 @@
+:toc:
+:toclevels: 10
+:toc-title: Contents
+:toc-class: floating-toc
+
+The initial implementation handles the debug (-D) option, with more
+common options to be migrated in future patches.
+
+= Costa's Linux kernel research scratchpad
+
+keywords:
+
+ CONFIG_ACPI_HOTPLUG_CPU
+
+
+ scale_freq_tick
+ "Scheduler frequency invariance went wobbly, disabling!"
+
+ task_work_run
+
+
+ notify_cpu_starting
+ rcutree_report_cpu_starting
+
+ vfs_rmdir
+ kernfs_iop_rmdir
+ cgroup_rmdir
+ cgroup_destroy_locked
+ kill_css
+
+ cgroup_base_files
+ cgroup_subtree_control_write
+ cgroup_finalize_control
+ cgroup_apply_control_disable
+ kill_css
+
+ kill_css
+ percpu_ref_kill_and_confirm
+ &css_killed_ref_fn
+ offline_css
+ cpuset_css_offline
+ update_prstate ->
+ css_put
+
+ ktimers/7-94 [007] dN.11 110543.408319: ipi_send_cpu: cpu=7 callsite=irq_work_queue_on+0xe1/0xf0 callback=rcu_preempt_deferred_qs_handler+0x0/0x20
+
+ include/linux/context_tracking_irq.h
+
+ __trace_stack
+ ct_irq_enter_irqson
+ ct_irq_enter
+ ct_nmi_enter
+ rcu_watching Startirq
+ __ftrace_trace_stack
+ ct_irq_exit_irqson
+ ct_irq_exit
+ ct_nmi_exit
+ rcu_watching Endirq
+
+ rcu_read_unlock_special
+ @rcu_preempt_deferred_qs_handler
+ init_irq_work
+ irq_work_queue_on
+
+ cpuset_write_resmask housekeeping_exlude_isolcpus cpu_up
+
+ vim format paragpaph: gqip
+
+== Intro
+
+=== Table TOC
+
+[cols="6*",options="header,footer,autowidth"]
+|===
+| <>
+| <>
+| <>
+| <>
+| <>
+| <>
+
+|
+<> +
+<