《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Nucleus PLUS自旋鎖測試方法研究
Nucleus PLUS自旋鎖測試方法研究
2018年電子技術應用第1期
李亞爽,姬希娜,王 振,何 濤
許繼電氣股份有限公司,河南 許昌461000
摘要: Nucleus PLUS是新一代的嵌入式實時多任務操作系統內核。在多核操作系統環境下,同一時刻多任務同時訪問內核,自旋鎖可以很好地處理不同處理器之間存在的同步與互斥問題,但自旋鎖如果使用不當,極易產生死鎖,造成應用層功能無法實現,所以很有必要對自旋鎖展開重點測試。通過對自旋鎖機制的研究,提供了一種針對自旋鎖的測試方法,避免自旋鎖在使用中產生死鎖。
中圖分類號: TN711.1;TP316.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.172506
中文引用格式: 李亞爽,姬希娜,王振,等. Nucleus PLUS自旋鎖測試方法研究[J].電子技術應用,2018,44(1):37-40.
英文引用格式: Li Yashuang,Ji Xina,Wang Zhen,et al. Study on spin lock test in Nucleus PLUS[J]. Application of Electronic Technique,2018,44(1):37-40.

Study on spin lock test in Nucleus PLUS
Li Yashuang,Ji Xina,Wang Zhen,He Tao
XJ Electric Co..ltd,Xuchang 461000,China
Abstract: Nucleus PLUS is a new generation of embedded real-time multitasking operating system kernel.In the multi-core operating system environment,multiple tasks simultaneously access the kernel at the same time,and the spin lock can handle the synchronization and mutual exclusion that exist between different processors. However, if the spin lock is used improperly, that can easily cause a deadlock,and the application layer function can not be realized. So the spin lock test is very necessary. Through the study of the spin lock mechanism,this paper provides a test method for the spin lock to avoid the spin lock in the use of deadlock.
Key words : Nucleus PLUS;spin lock;deadlock;test method

0 引言

    Nucleus PLUS是美國源代碼操作系統商品ATI公司推出的新一代搶先式多任務嵌入式操作系統,具有高移植性,并能夠支持大多數類型的處理器[1]。對稱多處理器是指一個計算機上有多個處理器,各處理器共享內存子系統以及總線結構[2]。與傳統操作系統不同的是,嵌入式操作系統對系統響應時間的實時性要求非常高。在對稱多處理器環境下,同步、互斥、中斷都非常重要,為解決資源的競爭、共享問題,提出了典型自旋鎖等機制來保證同步問題。

    在電力設備產品中使用的操作系統大多是Nucleus嵌入式操作系統,在產品運行過程中出現過產品死鎖現象,經過問題查找發現是自旋鎖的使用不當造成的死鎖。因此針對自旋鎖的使用展開了重點測試。

    通過詳細分析自旋鎖代碼及實現機制,對自旋鎖如何進行測試提供了詳細的測試思路及測試方法

1 Nucleus PLUS內核簡介

    Nucleus PLUS內核是操作系統的核心,主要負責管理實時任務之間的競爭運行、系統內存的分配以及如何回收等,同時對外部事件必須保持快速響應,以實現其實時性,保證系統的性能和穩定性。Nucleus PLUS的系統結構如圖1所示。

qrs2-t1.gif

    線程控制部件用來管理實時任務和高級中斷服務的執行,它是Nucleus嵌入式實時操作系統最核心的部分。在系統任務控制方面,根據優先級及時間片共享處理器。通過任務之間的同步和互斥來選擇不同的通信機制。內存機制采用了兩種方法:動態內存和分區內存。Nucleus PLUS將這些組件稱為軟件組件,并提供了很多系統調用方法。

2 Nucleus PLUS自旋鎖機制

2.1 自旋鎖簡介

    對于單處理器來說,防止中斷處理中的并發可簡單采用關閉中斷的方式,即在標志寄存器中關閉/打開中斷標志位,不需要自旋鎖。而對于多處理器環境下,為了解決同一時刻多任務同時訪問內核和其他資源,保證內核、進程及其他資源有秩序、正確地執行,引入新的一種鎖的機制,即“自旋鎖”。自旋鎖是專為防止多處理器并發而引入的一種鎖,它在內核中大量應用于中斷處理,以及解決多處理器環境下不同處理器之間存在的同步與互斥問題。

