summaryrefslogtreecommitdiffstats
path: root/analysis/loop/sequence_diagram_loop_device_init_exit.txt
diff options
context:
space:
mode:
Diffstat (limited to 'analysis/loop/sequence_diagram_loop_device_init_exit.txt')
-rw-r--r--analysis/loop/sequence_diagram_loop_device_init_exit.txt187
1 files changed, 187 insertions, 0 deletions
diff --git a/analysis/loop/sequence_diagram_loop_device_init_exit.txt b/analysis/loop/sequence_diagram_loop_device_init_exit.txt
new file mode 100644
index 0000000..1c04f40
--- /dev/null
+++ b/analysis/loop/sequence_diagram_loop_device_init_exit.txt
@@ -0,0 +1,187 @@
+title Loop device kernel module
+participantgroup #lightyellow Kernel
+participant Kernel
+participantgroup #lightblue Loop device kernel module
+participant Module
+participant Loop control
+participant Loop device
+end
+participant MISC
+participant Blkdev
+participant Blk-mq
+participant Blk-settings
+participant Blk-core
+participant Genhd
+end
+
+group Kernel module init
+activate Kernel
+
+Kernel->Module:module_init
+activate Module
+deactivate Kernel
+Module->Loop control:loop_init
+deactivate Module
+activate Loop control
+Loop control->MISC:misc_register
+deactivate Loop control
+activate MISC
+note right of MISC:create "loop-control"\nmisc device
+Loop control<--MISC:
+deactivate MISC
+activate Loop control
+Loop control->Blkdev:register_blkdev
+deactivate Loop control
+activate Blkdev
+note right of Blkdev:create "loop"\nblock device
+Loop control<--Blkdev:
+activate Loop control
+deactivate Blkdev
+Loop control->Genhd:blk_register_region
+deactivate Loop control
+activate Genhd
+note right of Genhd:register device\nnumbers
+Loop control<--Genhd:
+deactivate Genhd
+activate Loop control
+
+loop pre-create loop devices
+Loop control->Loop device:loop_add
+deactivate Loop control
+activate Loop device
+Loop device->Blk-mq:blk_mq_alloc_tag_set
+activate Blk-mq
+deactivate Loop device
+Loop device<--Blk-mq:
+deactivate Blk-mq
+activate Loop device
+Loop device->Blk-mq:blk_mq_init_queue
+activate Blk-mq
+deactivate Loop device
+Loop device<--Blk-mq:
+deactivate Blk-mq
+activate Loop device
+Loop device->Blk-settings:blk_queue_max_hw_sectors
+activate Blk-settings
+deactivate Loop device
+Loop device<--Blk-settings:
+deactivate Blk-settings
+
+activate Loop device
+Loop device->Blk-core:blk_queue_flag_set
+activate Blk-core
+deactivate Loop device
+Loop device<--Blk-core:
+deactivate Blk-core
+
+activate Loop device
+Loop device->Genhd:alloc_disk
+activate Genhd
+deactivate Loop device
+Loop device<--Genhd:
+deactivate Genhd
+
+activate Loop device
+Loop device->Genhd:add_disk
+activate Genhd
+deactivate Loop device
+Loop device<--Genhd:
+deactivate Genhd
+
+activate Loop device
+Loop control<--Loop device:
+deactivate Loop device
+activate Loop control
+end
+
+Module<--Loop control:
+deactivate Loop control
+activate Module
+Kernel<--Module:
+deactivate Module
+activate Kernel
+space
+deactivate Kernel
+end
+
+group Kernel module exit
+activate Kernel
+Kernel->Module:module_exit
+deactivate Kernel
+activate Module
+Module->Loop control:loop_exit
+deactivate Module
+activate Loop control
+
+
+loop delete loop devices
+Loop control->Loop device:loop_remove
+deactivate Loop control
+
+activate Loop device
+Loop device->Genhd:del_gendisk
+activate Genhd
+deactivate Loop device
+Loop device<--Genhd:
+deactivate Genhd
+
+activate Loop device
+Loop device->Blk-core:blk_cleanup_queue
+activate Blk-core
+deactivate Loop device
+Loop device<--Blk-core:
+deactivate Blk-core
+
+activate Loop device
+Loop device->Blk-mq:blk_mq_free_tag_set
+activate Blk-mq
+deactivate Loop device
+Loop device<--Blk-mq:
+deactivate Blk-mq
+
+activate Loop device
+Loop device->Genhd:put_disk
+activate Genhd
+deactivate Loop device
+Loop device<--Genhd:
+deactivate Genhd
+
+activate Loop device
+Loop control<--Loop device:
+deactivate Loop device
+activate Loop control
+end
+
+Loop control->Genhd:blk_unregister_region
+deactivate Loop control
+activate Genhd
+note right of Genhd:delete device\nnumbers
+Loop control<--Genhd:
+deactivate Genhd
+activate Loop control
+
+Loop control->Blkdev:unregister_blkdev
+deactivate Loop control
+activate Blkdev
+note right of Blkdev:delete "loop"\nblock device
+Loop control<--Blkdev:
+deactivate Blkdev
+activate Loop control
+
+Loop control->MISC:misc_deregister
+deactivate Loop control
+activate MISC
+note right of MISC:delete "loop-control"\nmisc device
+Loop control<--MISC:
+deactivate MISC
+
+activate Loop control
+Module<--Loop control:
+deactivate Loop control
+
+activate Module
+Kernel<--Module:
+deactivate Module
+
+activate Kernel
+end \ No newline at end of file