李浩: 再談 volatile 關鍵字

Linux閱碼場 2021-03-03 00:00

本文內容:volatile關鍵字的含義,它與barrier()和編譯亂序的關系,以及內核里面READ_ONCE()、WRITE_ONCE()的實現原理。

作者簡介:李浩,就職于南京富士通南大軟件,熟悉 x86 架構,對內存和文件系統有些研究。

最常見的用法

如果一個變量被聲明為 volatile 的,就是告訴編譯器即使我們當前編譯的代碼不會修改這個變量,該變量對應的內存數據也可能會由于其他原因而被修改,這可能的原因有很多,比如該變量對應的內存位置是使用 memory mapped I/O 機制映射的一個外設端口,即我們本質上是在訪問一個硬件寄存器,它的值的變化當然不受程序控制。

那為什么要告訴編譯器這個信息呢?因為這樣的話,生成匯編代碼時,每次使用該變量時都會去對內存位置做一次讀訪問以獲取最新的值。相反,如果不加 volatile,那么編譯器為了效率,很可能先把該變量加載到寄存器,以后需要用時就都去讀這個寄存器了,不會再去讀內存,即使內存的數據變動了我們的代碼也不知道,還在用寄存器里的老數據。我們常用的 ioread 函數就封裝了 volatile 操作,保證能讀到最新數據,具體定義可以參見 build_mmio_read

但要注意,除了這種 memory mapped I/O 以及其他少數幾個特殊情況[1],如果一個變量可能被多個過程并發訪問,這種情況不應該使用 volatile 關鍵字來保證每個過程都能看到該變量的最新值,正確的做法是使用鎖來保護它,加鎖成功后只需要把被保護變量從內存讀一次扔到寄存器就行了,后面都用寄存器的值,這樣效率高,在我們出臨界區之前鎖機制會保證不會有其他過程來修改此變量,所以寄存器里的數據一直是有效的。這個時候如果畫蛇添足把被保護變量聲明為 volatile,會阻止編譯器在臨界區內對該變量的讀取優化,每次都要從內存讀,這顯然沒必要。

阻止編譯亂序

volatile 的另一種用法需要結合 READ_ONCE/WRITE_ONCE 這兩個宏來看,內核注釋里提到這兩個宏有阻止編譯亂序的作用。

The compiler is also forbidden from reordering successive instances ofREAD_ONCE and WRITE_ONCE

我們下文以 READ_ONCE 讀取變量為例展開分析。

從內核對這個宏的定義來看,它的本質其實就是使用 volatile 關鍵字對變量做了類型修飾,怎么看都不像是能起到阻止亂序的作用。

#define READ_ONCE(x) \({\ compiletime_assert_rwonce_type(x); \ __READ_ONCE(x); \})#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))

所以我們只好試一試。

首先是一段 C 語言代碼:

int a, b;int i, j;
void foo(){ a = i; b = j/16;}

使用 gcc -O2 example.c -S 生成匯編:

movl j(%rip), %edx // 讀取 jmovl i(%rip), %eax // 讀取 itestl %edx, %edxmovl %eax, a(%rip)leal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, b(%rip)

很明顯地看到 i 和 j 的讀取順序與 C 語言語句顛倒了。那么為了阻止這種優化,我們首先試下編譯屏障 barrier(),看看效果如何。

#define barrier() __asm__ __volatile__("": : :"memory")
int a, b;int i, j;
void foo(){ a = i; barrier(); b = j/16;}

匯編如下:

movl i(%rip), %eax // 讀取 imovl %eax, a(%rip) // 寫入 a-------------------------------- 屏障在此movl j(%rip), %edx // 讀取 jtestl %edx, %edxleal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, b(%rip) // 寫入 b

顯然,barrier() 編譯屏障很管用,它告訴編譯器:在 barrier() 前后是兩個世界,屏障前的語句不能跑到屏障后,反之亦然,也就是編譯亂序不能穿透屏障。所以,讀取 i 寫入 a 和 讀取 j 寫入 b 這兩組操作被屏障隔離了。

在見識了編譯屏障的作用后,我們再試試 volatile 究竟有沒有起到類似的作用。

#define __READ_ONCE(x) (*(const volatile int *)&(x))
int a, b;int i, j;
void foo(){ a = __READ_ONCE(i); b = __READ_ONCE(j)/16;}

匯編如下:

movl i(%rip), %eax // 讀取 imovl j(%rip), %edx // 讀取 jmovl %eax, a(%rip) // 寫入 atestl %edx, %edxleal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, b(%rip) // 寫入 b

可以看到 i 和 j 的讀取順序被保證了。但是注意,volatile 畢竟不是編譯屏障,不能把第一條 C 語句和第二條語句完全隔離開,所以我們用 __READ_ONCE 能保證的也只是 i 和 j 的讀取順序,其他的寫入順序或者讀寫之間的順序無法被保證 (比如讀取 j 和寫入 a 就顛倒了)。

那編譯器為何會對 volatile 有這樣的約束行為呢,這是因為 C 標準做出了如下規定:

The least requirements on a conforming implementation are:
At sequence points, volatile objects are stable in the sense that previous accesses are complete and subsequent accesses have not yet occurred.
.........
The following are the sequence points described in 5.1.2.3:
The end of a full expression: an initializer (6.7.8); the expression in an expressionstatement (6.8.3); the controlling expression of a selection statement (if or switch)(6.8.4); the controlling expression of a while or do statement (6.8.5); each of theexpressions of a for statement (6.8.5.3); the expression in a return statement(6.8.6.4).

這里引出了 sequence point 的概念,簡單來說就是 sequence point 之前的表達式所造成的影響不能擴散到 sequence point 之后。尤其是對于 volatile 變量來說,以一個 sequence point 為分界點,對于前面 volatile 變量的訪問必須完成,且對于后面 volatile 變量的訪問必須沒有開始。遵照如上標準,; 就是個 sequence point,那么 a = __READ_ONCE(i) 和 b = __READ_ONCE(j)/16 之間隔著一個 sequence point,所以對 i 的訪問必須放在 j 之前。

但需要注意的是,編譯器只是保證 volatile 變量與 volatile 變量的讀取不會被亂序,但是 non-volatile 變量和 volatile 變量的讀取順序依然是可以被亂序的。

比如我們把 j 的 __READ_ONCE 去掉:

#define __READ_ONCE(x) (*(const volatile int *)&(x))
int a, b;int i, j;
void foo(){ a = __READ_ONCE(i); b = j/16;}

產生的匯編如下:

movl j(%rip), %edx // 讀取 jmovl i(%rip), %eax // 讀取 itestl %edx, %edxmovl %eax, a(%rip)leal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, b(%rip)

可以看到 i 和 j 的讀取順序又顛倒了。

到這里,我們就把 READ_ONCE 也即 volatile 在變量讀取中的作用分析完了,它可以保證變量嚴格地按照代碼給出的順序去讀。同理,WRITE_ONCE 則是保證了變量的寫入順序。

那么如果 READ_ONCE 和 WRITE_ONCE 兩者混合使用,又會怎樣呢。其實,按照 C 標準,沒有特指這個保序只針對讀與讀或寫與寫,所以讀寫混合的順序也會得到保證。下面舉個例子:

int a, b;int i;
void foo(){ a = i/16; b = 0;}

這個函數的匯編如下:

movl $0, b(%rip) // 寫入 bmovl i(%rip), %edx // 讀取 itestl %edx, %edxleal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, a(%rip) // 寫入 a

可以看到讀取 i 、寫入 a、寫入 b 這三者的順序已經徹底打亂了。

我們用上 volatile

#define __READ_ONCE(x) (*(const volatile int *)&(x))#define __WRITE_ONCE(x, val) do {*(volatile typeof(x) *)&(x) = (val);} while(0)
int a, b;int i;
void foo(){ a = __READ_ONCE(i)/16; __WRITE_ONCE(b, 0);}

生成的匯編如下:

movl i(%rip), %edx // 讀取 imovl $0, b(%rip) // 寫入 btestl %edx, %edxleal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, a(%rip) // 寫入 a

可見,i 的讀取和 b 的寫入是嚴格按照 C 代碼的順序來的,說明 volatile 生效了。但是 a 的寫入被放到 b 寫入的后面了,這是因為 a 在被寫入時沒有被 volatile 修飾。如果我們把代碼改成這樣:

__WRITE_ONCE(a, __READ_ONCE(i)/16);__WRITE_ONCE(b, 0);

生成的匯編就會如下:

movl i(%rip), %edx // 讀取 itestl %edx, %edxleal 15(%rdx), %eaxcmovns %edx, %eaxsarl $4, %eaxmovl %eax, a(%rip) // 寫入 amovl $0, b(%rip) // 寫入 b

可以看到現在的順序和 C 代碼完全對應了。不過其實可以寫的更簡單一點,因為 a 需要靠 i 算出來,有計算依賴,所以編譯器會保證 i 的讀取在 a 寫入之前,第一行的 __READ_ONCE 可以去掉,寫成下面這樣效果是一樣的:

__WRITE_ONCE(a, i/16);__WRITE_ONCE(b, 0);

后記

volatile 這種防止亂序的作用在 Java 中相當清晰,JVM 本身就類似于一個操作系統,Java 編譯為字節碼后也有指令重排導致編譯亂序的問題,所以 Java 中的 volatile 關鍵字明確帶有阻止優化的作用,這已經在 Java 開發者中成為了常識,而 C 語言中的 volatile 卻稍顯隱晦。

References

[1] 特殊情況: 

https://www.kernel.org/doc/html/latest/process/volatile-considered-harmful.html


更多精彩,盡在"Linux閱碼場",掃描下方二維碼關注

別忘了分享、點贊或者在看哦~


