User Tools

Site Tools


drivers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
drivers [05/18/2018 09:31] – [Kernel memory allocation] admindrivers [05/18/2018 09:53] (current) – [Debugging] admin
Line 19: Line 19:
   * dma_alloc_coherent   * dma_alloc_coherent
   * dma_alloc_sg   * dma_alloc_sg
-  * contiguous memory (CMA, ION)+  * contiguous memory algorithms (CMA, ION)
  
 Debugging features: Debugging features:
Line 29: Line 29:
 An issue with I/O memory accesses is memory reordering, which may require memory barriers (rmb(), wmb(), mw()). An issue with I/O memory accesses is memory reordering, which may require memory barriers (rmb(), wmb(), mw()).
  
 +===== User space memory handling =====
 User-space applications can access physical addresses directly through /dev/mem. User-space applications can access physical addresses directly through /dev/mem.
 +
 +  * Process heap (sbrk, brk)
 +  * Direct/Abstract (mmap)
 +  * Allocators (malloc, calloc, realloc, free)
 +
  
 ====== Modules ====== ====== Modules ======
Line 103: Line 109:
  
 Threaded interrupts are executed inside a thread (allows to block inside the handler). There is support for interrupt handler execution priority. Threaded interrupts are executed inside a thread (allows to block inside the handler). There is support for interrupt handler execution priority.
 +
 +UIO allows the handling from interrupt in user space.
  
 ====== Concurrency ====== ====== Concurrency ======
  
 The kernel lock validator is an useful tool to detect violations of locking rules during system life. Alternatives to locking are the use of lock-free algorithms (e.g. read copy update, RCU) or atomic operations (.e.g. atomic_set/atomic_read). The kernel lock validator is an useful tool to detect violations of locking rules during system life. Alternatives to locking are the use of lock-free algorithms (e.g. read copy update, RCU) or atomic operations (.e.g. atomic_set/atomic_read).
 +===== Semaphores =====
 ===== Mutexes ===== ===== Mutexes =====
  
Line 132: Line 141:
   * Kernel markers   * Kernel markers
   * LTTng with LTTV   * LTTng with LTTV
 +  * printk
 +  * kernel configs
 +  * debugfs/sysfs
 +  * ftrace
 +  * Kdb
 +  * Kgdb
 +  * jtag + gdb
 +  * emulation (QEmu)
  
 +Userspace:
 +  * printf
 +  * strace
 +  * ltrace
 +  * valgrind
 +  * gdb
 ====== Userspace drivers ====== ====== Userspace drivers ======
 http://2net.co.uk/slides/ew2016-userspace-drivers-slides.pdf http://2net.co.uk/slides/ew2016-userspace-drivers-slides.pdf
  
  
drivers.1526635915.txt.gz · Last modified: by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki