Linux核心之RCU鎖

2021-09-23 18:52:20 字數 609 閱讀 8165

rcu全程read-only-update

rcu機制:rcu記錄了所有指向共享資料的指標的使用者,當要修改共享資料的時候,首先建立乙個副本,在副本中修改。所有讀執行緒都離開讀臨界區之後,指標指向新的修改後副本的指標,並且刪除舊資料。

#include #include #include #include #include #include #include #include struct foo

;static struct foo* g_ptr;

//讀者執行緒

static void myrcu_reader_thread(void* data)

}static void myrcu_del(struct rcu_head* rh)

//寫者執行緒

static void myrcu_writer_thread(void* p)

}static int __init my_test_init(void)

static void __exit my_test_exit(void)

module_license("gpl");

module_init(my_test_init)

linux核心 RCU機制概述

簡介 rcu read copy update 是資料同步的一種方式,在當前的linux核心中發揮著重要的作用。rcu主要針對的資料物件是鍊錶,目的是提高遍歷讀取資料的效率,為了達到目的使用rcu機制讀取資料的時候不對鍊錶進行耗時的加鎖操作。這樣在同一時間可以有多個執行緒同時讀取該鍊錶,並且允許乙個...

Linux 核心自旋鎖

現在很多cpu都是幾核幾核的了,如果有乙個變數a,cpu x正在訪問,突然cpu y也過來訪問他,這時候就可能出現問題,因為這個a非常重要,可能導致系統崩潰,中斷異常等。我們來看之前說的tp驅動裡面的 void gtp irq enable struct goodix ts data ts spin...

linux核心鎖機制

核心鎖的討論 為什麼需要核心鎖?多核處理器下,會存在多個程序處於核心態的情況,而在核心態下,程序是可以訪問所有核心資料的,因此要對共享資料進行保護,即互斥處理 有哪些核心鎖機制?1 原子操作 atomic t資料型別,atomic inc atomic t v 將v加1 原子操作比普通操作效率要低,...