2.2 自旋鎖與信號量對比

    自旋鎖和信號量都是解決互斥問題的基本手段,屬于不同層次的互斥手段。自旋鎖與信號量相似,都用于互斥訪問臨界資源,但是自旋鎖不會引起調用者睡眠,不需要進入等待隊列。如果自旋鎖已經被別的任務所持有,調用者就一直循環檢測直至自旋鎖的持有者釋放該自旋鎖,節省了任務從睡眠狀態到喚醒之間內核會產生的消耗,在加鎖時間短暫的情況下會大大提高處理器的使用效率。表1列出了兩者之間的不同點。

qrs2-b1.gif

    自旋鎖在使用中,無論自旋鎖還是信號量,任何時刻最多只能有一個持有者。自旋鎖提供的是一種低開銷加鎖選擇,避免了信號量中任務阻塞或喚醒時任務情景切換而產生的開銷,更適用于中斷服務處理和任務之間共享同一資源的情況。

3 Nucleus PLUS自旋鎖測試

3.1 測試環境

    測試環境由PC、仿真器、目標系統組成。測試環境構成如圖2所示。

qrs2-t2.gif

    編程環境采用Sourcery CodeBench集成開發環境,將編譯好的目標文件通過TFTP方式下載到目標機上。PC通過網口或者串口與仿真器連接,實現與目標板卡之間的通信及監測數據。仿真器與目標機通過JTAG接口連接,目標板卡采用雙核ARM9處理器。

    測試驅動在整個測試過程中很關鍵,經過對自旋鎖機制深刻研究,編寫出用于控制測試用例執行的驅動程序,如圖3所示。

qrs2-t3.gif

    驅動程序主要包含:測試用例數據結構設計,如何調用自旋鎖相關代碼的接口,返回自旋鎖相關函數的返回值,各種全局變量信息以及輸出信息數據結構的打印。測試用例數據結構設計的好壞將直接影響測試用例的執行效率。輸出的數據結構信息可以在用例執行過程中實時觀察數據變化信息,幫助記錄任務執行某個運行節點下的內核對象狀態,便于監測測試結果的正確性,從而快速地對問題進行準確定位及回歸測試。

3.2 測試思路

    在Nucleus PLUS中,自旋鎖是一個互斥設備,只有加鎖和解鎖兩個狀態。任務或中斷處理程序請求自旋鎖時,如果該鎖為解鎖狀態,則嘗試將該自旋鎖置為加鎖狀態,如果加鎖成功,代碼繼續進入臨界區。如果該鎖為加鎖狀態,則代碼進入忙循環,此狀態不是休眠,并重復檢查這個鎖,直到該鎖可用為止。即使多個任務在某時間內自旋,也只有一個任務能夠獲取該鎖[3]

    在設計測試用例時,主要就是如何設計任務和中斷之間在不同優先級、不同時間段申請和釋放自旋鎖。下面設計了幾種綜合的用例場景,要注意任務、中斷在不同的執行順序下結果是不同的。

    (1)用例場景1:當多任務同時申請自旋鎖,無中斷任務申請自旋鎖情況下,每個任務執行順序如圖4所示。這種情況下在任務1申請自旋鎖成功后可重復申請此自旋鎖,也只有在任務1重復釋放此自旋鎖后,其他任務才可以申請自旋鎖成功。

qrs2-t4.gif

    (2)用例場景2:當任務采用試探性try方式申請自旋鎖,并且此自旋鎖處于加鎖狀態,那么任務不再忙等。執行過程如圖5所示。

qrs2-t5.gif

    當任務采用可被中斷方式申請自旋鎖時,根據任務和中斷是否在同一個處理器上,所產生的結果是不同的。

    (3)用例場景3:當任務和中斷在不同CPU上,采用可被中斷方式申請自旋鎖時,中斷申請自旋鎖成功。如圖6所示。

qrs2-t6.gif

    (4)用例場景4:當任務和中斷在同一CPU上,采用可被中斷方式申請自旋鎖時,由于任務無法釋放自旋鎖,中斷一直忙等,最終產生死鎖現象。如圖7所示。

qrs2-t7.gif

    當任務采用“關中斷”方式申請自旋鎖時,就會在申請自旋鎖前先把中斷關閉,不會產生死鎖現象。

    對自旋鎖的測試可以按照這種用例設計場景的方式,將自旋鎖的所有函數的正常、異常及邊界功能測試完整。

3.3 測試用例設計

    整個測試過程采用單元測試、集成測試相結合的方法進行,采用最常用的等價類劃分、邊界值等方法對自旋鎖進行白盒測試。隨著自旋鎖的創建、申請、釋放、刪除等操作的發生,自旋鎖的狀態也在不斷變化。也可采用有限狀態機對自旋鎖建立模型,提取路徑設計用例,充分地對自旋鎖的實現機制進行測試。同時也要對接口的一些異常輸入或者邊界環境條件下能保持正常工作的情況進行測試,從而保證對接口能夠進行全面化的測試。

    在設計測試用例過程中,首先要設計正常功能的測試用例,然后設計異常測試用例,觀察函數內部是否進行了異常判斷,最后集成幾個接口配合進行整體功能測試,檢查接口之間的相互操作是否正確。下面列出對自旋鎖相關接口設計的測試用例。

    (1)自旋鎖創建及刪除接口。

    正常創建自旋鎖,創建一個已經創建的自旋鎖,異常創建。

    (2)自旋鎖申請及釋放接口。

    分多種用例場景進行測試,主要考慮表2所示幾個方面。

qrs2-b2.gif

    (3)自旋鎖“關中斷”方式申請、釋放與自旋鎖的申請、釋放功能類似,測試過程中除了要把功能相似的用例執行一遍,還要把功能不同點重點測試。不同之處表現在以下幾點:

    ①在獲取鎖之前關中斷,釋放鎖后將中斷狀態恢復至原來狀態。

    ②不支持同一任務多次加鎖同一個鎖。

    ③線程在被自旋鎖保護的臨界區不會被打斷,避免了死鎖。

    (4)試探性自旋鎖的申請、釋放與自旋鎖不同的是,申請加鎖時如果鎖的狀態時是“加鎖”,則不再忙等。

    (5)“關中斷”試探性自旋鎖的申請、釋放與試探性自旋鎖不同的是,申請鎖時會保存中斷狀態,如果請求失敗,會恢復原來的中斷狀態。

    (6)返回自旋鎖創建個數函數、自旋鎖信息函數、返回自旋鎖指針函數:

    ①創建多個自旋鎖,查看返回自旋鎖個數、自旋鎖的信息及自旋鎖指針的正確性。

    ②刪除某個自旋鎖后,查看返回自旋鎖個數、自旋鎖的信息及自旋鎖指針的正確性。

    ③創建0個自旋鎖、無效自旋鎖等異常測試用例設計。

3.4 自旋鎖測試效果

    使用上述測試策略對自旋鎖所有接口函數進行了白盒測試,測試效果很顯著,不僅對自旋鎖的基本功能進行了驗證,還對異常、死鎖情況進行分析,實現了功能、代碼語句全覆蓋。

    測試過程中也發現一些問題,以及某些接口在使用過程需要注意的事項,避免因使用不當產生死鎖等問題,造成應用平臺功能不可用。下面列出了幾條自旋鎖使用中的注意事項。

    (1)自旋鎖申請、釋放函數接口的使用是不安全的,容易導致死鎖[3]。由于這個接口在使用時是不關閉中斷,使用時應注意以下幾點:使用自旋鎖進行同步的多個任務不要綁定到一個處理器上,臨界區盡可能小,臨界區不要睡眠,任務的優先級不宜有差別。

    (2)使用關中斷的自旋鎖在釋放時,傳入的中斷狀態應設置為申請自旋鎖之前的中斷狀態,而不應簡單通過傳入0值去開中斷。否則在嵌套使用自旋鎖時會導致死鎖。申請自旋鎖時,關中斷僅僅關閉了本處理器的中斷,另一個處理器上的中斷仍然產生。

    (3)試探性方式申請自旋鎖時,應根據返回值來做相應的處理。當返回值為此自旋鎖已被占用時,不能訪問被保護的臨界資源。

4 結論

    本文重點研究了在Nucleus PLUS對稱多處理機嵌入式操作系統的環境下,運用多種測試方法設計全面測試用例,對自旋鎖組件進行白盒測試。在測試過程中發現了在何種情況下自旋鎖會發生死鎖現象,同時詳細介紹了自旋鎖組件在使用過程中的注意事項。整體測試效果良好,對操作系統其他組件的測試有著較高的借鑒價值。

參考文獻

[1] 魏振華.嵌入式實時操作系統Nucleus中線程控制部件的實現方法[J].計算機應用研究,2003(4):97-100.

[2] 彭正文.基于SMP的Linux內核自旋鎖分析[J].江西教育學院學報(綜合),2005,26(3):23-28.

[3] 張文盛.一種Linux內核自旋鎖死鎖監測機制的設計與實現[J].合肥學院學報,2012,22(2):31-35.

[4] 徐宇柘.Nucleus實時操作系統在繼電保護系統中的實時性研究[J].電腦知識與技術,2007(13):3-5.

[5] 吳雨俊.實時操作系統Nucleus的中斷處理機制研究[J].福建電腦,2012(3):95-96.

[6] 王繼剛.嵌入式操作系統異常處理框架設計與實現[J].電子技術應用,2017,43(5):60-63,66.

[7] 李建軍.國產化嵌入式操作系統軟件測試方法研究[J].微型機與應用,2016(24):22-24.

此內容為AET網站原創,未經授權禁止轉載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          欧美日韩国产亚洲一区| 欧美日韩另类综合| 免费日韩av片| 老妇喷水一区二区三区| 欧美日韩视频一区二区三区| 黄色av日韩| 亚洲一区网站| 国产精品成人观看视频免费| 夜夜嗨网站十八久久| 久久本道综合色狠狠五月| 欧美激情偷拍| 国产亚洲成人一区| 国产精品多人| 乱人伦精品视频在线观看| 亚洲天堂激情| 久久综合九色| 亚洲人www| 久久久久久久波多野高潮日日| 欧美色图首页| 香蕉久久国产| 夜夜嗨一区二区| 午夜国产精品视频| 亚洲一区二区三区高清不卡| 国产在线视频欧美一区二区三区| 国产精品免费在线| 亚洲区一区二| 精品成人免费| 国模精品娜娜一二三区| 亚洲综合国产| 在线视频一区观看| 国产自产精品| 欧美精品综合| 欧美~级网站不卡| 免费看黄裸体一级大秀欧美| 在线亚洲一区| 在线亚洲观看| 国产精品日韩精品欧美精品| 99一区二区| 99国产精品久久久久久久| 在线观看一区视频| 在线观看成人一级片| 国产精品国产三级国产专区53| 蜜桃视频一区| 欧美在线视频二区| 欧美欧美全黄| 国产精品magnet| 欧美人成网站| 好吊色欧美一区二区三区视频| 欧美极品一区二区三区| 午夜久久福利| 黄色成人精品网站| 亚洲激情社区| 国产伦精品一区二区三区视频孕妇 | 国产亚洲永久域名| 久久riav二区三区| 正在播放亚洲| 中文久久精品| 中文日韩在线| 久久久久久婷| 欧美精品亚洲| 精品福利av| 国产日韩一区二区三区在线播放| 国产精品视频久久一区| 久久一日本道色综合久久| 欧美不卡在线| 亚洲精品在线视频观看| 香蕉亚洲视频| 欧美视频久久| 国产精品美女久久久浪潮软件| 美女日韩在线中文字幕| 国一区二区在线观看| 在线综合视频| 国产精品大片免费观看| 国产精品久久久一区二区| 欧美黄色一区| 国产一区二区精品| 国内精品99| 亚洲永久网站| 亚洲高清在线观看一区| 久久国产毛片| 一区二区精品| 国产综合网站| 亚洲欧美日韩国产综合精品二区 | 国产精品美女久久久浪潮软件| 中日韩男男gay无套| 亚洲一区二区精品在线观看| 伊人久久大香线蕉av超碰演员| 伊人蜜桃色噜噜激情综合| 国产伦精品一区二区| 亚洲日本黄色| 99热免费精品在线观看| 亚洲欧美日韩一区在线观看| 精品91视频| 亚洲黄色一区| 欧美日韩福利| 国产精品亚洲综合久久| 亚洲三级观看| 国产一区高清视频| 国产婷婷精品| 欧美私人啪啪vps| 欧美日韩视频在线一区二区观看视频| 国产精品久久7| 亚洲黄色影片| 影音先锋亚洲一区| 国产农村妇女毛片精品久久莱园子| 欧美激情第二页| 国产欧美成人| 99视频+国产日韩欧美| 香蕉av777xxx色综合一区| 国产日韩一区二区三区在线| 老司机久久99久久精品播放免费| 亚洲高清免费| 在线精品福利| 久久一区视频| 久久久久.com| 韩国久久久久| 国内不卡一区二区三区| 一本色道久久综合亚洲二区三区| 日韩亚洲欧美精品| 亚洲日本激情| 蜜桃av综合| 99香蕉国产精品偷在线观看| 欧美日本精品| 久久一区激情| 亚洲欧美日韩国产综合精品二区| 亚洲免费高清| 国产视频在线观看一区 | 欧美激情第8页| 老鸭窝亚洲一区二区三区| 亚洲黄页一区| 国产精品永久| 国产欧美一区二区三区另类精品| 久久综合亚州| 欧美日韩亚洲在线| 亚洲成人直播| 午夜天堂精品久久久久| 新67194成人永久网站| 国产精品久久777777毛茸茸| 在线亚洲观看| 亚洲激精日韩激精欧美精品| 久久久噜噜噜| 国产精品国产三级欧美二区 | 韩国自拍一区| 伊人久久婷婷| 国产亚洲精品v| 免费不卡亚洲欧美| 欧美日本精品| 亚洲国产一区二区三区a毛片| 一本色道久久综合一区 | 国产伦精品一区二区三区照片91 | 国产精品久久久一区二区| 欧美一区二区三区四区夜夜大片| 一本色道88久久加勒比精品| 一区在线免费观看| 久久精品中文| 欧美日韩综合另类| 亚洲手机视频| 亚洲精品在线视频观看| 欧美日本免费| 午夜综合激情| 欧美精品一区三区在线观看| 国产精品分类| 国产伦精品一区二区三区视频黑人| 欧美不卡在线| 日韩午夜免费视频| 国产亚洲欧洲| 国产欧美91| 香蕉精品999视频一区二区 | 一区二区国产精品| 欧美在线3区| 欧美日韩国产综合在线| 狠狠色狠狠色综合人人| 翔田千里一区二区| 国产精品日韩欧美一区二区| 欧美黄色免费| 欧美色图麻豆| 亚洲精品自在在线观看| 亚洲精品裸体| 欧美日韩一区二区视频在线观看| 欧美一区二区| 国产农村妇女毛片精品久久莱园子| 一区二区三区偷拍| 一本久道久久综合狠狠爱| 老司机久久99久久精品播放免费| 久久精品99| 亚洲精品婷婷| 欧美黄免费看| 欧美激情视频一区二区三区免费| 国产一区高清视频| 美女黄网久久| 免费在线一区二区| 国产亚洲高清视频| 亚洲日韩视频| 亚洲国产免费看| 在线免费观看一区二区三区| 一区二区三区四区五区精品| 狠狠色综合网| 国产偷自视频区视频一区二区| 欧美成人久久| 亚洲午夜精品一区二区| 在线观看欧美亚洲| 制服诱惑一区二区| 久久精品国产第一区二区三区最新章节| 国产精品www994| 国产乱人伦精品一区二区| 欧美日韩国产一区精品一区| 亚洲欧美日韩一区在线观看| 99成人免费视频| 伊人久久成人| 国产综合色产| 久久xxxx精品视频| 国产欧美三级| 韩日视频一区| 美日韩精品视频| 老司机精品导航| 香蕉av777xxx色综合一区| 国产午夜精品一区二区三区欧美 | 国产欧美一区二区三区另类精品 | 久久狠狠婷婷| 亚洲一级电影| 久久综合中文| 精品999网站| 欧美1区2区3区| 99av国产精品欲麻豆| 亚洲视频中文| 欧美日韩p片| 国产伦精品一区二区三区四区免费 | 亚洲欧美日韩国产一区| 欧美一区免费视频| 欧美国产视频在线观看| 蜜桃久久av| 欧美午夜精品| 亚洲美女毛片| 欧美精品亚洲精品| 国产精品日韩| 国内成+人亚洲| 亚洲一区网站| 激情亚洲网站| 国产欧美一级| 激情av一区| 欧美永久精品| 国产伦理一区| 99在线精品视频在线观看| 老司机精品福利视频| 亚洲欧美日韩专区| 亚洲久久一区| 99pao成人国产永久免费视频| 欧美女激情福利| 久久免费一区| 午夜精品av| 国产精品mv在线观看| 久久婷婷久久| 久久久久在线| 欧美日韩三级| 国内精品美女在线观看| 欧美日韩理论| 亚洲人成久久| 国产精品入口| 国产精品毛片一区二区三区| 国产欧美短视频| 蜜桃久久av| 黄色国产精品一区二区三区| 亚洲国产免费看| 国产日产高清欧美一区二区三区| 一本色道精品久久一区二区三区| 亚洲视频www| 欧美日韩在线观看一区二区三区| 激情久久婷婷| 久久久精品动漫| 亚洲激情网址| 欧美一区成人| 亚洲在线播放| 亚洲欧洲久久| 欧美激情日韩| 在线欧美视频| 亚洲欧美亚洲| 欧美xxx在线观看| 欧美在线综合| 国产欧美综合一区二区三区| 狠狠久久综合婷婷不卡| 久久aⅴ国产紧身牛仔裤| 国产美女一区| 国产在线日韩| 久久久久久9| 91久久国产综合久久蜜月精品| 亚洲免费综合| 欧美黄免费看| 久久久久久久欧美精品| 久久中文在线| 先锋影音久久| 欧美深夜福利| 欧美人与禽猛交乱配视频| 欧美在线国产| 一本久久知道综合久久| 欧美日韩一区在线视频| 欧美日韩18| 欧美日本韩国一区二区三区| 夜夜爽www精品| 羞羞答答国产精品www一本| 欧美日韩亚洲一区| 快she精品国产999| 欧美三级午夜理伦三级中文幕| aa级大片欧美三级| 欧美激情在线| 欧美成人一区二免费视频软件| 亚洲久久一区| 久久精品成人| 国产欧美日本在线| 久久激情一区| 一区在线播放| 一区二区不卡在线视频 午夜欧美不卡'| 国产一区自拍视频| 欧美69wwwcom| 欧美尤物一区| 欧美日韩国产探花| 亚洲激情成人| 国产午夜久久| 欧美日韩精品不卡| 9久re热视频在线精品| 免费在线欧美黄色| 亚洲精品在线观看免费| 国产一区亚洲| 亚洲综合精品| 免费欧美日韩| 影音先锋久久| 久久国产精品一区二区三区四区| 亚洲图片在线| 国产精品sm| 亚洲免费在线精品一区| 国产精品日韩高清| 欧美福利专区| 午夜精品亚洲| 韩国一区二区三区美女美女秀| 精品69视频一区二区三区Q| 亚洲一级电影| 欧美激情第8页| 欧美jjzz| 欧美日韩国产精品一区二区亚洲| 欧美另类综合| 中文精品视频一区二区在线观看| 久久www成人_看片免费不卡| 午夜视频一区| 亚洲人成网站在线观看播放| 午夜在线视频一区二区区别| 久久青青草综合| 欧美尤物一区| 韩国欧美一区| 午夜精品免费| 国产精品免费看| 欧美精品不卡| 久久精品人人做人人爽电影蜜月| 日韩亚洲精品在线| 一区在线电影| 中文日韩在线| 小嫩嫩精品导航| 欧美日韩网站| 久久综合九色综合久99| 久久久久久久久久久一区 | 在线亚洲观看| 亚洲美女黄网| 亚洲香蕉网站| 久久亚洲风情| 亚洲二区在线| 欧美视频在线观看| 久久久久久亚洲精品不卡4k岛国| 亚洲精品美女91| 亚洲全部视频| 18成人免费观看视频| 在线观看一区视频| 亚洲精品欧洲| 国产精品日韩高清| 性刺激综合网| 欧美激情一区二区三区在线视频| 亚洲欧美日韩国产一区| 国产一区二区三区免费不卡 | 久久av一区二区| 亚洲一区二区在线看| 国产乱码精品一区二区三区不卡| 亚洲国产精品毛片| 亚洲精品在线视频观看| 亚洲国产一区二区三区a毛片| 精品成人一区| 亚洲精品一区二区三| 亚洲欧美日韩国产| 欧美 日韩 国产一区二区在线视频| 巨乳诱惑日韩免费av| 精品电影一区| 久久激情网站| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久久久久久久久码影片| 美女精品网站| 在线观看一区欧美| 久久国产免费| 亚洲国产电影| 久久九九免费| 在线视频精品一区| 欧美三区不卡| 久久另类ts人妖一区二区| 在线视频观看日韩| 国产精品久久|