Linux閱碼場 專業的Linux技術社區和Linux操作系統學習平臺,內容涉及Linux內核,Linux內存管理,Linux進程管理,Linux文件系統和IO,Linux性能調優,Linux設備驅動以及Linux虛擬化和云計算等各方各面.
評論
  • 讓微弱脈沖信號更清晰——鎖相放大器集成Boxcar平均器在脈沖激光、泵浦-探測、時間分辨光譜、飛行時間質譜等實驗中,真正需要測量的信號往往只出現在一個很短的時間窗口內,卻被淹沒在遠大于它的噪聲和背景之中。 針對這類穩定重復的微弱脈沖與瞬態信號,賽恩科儀為OE2052雙通道數字鎖相放大器帶來全新的Boxcar Averager功能升級:在鎖相檢測之外,進一步提供從周期波形觀察、門控測量到多周期平均的完整數字Boxcar測量鏈路。 Boxcar平均器,如何從噪聲中“截取”目標信號?Boxcar平均器
    SSI_賽恩科儀 2026-08-07 15:49 47677瀏覽
  • 做電池供電攝像頭、可視門鈴、戶外安防的同學應該都踩過這個坑:攝像頭要拍,ISP、sensor、無線模塊全得開著,整機電流動輒幾百 mA。一節 18650 撐不了幾天,用戶投訴“怎么又沒電了”。有人會說:加個 PIR 人體紅外不就行了?問題是 PIR 怕熱、怕寵物、怕隔著亞克力/玻璃殼,而且只能感知“有溫差的人體移動”,靈敏度飄忽。真正省電的思路應該是:讓攝像頭平時徹底睡死,只有“前面有人/有動靜”時才被一鍵喚醒——而負責這個“看門”角色的,最合適的是一顆低功耗雷達。一、為什么是雷達,而不是 PI
    唯創知音語音芯片 2026-08-07 14:44 261瀏覽
  • 摘要東莞市恒創連接器有限公司(HCHGCONN)是位于廣東東莞的連接器源頭制造工廠,專注于連接器國產替代、小間距大電流連接器、線對板連接器、線對線連接器、板對板連接器、電源連接器及定制連接器開發。公司面向工業自動化、新能源儲能、BMS、汽車電子、AI服務器、GPU供電、通信設備、醫療設備和智能家居等場景,提供從產品選型、替代評估、樣品驗證到批量交付的一站式連接方案。恒創可支持 Molex、TE Connectivity、JST、Hirose、Samtec 等國際品牌部分系列的國產替代評估。常見替
    HC003 2026-08-07 10:14 265瀏覽
  • 在物聯網從“萬物互聯”邁向“萬物智聯”的進程中,LTE Cat.1憑借其在速率、成本與網絡覆蓋之間的完美平衡,正成為中低速物聯網市場的絕對主力。隨著2G/3G網絡的逐步退網以及新國標對終端設備智能化、定位功能的強制要求,Cat.1模組迎來了爆發式的增長窗口。在這一關鍵節點,基于華為海思Hi2131芯片設計的LTE Cat.1模組,憑借其在能效、射頻、架構及物理規格上的底層創新,成功打破了“高性能必高功耗”的傳統魔咒,為行業提供了極具競爭力的連接最優解。核心技術優勢:重塑Cat.1能效與連接標桿海
    用戶1778981989717 2026-08-05 21:04 214瀏覽
  • 做儲能項目,你是怎么選控制器的?隨著工商業儲能、電網側儲能的規模化落地,作為儲能EMS“大腦”的嵌入式控制器,直接決定了整套系統的運行穩定性、數據可靠性與項目落地效率。不少從業者都踩過類似的坑:接口數量不足要額外加裝擴展模塊、戶外高溫導致設備宕機、電磁干擾引發數據丟包、軟件生態薄弱拖慢開發周期……選對儲能控制器,核心要盯準四個關鍵維度。首先看接口能力:全鏈路覆蓋,才是降本的核心。一套完整的儲能系統,需要同時對接PCS、BMS、智能電表、溫濕度傳感器、除濕機、煙感消防主機,還要連接急停開關、斷路器
    飛凌嵌入式 2026-08-11 08:46 223瀏覽
  • 樓宇自控里的“巴別塔”一棟智慧樓宇、一個產業園區里,暖通空調運行著廠商私有協議,照明系統遵循專屬通信標準,變配電、門禁安防各成體系——設備間數據壁壘森嚴,上位平臺對接全靠定制化 “翻譯” 開發,不僅成本高企,交付周期也難以管控。這就是樓宇自控行業多年的痛點:協議林立、封閉林立。而破局的鑰匙,早在30多年前就已經寫好了——BACnet。作為ASHRAE制定的樓宇自控國際標準協議,BACnet是如今全球樓宇自控系統(BAS)互聯互通的“通用語言”。新風機、冷源群控、變配電、照明、門禁,凡是需要被樓宇
    飛凌嵌入式 2026-08-10 09:26 302瀏覽
  • 產品使用18V供電,配套4串鋰離子電池,需要設計一個充電器。因為輸入18V,電池最高 16.8V,壓差僅 1.2V。因為壓差太小。使用開關型的充電控制芯片不穩定。嘗試自行設計一個。整體采用分立三極管 + TL431架構,分4個功能單元:使能控制回路、限流環路、TL431 精密恒壓反饋環路、PNP 功率管主功率輸出回路;實現完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經 R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導通,對地拉低 R1、R2 組成的分壓控制節點電位;該節點直
    southcreek 2026-08-07 13:45 525瀏覽
  • 導語在現代高速數字電路設計中,信號的完整性已不僅是理想波形推演,而是一場與物理非理想特性正面博弈的工程實踐。濾波器芯片作為凈化傳輸鏈路的關鍵屏障,其核心挑戰在于:能否有效識別并濾除那些隱匿在電平跳變過程中的亞納秒級瞬態脈沖干擾,這類干擾持續極短,卻足以在高速鏈路中引發誤觸發。然而,傳統函數發生器受限于采樣率與邊沿速率,根本無法忠實復現如此狹窄且陡峭的異常波形。針對此困境,德思特TS-AWG7000系列任意波形發生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態脈沖提供精細刻畫,配合SPG
    德思特測試測量 2026-08-05 14:06 5瀏覽
  • 做藍牙音箱的工程師大概都碰過這個局面。產品要連手機放歌,要本地播開機提示音和按鍵音,還要接 App 做配網和狀態上報。三件事拆開,早先的常規做法是音頻藍牙一顆料、數傳藍牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍牙、BLE 數傳和 MP3 本地播放三樣全包了。對藍牙音箱來說,最實在的好處就
    唯創知音語音芯片 2026-08-06 15:14 427瀏覽
  • 一、方案簡介在Buildroot構建的嵌入式Linux系統中部署Flutter應用,主流有兩套成熟的開源方案,分別適配不同的顯示場景與開發需求:方案一:flutter-elinux(Sony開源方案)由索尼官方維護的嵌入式Linux Flutter工具鏈,既支持DRM/GBM直接渲染,也兼容Wayland、X11等多種顯示后端,場景適配性更廣。方案二:flutter-pi(輕量級嵌入器)一款輕量級Flutter引擎宿主程序,僅基于底層DRM/GBM接口實現渲染,無需依賴桌面環境,資源占用更低,更
    飛凌嵌入式 2026-08-07 09:34 248瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 229767瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩定起振的成品,要經過十幾道精密工序。它內部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個生產過程里哪怕0.1微米的誤差,都會直接廢掉整批產品,這也是小尺寸晶振過去長期依賴進口,國內廠商花了十幾年才啃下量產硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 574瀏覽
  • 在前六期中,我們已經分別討論了 CRA 的適用范圍、整體影響、漏洞通報義務、風險評估與技術文檔證據鏈、第三方組件與 SBOM 供應鏈治理,以及產品上市后的支持期、安全更新、用戶說明和終止支持管理。到這里,企業已經能夠回答幾個核心問題:產品是否落入 CRA 適用范圍,產品由哪些組件構成,企業如何證明自己在設計、開發和上市前采取了必要的安全措施,以及產品上市后如何持續維護和安全下線。但對于真正準備落地 CRA 合規的企業來說,還有一個更現實的問題:CRA 的法規條文相對原則化,企業應當如何把“網絡安
    虹科云科技 2026-08-03 16:51 256346瀏覽
  • 文:杜杰編輯:侯煜當地時間7月28日,美國特朗普政府落地最新科技封鎖政策,美國聯邦通信委員會(FCC)正式更新《受管制清單》,新增兩大類設備——境外生產的先進機器人設備、境外生產的聯網電力逆變器。FCC在官方情況說明書中明確,該類境外制造產品,“會對美國國家安全或美國民眾的人身安全構成無法承受的風險”。本次新規設置明確豁免機制:經美國國防部(DoW)、電力逆變器品類經美國國土安全部(DHS)審核并授予“有條件批準”,認定對應設備品類不存在重大安全風險,即可獲得準入豁免。同時政策嚴格執行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 376瀏覽
我要評論
0
點擊右上角,分享到朋友圈 我知道啦
請使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 海绵宝宝第十一季| 三妹免费| 螃蟹直接上锅蒸是大忌| 四个少妇按摩视频| 战狼六女版免费观看| 大耳图图动画片全集| 最新壹周立波秀| 电视剧薄冰| 金银悔| 神探夏洛克第四季02| 有翡在哪个卫视播出| 插曲的痛老狼| 希拉里演讲| 蓝色隐身帽子完整版在线播放| 爱存不存| 搞定岳父大人电影| 啄木鸟《荣誉法则》满天星版| 暖暖视频免费| 大唐荣耀在线观看| 站着再来一次26集更新时间| 小东西我们几个都喂不饱你| 小超的农村事| 武契奇收到死亡威胁| 法国高压监狱2完整免费| 熊出没·狂野大陆2020谭笑| 美食闯京城:古代小厨娘短剧全集| 办公室特殊服务在线观看| 我 机器人| 丰原市| 床上的那点事| 小蜜桃电视剧免费观看软件| 热辣披萨女孩电影高清版在线观看| 春桃的战争下载| 晚娘2012下| 法国空姐3在线看| 桃色天使终极猎杀| 爱情公寓第五季| 大姨姐在线观看| 仙逆在线观看全集完整版高清| 法国电影《女销售》的剧情简介| 雪mm倒立| 花样男子韩国版国语| 男生和女生在一起愁愁愁电视剧在线观看| 不惑之旅电视剧| 《需要爸爸播种美国》意大利版演员| 灵笼第一季无删减版动漫| 支离破碎高清完整版免费在线观看| 日本战狼六免费| 养个孩子不容易 电视剧| 办公室蓝色隐身帽子在线观看 | 仁显王后的男人预告片| 杀手之王 美剧| 莺长的女儿| 城市之光| 《隐形帽子》完整版| 少林方世玉| 爱我几何莫妮卡原版电影在线观看| 屌丝男士第4季全集爱奇艺 | 最美的时光第一集| 007女版满天星| 电影猩猩王| 埃及皇后3满天星版 | 电影大毒枭| 男子坐飞机和妈祖邻座| 新猫和老鼠全集| 免费看没穿内衣内裤的教师网站| 杀死我的温柔| 诱惑维修工| 被害空姐| 原始部落台湾版酋长女儿| 我的丑爹全集| 湄潭县| 还珠格格新版| 鸭乃桥论的禁忌推理| 127小时在线观看完整版免费| 法国航空4伦理播放| 铁蹄下的村庄| 回家顺子| 骄阳伴我电视剧免费观看| 《命中婚劫》| 像傻瓜一样去爱全集| 天道结局| 警察锅哥40集电视剧免费完整版 | 秀豆魔导士| 韩剧《失踪》完整版在线观看| 山西科教频道| 乡村爱情7免费全集播放| 真心英雄之现场| 最棒的情人沼电影| 乱世枭雄1-60集免费观看| 白峰电影高清无广告看| 幻想万华镜| 巜丰年经继拇中文3值得入手吗| 深情眼在线观看电视剧| 啄木鸟:女版《壮志凌云》夸克| 奔跑吧玫瑰韩剧国语版免费观看| 阿庆讲故事| 女律师替夫还债50万电影叫什么| 抖音奇妙派对| 我的世界电影在线观看免费| xl司令第一季无马赛免费观看高清 | 绅探电视剧免费高清完整版| 《霜花店》| gae枯萎之花上的眼泪| 《高压监狱3》伦理| 一脸嫌弃的表情给你看胖次| 精武陈真全集| 明日香クレア| 我的爱宥丽| 血洗金三角| 【中文字幕】IPX668新任女教师中出笼城轮姦 白峰美羽 - 色网 | 电视剧如果奔跑是我的人生免费观看| 电影《战狼6》国语高清| 湘北vs山王| 小花猫儿歌喵喵叫| 借种之灭门| 一起愁愁30集全免费| 阿凡达3免费完整观看| 国风推拿院在线观看| 小蜜桃在线| 皇家奶娘视频大全| 司藤电视剧免费观看全集| 古墓丽影法国版女版在线观看 | 向井蓝之特殊治疗医护最新消息| 爱情的牙齿在线观看| 农场保卫战满天星版| 鱼跃在冬季国语| 《四大美人之杨玉环》| 扇娘百度影音| 很黄的叫床口述| 阿远食味| 浪漫女家教台剧在线播放| 八零弃少:重生搞钱宠媳妇全集免费 | 《俘虏之锁》第一集| 不惑之旅电视剧在线观看免费完整版 | 孤零飘落燕在线观看| 熊出没之重返地球免费观看完整版| 甜心医生泰剧在线观看| 猛男受被CAO哭极限扩张SM| 粉红大白菜完整版免费版电影| 即兴爵士韩剧| 漫步云端国语版| 妈妈的职业在线全集免费观看| 凌云壮志(法国)满天星电影免费观看 | 电影《需要爸爸播种子》2| 圣域传说| 壮志凌云女版美国满天星| 电视剧井冈山36集播放免费完整版| 19岁大学生免费观看电视剧详情| 电视剧孤舟免费观看全集高清| 性的暴行在线观看| 突然的喜欢在线观看免费完整版| 《渔夫的荒野史记》在线观看完整版| 印度一头野猪大闹超市| 日历女孩在线版完整免费观看中文| 全力以赴的行动派综艺免费观看| 情难自禁 2024 代高政| 电影美乃雀主演在线观看| 《这就是我》| 小凤新婚完整版免费看| 铁马骝2之街头杀手| 出差遇到渣男前任| 婚巢电视剧在线观看| 黑白配美国版在线播放| 霜花店免费观看完整版视频| 小少女性启蒙的电影有哪些| 英雄虎胆免费完整版| 《越南被俘女兵》| 魔弹战记| 酒店1-60集全集免费| 戏梦巴黎百度影音| 高清恩爱的盗贼大人未删减| 《一个真正的女人》| 老电影武打片| 伦理《法国护士长》在线播放| 不知火舞manhua| 火线三兄弟电视剧| 一个人免费看的高清电影在线观看| 俺去也资源站| 天美影院免费看高清电视剧| 少女爱上姐姐明亮的三颗星| 手足兄弟短剧| 想要爸爸播种手机播放美国电影| 白月光电视剧在线观看完整版免费| 狼狈电影完整版| 溢出overlove第一季全集免费观看| 东方侠客免费观看全集| 《品味人生》在线观看完整版高清| 李茂换太子免费观看| 我与婶婶| 正在播放:#刘亦菲 情欲少妇与隔壁大爷的往年恋 - 17 | 冷箭电视剧| 晚娘百度影音完整版| 电影爱我几何莫妮卡免费观看高清播放| 《窃欲无罪》电影| 爱情公寓3第21集| 最新泰剧大全| 肥猫寻亲记| 《维修工》王李丹妮电影| 非常90后在线观看| 大山深处110| 美人心计第二部| 香烟爱上火柴广场舞| 木下凛凛子电影免费观看中文版2024| 临时保姆免费观看| 那些年我们一起追过的女孩电影| 聊斋之月宫宝盒电影| 电视剧《青盲》免费观看| 369你懂的视频| 接北京救灾牺牲烈士冯振回家| 超兽武装大结局| 月上重火免费观看全集完整版高清 | 不要忘记我| 红娘子49| 高清遇见世界未删减| 若是如此在线全集免费观看| 爱是一场在劫难逃短剧免费观看| 学生的妈妈中字ID5| 减肥工具| 呆佬贺寿粤语| 鸿雁简谱| 蓝色隐形帽子在线| 高清《星汉灿烂》全集免费看| 法国空乘11完整版在线看| 西瓜烂了是什么梗| 女战士满天星免费观看完整版 | 高清《名欲场》结局| 魔力宝贝监狱| 《偷窥》电影| 圣贤教育改变命运全集下载| 理发店里的特殊待遇电影| 意外国语| 进口媳妇在线观看免费西瓜| 福星高照猪八戒插曲| 美丽樱桃完整在线观看| 偷窥侯爷粗壮冲刺顶弄H视频 | 釜山行2半岛在线观看完整版| 漂亮的小姨韩剧免费观看完整版电视剧 | 钟表馆事件电视剧| 溧阳市| 伦理《法国护士长》2006免费在线观看 | 起飞英文| 临猗县| 巜性刑房3捆绑凌虐免费在线观看 战狼6免费观看在线播放完整版视频软件下载 | 中国百强名镇| 街角凶宅| 上司的要求免费观看正版电视剧自由| 新红楼梦主题曲| 《神探狄仁杰2》电视剧| 杰西简的电影在线播放| 秘密日记电影在线完整观看| 罚罪电视剧在线观看完整版| 银河奥特曼s免费观看| 日韩私人游泳馆| 献鱼电视剧1-46集免费观看| 禁忌3美国| 三年成全免费完整观看| 有歌2024| 《爱丈夫更深爱着公》主演| 肉蒲团观看| 年轻漂亮小在线观看| 金瓶梅电影电视剧全集电视剧在线看免费| 超科学的电磁炮| 替夫还债中文电影版在线观看| 长歌行超前点播资源| 蛛丝马迹| 《替夫还债》高清完整版| 危机公关电视剧| 墨雨云间电视剧免费高清观看| 理伦三级我的女朋友妈妈三| 明日战记电影免费观看完整版| 酒店免费高清在线观看| 年轻的嫂子5在线观看| 壮志凌云法国版满天星完整版| 高清亲爱的,别!未删减| 美姊妹牙医电影免费观看高清 | 大乳房少婦按摩電影| 潜龙行动全集高清版| 漂亮娇妻被社长驯服| 一路向西 主演| 原千岁电影在线观看免费| 高清《惊变》谍战电视剧| 丰满的大胸继拇3| 浴火女凰免费观看完整版| 美丽小蜜蜂10| 高清《绝密卧底》在线观看| 你安全吗一共多少集| 李丽珍在线电影全集免费观看| 四个愿望| 阿凡达在线看| 黑帮大佬爱上我第二集完整版| 人蛇大战百度影音| 动感妖精| 罗曼史高清免费完整版| 晓庄秘史| 昼颜1993版电影完整版观看| 星辰变第6季在线观看完整版| 1—5集国语版免费普通话| 铁齿铜牙纪晓岚第1部免费观看| 温柔的背后吻戏| 女友妈妈韩字的ID| 鬼子来了在线观看| 英雄在线观看| 哇嘎全部免费观看| 李光耀观天下| 第一次4中国国语| 夏日福星粤语版| 魔咒女王| 监狱风云2国语| 《瑜伽的狂热》完整版在线观看| 高清《死侍3》在线观看| 泰版流星花园16集免费观看| 一起愁愁30集全集免费看| 尼古拉斯尼克贝| 风云之十里洋场| 狂飙全集免费完整| 罗丽-克星克莱尔《护士日记》 | 开门红扇子舞| 《教室爱欲》无删减韩国| 电影《金莲外传》免费观看全集| 电视剧当婆婆遇到妈妈免费观看| 电影湄公河行动| 《花与蛇·牙医》| 狄仁杰电影| 琉璃电视剧全集在线观看正版| 三国机密 电视剧| 美国禁忌式家庭结局10| 少年的你豆瓣| 大道朝天动漫在线观看全集免费播放| 众王驾到| 她来自胡志明市第二郡| 睛雅集免费观看完整版| 第一次亲密接触演员表| 高压监狱完整免费高清原声奔跑吧 | 刘老根第一部| 少年派2免费观看完整版第二季| 迷雾重重| 星座频道| 不安于室by卡比丘| 孙颖莎说对手的五环项链好看| 《维修师傅的艳遇HD》日本| 饥渴人妻出轨记(NPH)| 瓜达卢佩的玫瑰在线播放 | 吴健版农民伯伯2免费观看在哪里好看| 百色市| 沦为性玩物的S大校花男友森小说| 最后的维京人| 电影《姐妹牙医》正片| 赵奕欢上位电影全集| 聊斋艳谭之鸳鸯戏床| 姐妹牙医1986| 年轻的母亲6高清版免费观看完整 七日生电视剧全集免费播放 | 铁拳第一季| 兰若寺电影| 电影《需要爸爸播种子》HD中字在线观看,高清完整版美国倫理片_努努影院 | 安吉拉·怀特全集在线播放| 说出你的秘密| 欧美金银1-5美国普通话版| 机械师2:复活 电影天堂| 团鬼六全集系列电影在线观看| 铿铿铿锵免费观看| 新闻女王电视剧在线观看| 西城男孩经典歌曲| 唐老鸭和米老鼠全集| 公的浮之手中字40| 杨玉环是什么星座| 宴遇长安| 子夜归在线观看| 睫毛膏5美国1983中文 | 勿扰警告| 男女一起愁愁愁免费网站| 快乐星球第五部| 柴静女儿| 人猿泰山意大利hr版| 吸血鬼同盟动漫| 逆流而上的你免费观看完整版 | 半把剪刀| 地狱护士| 楚汉骄雄30集国语版高清免费观看| 真破血普通话免费看| 搞定岳父| 战狼9女版免费全集| 电视剧甄嬛传| 《乳房按摩》在线观看| 哈利波特5凤凰社普通话版在线观看| 仙逆第122集在线观看| 弹丸论破op| 妈妈爱上儿子同学在线| 著名养猪专家姚民仆逝世| 好事多磨19楼| 好日子全集在线播放| 需要爸爸种子电视剧在线观看| 爆笑热带雨林| 守法公民电影国语完整版免费观看| 凤山市| 爱我有几何完整版哪里看| 陆家嘴不雅照| 快播电影u影一族| 银瓶梅电视剧第5集电视剧| 男生女生一起愁愁愁电视剧观看| 土地公土地婆免费观看全集| 神龙斗士第二部| 《特别的酒店》免费观看中文版 | 康体水疗看在线完整版| 九歌电影| 凝固的爱 试戏现场| 名侦探柯南563| 麻生香织和黑人无删减版观看| 秘密花园韩国版| 日本战狼6正版免费| 一路芬芳| 捏橘子游戏| 超时空恋爱| 丁度巴拉斯《魔力镜子》| 蓝色隐形的帽子完整版| 华人城另类小说| 傻儿传奇45集| 魔唇劫无删减国语电视剧免费观看| 黑白潜行| 拳击手2满天星在线观看完整版| 超兴奋朋友的妈妈| 刑警兄弟粤语| 满天星电影在线播放| 小泽玛利亚 bt| 替夫还债完整版电影| 花样系鞋带| 百年孤独 电影| 人猿泰山1995免费观看完整版| 决战风铃渡全集| 杨三姐告状评剧全剧| 酒店1-80集全集免费| 大秦赋全集| 黑白配高清国语免费观看在线 | 王牌大贱谍2008| 正在播放销售的销售秘密3-在线观看- 最新热门电影电视剧-麻花影院 | 17种幻想电影在线完整观看免费 | 庆余年2每集平均9个广告| 数码暴龙| 朴妮唛28部电视剧在线观看| 韩剧风格| 少女2完整版在线观看| 游泳湿润无删减版在线观看| 小爸爸爱奇艺| 买房子的女销售2| 《楼上楼下》| 《重逢在雪落之前》短剧| 性解密之大妈| 无懈可击之美女如云结局| 我们的秘密免费观看全集| 终极蜘蛛侠毒液| 艳情电影邻居的阿姨| 赌圣周星驰国语高清| 《杰顿魔物娘》动漫在线看| u9免费看电影| 今夜无法入睡电影免费观看| 美少女战士中文版| 鹿鼎记陈小春版免费观看国语| 剑侠电视剧全集| 超级教师3免费版电视剧在| 侦探成旭第一部| 花的勇气ppt| 吐鲁番市| 需要爸爸播种电影免费观看| 小马宝莉新世代| 六月的日记| 低俗小说免费| 《偷天鉴宝》叶子楣在线| 孤岛飞鹰迅雷下载| 3d肉蒲团高清在线| 女战神:沙场归来宠家人短剧全集| 麦乐迪家庭矛盾在线观看完整免费高清原声满天星百 | 木下子檀檩子电影免费播放| 禁忌5:偷欢| 昆明动物园消失1天的猫现身| 代表建议严炒作网红儿童账号| 上司来我家做客完整版| 黑人巨吊 云播| 爸爸打电话叫叔叔来吃饭| 小卫西行记最新视频| 马大帅第一部| 人猿泰山真人版1995年在线 | 睫毛膏4| 女神宿舍的宿官君| 《情欲满载》在线观看| 爱我就别想太多免费播放电视剧高清| 伤痛的不止是一个| 黑白配高清国语免费观看在线 | 谈判专家2024在线观看| 新精武门粤语版| 《谍战深海之惊蛰》电视剧| 贵州山歌有哪些| 九一神雕侠侣| 蜜桃成熟时33d在线| 女超人的危机麦乐迪在线播放| 属猪2024年有大喜缠身| 青年医生演员表名单| 《束缚游戏》全集| 反黑路人甲粤语在线观看| 高清东北警察故事3未删减| 色即是空2015字幕| 军刺电视剧全集优酷| 按摩电影| 杨敏思版1-5集免费观看电视剧在线观 | 野花韩国视频在线观看免费高清| 苍月女战士H版成人版| 弹珠汽水猴子全集观看| 老湿解说| 奔跑吧13季小鬼王琳凯| 血与沙第一季| 上帝也疯狂1电影免费观看完整版| 铜铜铿锵锵将| 高清冰湖行动未删减| 夜半梳头电影在线完整版| melody在线电影免费观看| 儿子爱上妈妈| 高清《姐弟恋》动漫免费观看全集 | 星球大战原力释放| 跑男第二季在线观看| 卖房子的女销售3艺术片| 新世纪福音战士新剧场版 破| 杨敏电视剧全集免费| 黑暗骑士崛起| 四面佛电视剧免费观看| 永不灭的番号| 视频列表--天美 - 17| 魂断疯人院| 美容室.特除服务3| 和约情人| 加勒比女海盗成版人2在线| 男女一起愁愁愁免费观看全集高清完整 | 男女一起愁愁愁的视频| 琼瑶回应于正道歉| 动真格了!渤海打响“第一枪”| 玉女聊斋| 床伴逐个数| 《黄金瞳》在线观看| 妻子8免费完整高清电| 堀与宫村第二季免费版在线观看| 仓井空电影在线观看| ssis338最高の爱人沼在线完整| 战长沙片花| 无敌少侠 第四季未删减| 神木丽急诊待遇2电影完整版| 十万人出头天| 欧美fXXX性| 亲爱的柠檬精先生2| 《歼灭天际线》免费观看高清| 惊魂记电影| 小苹果原版mv| 男人和女人一起愁愁愁电视剧免费古装剧| 监狱不设防快播| 毛阿敏北京演唱会| 季雨倾城未删减| 做aj的电影大全免费观看英国| 老头一级片| 爱我的话给我回答歌词| 酒店1-5集全集免费| 父子全集| 金瓶梅在线高清观看无删减| 天将雄师 在线观看| 需要爸爸种子电影在线观看| 风向GO 第二季| 周楚楚 维多利亚一号| 女战狼6国语高清免费看| 游戏大作战泰剧在线未删减版 | 男孩爱上已婚妇女是哪部电影 | 情欲公寓| 微笑的闪士| 危机四伏在线观看免费观看完整版| 特殊的房产销售| 回不去的夜晚| 一起来看流星雨12| 双人调情按摩| 异界电影中文在线观看| 裸男 疯狂猜图| 人猿泰山1995版时长多少| 做aj的电视剧大全免费观古代| 汪苏泷哭的样子| 我们的秘密免费观看全集| 插曲的痛60全集| 《碟中谍5:神秘国度》| 你的爱我无力拒绝| 女律师替丈夫还钱电影免费观看| 相亲第一天就日了她| sprd-519| 《爱我几何》免费版| 玫瑰的故事电视剧免费看| 二十大后第四“虎”被撤职| 韩剧千次的吻全集| 插曲的痛免费观看高清版| 半兽人的魔法世界| 广州火车站售票时间| 电视连续剧爱| 古剑奇谭免费观看电视剧全集 | 《喋血双雄》在线观看| 黑衣人3国语高清| 明成皇后电视剧| 美女一脱到底| 日本电影免费入室打工者强奸女主人在线播放 | 挠痒痒脚心痒痒| 韩国老公的上司来家里| 角头大姐| 变形金刚3| 原千岁主演的电影在线观看播放| 金庸的籍贯| 遇见花香的那一刻| 外卖员的特殊待遇2在线播放| 金刚狼百度影音| 混血大学生精油按摩伦理在线| 郑少秋个人资料简介| 电视剧人生几度秋凉| 快播电影播放器官方下载| 爱人 韩国电影快播| 激战丛林在线观看完整版下载| 渴望城市电视剧| 沧元图58集完整版| 《社长夫人的美貌》擦的干净| 电影囧妈免费观看| 灵性少女外传之花子vs倔强驱魔师| 舒克和贝塔免费| 恐怖浴室| 游泳教练的特殊待遇电影| 《越南妹》免费观看| 选调生之家| 巜战狼6免费观看》日韩| 我的老公是卧底| 乒乓球女团决赛直播| 《高压监狱3》伦理| 光头强回家过年| 梦戏巴黎电影完整版高清在线观看| 导火线粤语| 电影《重生》2024| 双女任务电影免费观看完整版| 法国空乘2法版免费| 夜樱家的大作战| 与恶魔有约百科| 八角笼中王宝强在线观看免费| 安拉拉斋电影免费播放| 《不被疼爱上司的夫人》| 蛇舌电影完整版| 你微笑时很美全集| 神印王座免费动漫在线观看| 《壮志凌云》满天星在线| 修师傅艳遇电影| 刑侦12在线观看粤语版| 斗罗大陆免费观看在线| 养母电视剧| 全城大佬跪迎:傻婿觉醒短剧全集| 正在播放:美丽寡妇偿还债务,巨乳少女葵司献身还债 - 17 | 神印王座全集免费观看完整版| 漂亮的小瘦子3| 木下檀檩子伦理电影| 诡劫 电影| 善良的女儿| 站着再来一次48集全免费剧情介绍视频 | 女邻居竟是绝色护士| 男子发明喂鸡神器 网友:费鸡头| 石之海免费观看全集| 澄城县| 《特别酒店》免费观看| 电影魔女2| 一中学8个体育老师5个是班主任| 尖峰时刻2国语版| 终极一班3土豆网| 《我的健身锻炼2》| 李诞吐槽甄子丹| 我和你的倾城时光电视剧| 杀人度假屋| 漂亮女朋友BD中文| 青青草在9线观看| 白雪公主在线观看免费完整版| 歼灭天际线1-50集91| 接北京救灾牺牲烈士冯振回家| 延禧攻略70集免费播放| 我在魔界当大佬| 新金银悔1一5普通话版剧情介绍| 无间电视剧免费观看| LISA疯马会舞蹈视频完整版| 最后的战士电视剧免费观看| 驯龙高手第一季| 需要爸爸的种子免费观看电视剧意大 | 花与蛇牙医电影完整版| 更衣人偶坠入爱河番剧| 七夜怪谈电影| 簧片电影| 《爱我几何》电影免费| 卖房子的女销售3无遮挡| 神秘缔造者| 恶作剧之吻1下载| 电视剧叛逆者全集免费播放| 性解密| 花蝴蝶4电视剧在线播放免费观看| 斗龙战士2星龙圣域| 上海电视台节目预告| 美女黑人大炮在线观看| 电影 普罗米修斯| 一次邂逅| 奔跑吧兄弟最新一季2024| 正在播放: ROE-417 在见证女儿幸福的同时……却在婚礼宴席上,被女婿侵犯的母 | 堀与宫村第一季| 斗罗大陆170| 疯狂动物城完整版中文| 《玉女心经3之阴阳和合》免费舒淇 | 老板的女儿满天星版叫什么名字| 意大利电影《美丽教师》主演| 一夜激情| 男子在高铁站当女儿面殴打妻子| 麻生香《黑色的眼泪》在线观看 | 义姐是不良妈妈免费观看| 我可以稍微放进你里面吗校园版| 大清徽商| 曹查理电影全部免费观看| 夫人夜在线观看| 不忠电影在线观看免费完整观看| 偿还债务的麦子完整版| 郎眼财经2013最新| 《XL司令》第一季免费观看| 人活着真累| 高清《贝尔法斯特天堂路》电视剧| 跨界冰雪王| 向前生活第七季免费观看高清| 《女学生的滋味》菲律宾| 50岁寡妇下面水多好紧| 澳门风云1| 公与3个媳HD播放| 混乱武林3谁与争锋| 爱的释放电影完整版在线观看| 《狙击精英巅峰对决》电影| 空乘法国4| 极速影视三个女人精油按摩| 金瓶艳史在线| 息县县委书记金平去向| 《甜美姐姐动漫在线观看》| 莫妮卡《爱我几何》未简版电影免费 | 电视剧末路1997免费观看完整版| 双胞胎美女| 美国美式保罗2| 别叫我情圣在线观看| 米奇电影| 第二十二条婚规35| 一起愁愁免费观看高清| 霹雳娇娃百度影音| 海贼王480| 警花张津瑜头撞玻璃| 阿黛尔艾克满天星| 玫瑰故事电视剧免费观看全集| 干露露廖凡| 我要爸爸种子美国电影完整版| 高清《初入职场·金融季》| 原始人电影免费完整版观看| 赖汉的幸福生活| 我和保姆的色情片| 不完美小初恋| 凶兆2006| 案发现场3| 双人调情按摩伦理片| 乌龙小子动画片全集| 僵尸道长2全集| 向流星许愿的我们电视剧| 夫妻俩一起按摩精油推拿电影 | 嘉庆王朝56集免费观看电视剧| 日本动漫《花嫁高柳家》完整版| 秘密身份短剧全集| 湄公河行动在线观看| 美丽小蜜桃2免费观看完整版全集| 无欲不爱在线观看| 《刚结婚陪部长出差的日子》 | 新生在线观看| 大江大河第二部全集免费观看西瓜| 金瓶梅2百度影音| 寂寞电影| 小小影院《法国少女农埸| 美姐妹牙医在线播放| 瑜珈教程| 罗密欧与朱丽叶电影| 人猿泰山h| 千指大人| 爱你几何免费观看完整版 | 被誉为乡土文学之父的是 | 大兵寝室在线看| 新撰组异闻录 铁| 请回答1988第19集| 满天星女版《壮志凌云》电影 | 古董局中局第一部免费观看| 我的女友是机器人在线| xl司令免费高清全集| 百日蔷薇动漫版| 上门女婿完整版高清免费全集| 小柔的性放荡羞辱日记动漫| (女学生的滋味)HD| 晓庄秘史| 广州安琪儿个人资料| 双枪李向阳 电视剧| 原始森林电影| 甜蜜惩罚全集| 朱莉安妮监狱| 厨缘电视剧| 马大帅2在线观看免费完整版高清| 婚姻时差电视剧全集| hodv-21134| 死亡笔记| 卢旺达的玫瑰在线| 电影销魂玉| 金南佶美人图| 咖啡屋 韩剧| 三年中国在线中文免费| 金牌师姐| 电视剧《青盲》免费观看| 三基培训网| 哇嘎电影高清完整视| 天注定 字幕| 危情在线播放| 方子传电影免费观看全集在线播放 | snis-531| 萌学园之萌骑士传奇全集| 向涟苍生献上纯洁动漫完整版| 《艳色》台湾无删减| 私人家教1983版电影免费观看| jufd697佐佐木明希在线| 《那山那海》今晚开播| 英语老师不戴罩子让我捏一节课的| 新女附马| 《天海翼商务旅行》电影在线观看| 美国空乘2019电影完整免费高清原声奔跑吧中文字幕 | 爱的色放完整版下载| 免费看爱我几何| 猪哥亮爆笑剧| 理想之城在线观看免费完整版| 33d蜜桃成熟时| 白峰在线观看| 女子护卫队1973| 野花高清在线观看免费完整版 | 暴躁少女视频免费观看电视剧| 变脸的原理| 俄罗斯美女学院第一季完整版 | 俄罗斯卖车子销售和老板电影| 被最想拥抱的人拥抱了第一季樱花| 东北插班生免费观看全集| 姐姐妹妹闯北京| 歼灭天际1-40集免费观看西瓜视频| 爸爸需要你的种子| 完美搭档电影| 夏家三千金电视剧全集免费| 海贼王红发歌姬在线观看完整版免费| 《女兵俘虏营》越南版在线观看完整| 《特殊的保险推销员》| 猫和老鼠河南方言版全集高清| 敖婿电视剧免费观看| 波野结衣qvod| 《办公室的故事》| 亢奋第二季未删减|