精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談Linux內(nèi)核的實時性優(yōu)化

系統(tǒng) Linux
ftrace是一個很強(qiáng)大的調(diào)試工具,除了常用的函數(shù)跟蹤器能讓我們輕松知道一個函數(shù)的執(zhí)行耗時之外,它強(qiáng)大的event機(jī)制,更是可以直接讓我們在驅(qū)動或者內(nèi)核中添加跟蹤點,輸出內(nèi)核執(zhí)行過程中的各類數(shù)據(jù),讓我們輕松洞察內(nèi)核的執(zhí)行過程。

1.實時系統(tǒng)的概念

1.1什么是實時操作系統(tǒng)

什么是實時操作系統(tǒng)?接觸過嵌入式的小伙伴可能會知道,實時操作系統(tǒng)是指在嵌入式領(lǐng)域廣泛應(yīng)用的各類RTOS(Real Time Operating System)。其中最具代表性的有國外的μC/OS-III、FreeRTOS、Vxworks等,國內(nèi)的代表有RT-Thread和LiteOS。

圖1:常見的實時操作系統(tǒng)

在這些眾多的RTOS系統(tǒng)里面既有開源的也有商業(yè)的,同時還有一些是行業(yè)專用的,比如enea公司推出的OSE系統(tǒng)就是通信行業(yè)早期的基站設(shè)備應(yīng)用比較廣泛的系統(tǒng)。無論是開源或是商業(yè),這類系統(tǒng)都有一個最顯著的特點,就是它們都具有很高的實時性。也是因為這個特點,它們都被集中應(yīng)用在了嵌入式領(lǐng)域,特別是工控領(lǐng)域,例如工業(yè)制造控制、導(dǎo)彈飛機(jī)導(dǎo)航、電力設(shè)備監(jiān)控等。歷史上有很多著名的航空航天設(shè)備都使用到了實時的操作系統(tǒng)。比如登陸火星的鳳凰號、好奇號火星探測器,它們所采用的操作系統(tǒng)就是美國WindRiver公司推出的Vxworks。那什么是系統(tǒng)的實時性呢?Linux系統(tǒng)在嵌入式領(lǐng)域也有大量使用,那Linux系統(tǒng)支不支持實時性呢?

1.2 Linux實時性、軟實時和硬實時

實時性指的是一個操作系統(tǒng)能夠在規(guī)定的時間點內(nèi)完成指定的任務(wù)操作,一旦超過這個時間點會對整個系統(tǒng)帶來不可估量的后果。與此相對的是一般操作系統(tǒng),它更注重用戶體驗,系統(tǒng)偶爾卡頓不會給用戶帶來災(zāi)難性后果。實時性反映了一個系統(tǒng)行為控制的精準(zhǔn)能力,具體體現(xiàn)在定時器的精準(zhǔn)度高,中斷響應(yīng)及時以及系統(tǒng)的行為固定且可預(yù)估等。

Linux系統(tǒng)最初是按照分時系統(tǒng)設(shè)計并推出的,再加上在歷史版本中使用的調(diào)度算法目的是公平的分配和使用各種系統(tǒng)資源,保證CPU被各個進(jìn)程公平的使用,所以早期并不支持實時性。但是在后來的2.6版本開始,加入了內(nèi)核搶占的功能,使它的實時性得到了提升,在某種程度上具備了軟實時的能力。軟實時指的是系統(tǒng)對于時限要求并不是十分的嚴(yán)格,在一些情況下允許系統(tǒng)超限完成。

舉個例子,我們在PC機(jī)上使用鼠標(biāo)操作,偶爾會出現(xiàn)卡頓延遲,這種情況除了讓我們抓狂影響使用體驗之外并不會給我們帶來嚴(yán)重的影響,大家平時在使用電腦時遇到鼠標(biāo)圖標(biāo)轉(zhuǎn)圈圈同時界面不響應(yīng)操作就是一個例子。再比如視頻信號采集,偶爾丟失幾個數(shù)據(jù)幀,并不會對視頻最后的播放帶來嚴(yán)重的畫面缺失。但是硬實時就不一樣,它對操作系統(tǒng)的行為有著嚴(yán)格的時限要求,超出時限往往會帶來災(zāi)難性后果。

比如在我們?nèi)粘I钪惺褂玫钠嚩寂鋫淞税踩珰饽遥囋诎l(fā)生激烈碰撞時可能會在0.2s內(nèi)停下,那就要求氣囊在0.02s內(nèi)充氣完畢并彈出,超出這個時間乘客可能就會面臨生命危險。再比如導(dǎo)彈防御系統(tǒng),當(dāng)敵方導(dǎo)彈來襲時攔截系統(tǒng)必須做出100%的精準(zhǔn)反應(yīng)并計算出彈道軌跡進(jìn)行攔截,稍有延遲就會造成攔截失敗,這種后果是不可接受的。這就是硬實時系統(tǒng)和軟實時系統(tǒng)的區(qū)別。但是由于Linux系統(tǒng)內(nèi)核過于龐大且模塊眾多,內(nèi)核中仍然有不少影響實時性的因素,比如使用大量自旋鎖、中斷禁止、時鐘粒度等,使其距離us級別的控制精度還有很大的距離。但是也不能因此認(rèn)定Linux系統(tǒng)今后就不能用于實時控制領(lǐng)域。

其實Linux內(nèi)核一路發(fā)展過來,在歷史的版本主線中仍然有很多技術(shù)公司或者大牛為了提升Linux系統(tǒng)的實時性而努力著,他們或是在某個版本上發(fā)布實時補丁,或是對內(nèi)核進(jìn)行一定程度上的改造,具體的代表有RTLinux、RTAI(Real-Time Application Interface)和Xenomai等。

RTLinux全稱叫做AReal-Time Linux,它由美國新墨西哥礦業(yè)及科技學(xué)院的V. Yodaiken開發(fā)。RTLinux采用了雙內(nèi)核的做法,可以說是開創(chuàng)了雙內(nèi)核法的先河。簡單理解就是系統(tǒng)中存在兩個內(nèi)核,實時核和非實時核。底層硬件資源和實時的內(nèi)核打交道繞開非實時核,來自硬件的中斷源由實時核全面接管,把非實時的Linux內(nèi)核當(dāng)成實時核上的一個低優(yōu)先級的進(jìn)程來運行,通過這種方式確保實時核上的中斷和任務(wù)得到優(yōu)先響應(yīng),提升了實時性。

Xenomai也借鑒了RTLinux的雙內(nèi)核做法,內(nèi)部也有實時核和非實時核。但不同的是Xenomai在底層硬件和兩個內(nèi)核之間還加了一層硬件抽象層ADEOS(Adoptive Domain Environment for Operating System),實時核和非實時核作為硬件抽象層的兩個域而存在,Xenomai內(nèi)核屬于實時域,Linux內(nèi)核屬于非實時域。ADEOS在系統(tǒng)的關(guān)鍵路徑中對中斷進(jìn)行攔截,優(yōu)先響應(yīng)Xenomai實時域的中斷,當(dāng)沒有實時任務(wù)和中斷需要處理的時候才會輪到Linux內(nèi)核執(zhí)行。兩者對比如下。

圖2:RTLinux和Xenomai框架對比

由于版權(quán)、技術(shù)專利等因素,RTLinux已經(jīng)不再更新。而Xenomai因為注重拓展性,可移植性和可維護(hù)性,對開發(fā)者相對友好,目前還在不斷推出補丁,并且在社區(qū)活躍度很高,在工控領(lǐng)域也有不少成功應(yīng)用的案例。這些基于Linux系統(tǒng)去改造從而提升實時性的系統(tǒng)的出現(xiàn),使得Linux系統(tǒng)在發(fā)展過程中在實時性的研究上熱度不減。甚至有不少人從Linux系統(tǒng)實時性研究入手,深入去學(xué)習(xí)Linux內(nèi)核的調(diào)度機(jī)制、中斷機(jī)制、定時器機(jī)制等,逐漸發(fā)展成自己的興趣和愛好。從我們作為普通技術(shù)族的實力來說,可能不具備像國外的公司或者一些技術(shù)組織大改并發(fā)布實時Linux的能力。而想要提升系統(tǒng)實時性,有的是出于自身工作的需要,有的則是帶著個人的興趣愛好去鉆研,那么如果想提升Linux內(nèi)核的實時性,我們該怎么做呢?

2.Linux實時性優(yōu)化

2.1 實時性優(yōu)化和時鐘精度

知其然并知其所以然,知道影響實時性的因素才能很好的優(yōu)化改造它。目前影響Linux內(nèi)核實時性因素主要有時鐘精度、系統(tǒng)中斷、進(jìn)程調(diào)度算法和內(nèi)核可搶占性等。每一塊都可以深入研究并做出相應(yīng)的優(yōu)化。首先是時鐘精度,時鐘就像是一個系統(tǒng)的脈搏,系統(tǒng)進(jìn)程的調(diào)度切換是按照時鐘節(jié)拍來進(jìn)行的。目前Linux內(nèi)核支持幾種不同的系統(tǒng)節(jié)拍,可以在用戶編譯內(nèi)核時配置。假設(shè)當(dāng)前的系統(tǒng)節(jié)拍是100Hz,那么系統(tǒng)的時鐘粒度就是10ms,如果提升到1000Hz,那么時鐘粒度就是1ms,精度提升了10倍。

圖3:編譯內(nèi)核系統(tǒng)節(jié)拍設(shè)置

上面這張圖是CentOS7.6發(fā)行版系統(tǒng)默認(rèn)的系統(tǒng)節(jié)拍設(shè)置。時鐘精度的提升最直接的影響就是系統(tǒng)中的調(diào)度動作加快了,進(jìn)程的響應(yīng)也更為及時,但隨著而來的是時鐘中斷頻率的加快,這也加大了系統(tǒng)的開銷和壓力,因為會頻繁的響應(yīng)系統(tǒng)的時鐘中斷。在某些CPU消耗型的進(jìn)程上會由于系統(tǒng)頻繁的進(jìn)行進(jìn)程切換而導(dǎo)致CPU資源浪費,CPU的時間會浪費在進(jìn)程切換上,因為從進(jìn)程切換到實際被調(diào)度執(zhí)行之間有一個時間差,叫做進(jìn)程切換開銷,所以好和壞我們還是需要根據(jù)自己的系統(tǒng)表現(xiàn)來看待。

2.2 中斷

其次是中斷。無論是RTOS還是Linux,硬件中斷在系統(tǒng)當(dāng)中的響應(yīng)優(yōu)先級永遠(yuǎn)是最高的。RTOS由于支持中斷優(yōu)先級,在實際使用過程中可以根據(jù)產(chǎn)品的實際情況針對不同的外設(shè)場景設(shè)置不同的優(yōu)先級,且高優(yōu)先級的中斷可以搶占低優(yōu)先級的中斷,使得RTOS的中斷響應(yīng)非常迅速。Linux系統(tǒng)中的中斷模塊遠(yuǎn)比RTOS系統(tǒng)復(fù)雜得多。

通常,Linux系統(tǒng)在進(jìn)入一個中斷時候,會禁止本地CPU的中斷。在處理具體某一個中斷的時候,由于禁止了本地CPU中斷(NMI類型的中斷除外),當(dāng)有新的中斷到來的時候只好掛起,只有當(dāng)前的中斷處理完才打開本地中斷并響應(yīng)新的中斷。如果系統(tǒng)中存在大量不同類型的中斷,勢必會有一些中斷被延遲得不到及時響應(yīng),這種延遲現(xiàn)象在單核CPU上表現(xiàn)尤為明顯。針對這種情況,就要求我們在編寫實際中斷處理函數(shù)的時候,盡量在中斷處理函數(shù)中不做復(fù)雜的操作,堅守中斷處理函數(shù)“快進(jìn)快出”的原則。比如只讀取硬件寄存器等簡單操作即可,剩下的數(shù)據(jù)處理的操作放到中斷下半部中去執(zhí)行,這就是所謂的“中斷線程化”。

傳統(tǒng)上的中斷下半部有軟中斷、tasklet、工作隊列,它們的優(yōu)先級也從高到低。軟中斷和tasklet工作在中斷上下文不允許休眠它的優(yōu)先級比工作隊列高,工作隊列工作在進(jìn)程上下文允許休眠但是優(yōu)先級最低,所以在實際編程開發(fā)中需要我們根據(jù)場景選擇性的使用。如果是多核CPU,那么可以根據(jù)實際的中斷情況把不同類型的中斷遷移綁定到不同的CPU上,避免不同中斷之間的干擾。下面以I.MX6DL硬件平臺為例子介紹中斷遷移的使用。首先,通過#cat /proc/interrupts指令查看系統(tǒng)的所有中斷,如下圖所示:

圖4:綁定中斷前的系統(tǒng)中斷分布

從上面圖中可以看出,當(dāng)前的硬件平臺一共有4顆CPU,其中IMX-uart和imx-i2c的中斷集中發(fā)生在CPU0和CPU3,從第一列可以知道它們的中斷號分別是58和69。接下來我們可以將IMX-uart中斷全部遷移到CPU1上,讓CPU0只響應(yīng)imx-i2c中斷。通過# echo "2" > /proc/irq/58/smp_affinity指令即可完成遷移。注意,這里的數(shù)字“2”表示CPU編號,它是從1開始。遷移后IMX-uart中斷情況如下:

圖5:綁定中斷后的系統(tǒng)中斷分布

從前后兩張圖對比可以看出,中斷遷移前,IMX-uart在CPU3上的中斷次數(shù)為1824次,在CPU0上中斷次數(shù)為727次。中斷遷移后,CPU0和CPU3不再響應(yīng)IMX-uart中斷,CPU1上IMX-uart中斷次數(shù)由15次增加到了115次。我曾經(jīng)在一個雙核硬件平臺上遇到過串口和SPI同時需要響應(yīng)大量中斷,它們互相影響導(dǎo)致中斷響應(yīng)不及時而出現(xiàn)數(shù)據(jù)丟失和輸出不及時的情況,最終就是通過中斷綁核解決的。中斷綁核其實不能完全消除對實時性的影響,只能最大程度去降低中斷對進(jìn)程的影響,因為系統(tǒng)中NMI中斷和本地時鐘中斷無法遷移和禁止。除了中斷可以綁核,應(yīng)用層的進(jìn)程和線程也可以改變它們與CPU的親和性,比如遷移到中斷較少的核上,也能在一定程度上提升進(jìn)程的實時性。

2.3進(jìn)程調(diào)度算法

除了前面提到的時鐘和中斷外,還有一個影響實時性最大的因素就是操作系統(tǒng)的調(diào)度算法。Linux系統(tǒng)目前默認(rèn)采用的是完全公平調(diào)度算法(CFS),它按照各個進(jìn)程的權(quán)重來分配運行時間,在默認(rèn)使用CFS的情況下,我們可以給有實時性需求的進(jìn)程分配更高的優(yōu)先級和權(quán)重,可以看做是通過賦予更高的優(yōu)先級來獲得更好的實時性。 Linux內(nèi)核目前支持多種調(diào)度類,每一種調(diào)度類都是同一類型調(diào)度策略的集合,目前支持的調(diào)度類有:stop、deadline、realtime、CFS、idle。

通常情況下進(jìn)程都可選以上的幾種調(diào)度類,他們的優(yōu)先級依次由高到底排序,其中deadline調(diào)度類可選的調(diào)度策略有SCHED_DEADLINE,realtime調(diào)度類可選的調(diào)度策略有SCHED_FIFO和SCHED_RR,CFS可選的調(diào)度類有SCHED_NORMAI、SCHED_BATCH和SCHED_IDLE。在實際開發(fā)過程中,如果對時間有嚴(yán)格要求的實時進(jìn)程可以選擇deadline調(diào)度類,其他情況可以參考使用對應(yīng)的調(diào)度策略,改變調(diào)度策略,是最直接的一種優(yōu)化方式。其中deadline調(diào)度類的使用參考如下:

圖6:deadline調(diào)度策略編程參考

2.4 內(nèi)核其他限制

除了內(nèi)核本身的調(diào)度算法的原因,Linux內(nèi)核的調(diào)度模塊當(dāng)中還有其他限制因素。比如為了防止某個進(jìn)程或某一個進(jìn)程組長時間的占用CPU時間,Linux內(nèi)核引入了一個“運行帶寬”的概念,也就是說某一個進(jìn)程或進(jìn)程組使用CPU的總時間不能超過這個“帶寬”閾值,默認(rèn)值是0.95s。

圖7:“運行帶寬”默認(rèn)值

實際開發(fā)過程中為了提高我們進(jìn)程的實時性,需要進(jìn)程長時間地占用CPU資源,我們可以把這個“運行帶寬”給禁止掉。實際上不同的產(chǎn)品和使用場景也會有著不同的優(yōu)化措施,如果設(shè)備的CPU核數(shù)比較多,我們可以從整體上去規(guī)劃系統(tǒng)對于CPU的使用,大量的使用中斷綁核和進(jìn)程、線程綁核達(dá)到對CPU的獨占使用。比如DPDK,它是Intel公司開發(fā)的一種高性能網(wǎng)絡(luò)加速組件。在Linux內(nèi)核中,傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)包的收發(fā)都是經(jīng)過網(wǎng)卡驅(qū)動和內(nèi)核協(xié)議棧,網(wǎng)卡驅(qū)動針對大數(shù)據(jù)包場景也做了大量的應(yīng)對措施,但是從本質(zhì)上來說,網(wǎng)絡(luò)包的收發(fā)在內(nèi)核中也還是依賴系統(tǒng)給我們實現(xiàn)好的軟中斷機(jī)制。

而DPDK則是使用輪詢代替了中斷,它繞過了Linux內(nèi)核的網(wǎng)絡(luò)模塊(驅(qū)動和協(xié)議棧),不需要頻繁的進(jìn)行數(shù)據(jù)的拷貝,使得用戶空間可以直接看到硬件網(wǎng)卡的數(shù)據(jù),這大大減小了數(shù)據(jù)傳遞路程上的開銷。下面這張圖就是使用輪詢和DPDK獨占CPU的一個例子。

圖8:DPDK輪詢獨占CPU

再比如,irqbalance,它用于中斷收集分配,會根據(jù)系統(tǒng)的負(fù)載情況自動進(jìn)入性能模式和節(jié)能模式,會將中斷平均分配到不同的CPU上去處理,特殊情況下我們需要禁止這個功能。還有其他比如禁止軟鎖、虛擬內(nèi)存管理優(yōu)化等。從上面可以看出,實時性優(yōu)化的方法多種多樣,甚至使用使用輪詢代替了中斷。但是關(guān)鍵還是在于我們要了解Linux內(nèi)核模塊的一些運行機(jī)制,和這些機(jī)制在實現(xiàn)上本身就存在的缺點,只有這樣我們才能針對具體問題作出對應(yīng)的優(yōu)化措施。以上提到的這些方法只是從大的方向而且很淺顯去分析和介紹Linux內(nèi)核的實時性影響因素和對應(yīng)的優(yōu)化措施。總結(jié)起來有以下幾點:

  • 中斷優(yōu)先級高,要減少中斷對進(jìn)程的影響;
  • 進(jìn)程之間有優(yōu)先級之分,要合理改變優(yōu)先級;
  • 內(nèi)核模塊的實現(xiàn)機(jī)制限制,在特殊情況下使用輪訓(xùn);
  • 提升系統(tǒng)節(jié)拍,提升定時精度;
  • 禁止irqbalance,防止進(jìn)入節(jié)能或休眠模式;

還有其他更為深入的細(xì)節(jié)我們沒有深入分析,比如Linux進(jìn)程切換耗時,中斷響應(yīng)耗時、內(nèi)存分配開銷以及普通定時器精度和高精度定時器精度等,這些都是從細(xì)分的模塊方向去研究并優(yōu)化。進(jìn)程的切換涉及到主調(diào)度器和周期調(diào)度器,它們都不可避免地涉及到定時器,目前Linux內(nèi)核的高精度定時器也很難做到us級別,這也就決定了在調(diào)度的時間上也不是那么地準(zhǔn)確,再加上內(nèi)核中充斥著大量的自旋鎖,而自旋鎖的使用會關(guān)閉CPU的中斷進(jìn)而影響實時性,所以在開發(fā)過程中更加提高了對我們自身的水平要求。

3.總結(jié)

前面列舉的這些優(yōu)化措施實施起來很簡單,但對于我們自身來說更要理解為什么要這么做。深入去分析Linux內(nèi)核的機(jī)制,實際的去閱讀內(nèi)核的模塊源碼,才會在實時性或者Linux內(nèi)核的學(xué)習(xí)道路上收獲更多。比如閱讀內(nèi)核源碼才會知道tasklet和workqueue的應(yīng)用場景的不同,盡管它們都是“中斷下半部”之一,但是它們在內(nèi)核當(dāng)中執(zhí)行的優(yōu)先級還是有很大區(qū)別。只有閱讀內(nèi)核源碼,才會知道tasklet和hrtimer也是基于軟中斷的,而且這個軟中斷也有優(yōu)先級之分。也只有閱讀內(nèi)核源碼,才會知道系統(tǒng)目前實現(xiàn)了多少種軟中斷,甚至我們自己也可以實現(xiàn)軟中斷獲得實時性的提升,盡管Linux內(nèi)核不建議我們這么做。

除了閱讀內(nèi)核的源碼,掌握調(diào)試跟蹤內(nèi)核的工具也必不可少,比如ftrace、trace-cmd、kernelshark、perf等。俗話說,工欲善其事必先利其器,熟練掌握這些工具的使用會讓我們優(yōu)化工作更高效。ftrace是一個很強(qiáng)大的調(diào)試工具,除了常用的函數(shù)跟蹤器能讓我們輕松知道一個函數(shù)的執(zhí)行耗時之外,它強(qiáng)大的event機(jī)制,更是可以直接讓我們在驅(qū)動或者內(nèi)核中添加跟蹤點,輸出內(nèi)核執(zhí)行過程中的各類數(shù)據(jù),讓我們輕松洞察內(nèi)核的執(zhí)行過程。總之,實時性優(yōu)化是一條漫長的道路,一路上也充滿了各種未知,鉆研越深越對它充滿好奇,也越覺得Linux內(nèi)核神奇。

比如你可能會好奇在Linux內(nèi)核中一個進(jìn)程從被喚醒到真正去執(zhí)行這個過程花了多長時間。又比如一個外部中斷,從它被觸發(fā)到真正走到用戶注冊的中斷處理函數(shù),這個過程又花了多長時間。只有自己親自到設(shè)備上去調(diào)試,去嘗試弄明白這些問題了才會發(fā)現(xiàn)Linux內(nèi)核有趣的地方,也才會越走越充實。以上只是我自己在工作過程中積累的一點觀點看法,如果讀者面對Linux內(nèi)核不知道從何處入手的話,個人建議不妨從實時性優(yōu)化這個方向入手,逐漸深入。

作者簡介:鄧世強(qiáng),一線碼農(nóng),從事通信行業(yè),目前在一家通信公司擔(dān)任內(nèi)核工程師,日常喜歡鉆研學(xué)習(xí)Linux內(nèi)核知識。

責(zé)任編輯:武曉燕 來源: Linux閱碼場
相關(guān)推薦

2011-07-05 18:30:44

站內(nèi)優(yōu)化

2016-07-22 10:50:56

Linux內(nèi)核無線子系統(tǒng)

2010-03-24 10:10:21

2011-06-02 15:03:07

SEO

2009-07-05 11:23:44

2020-06-04 08:36:55

Linux內(nèi)核線程

2024-12-04 10:39:00

Linux內(nèi)核技術(shù)性

2010-07-19 10:05:52

ibmdwLinux

2013-11-25 14:57:04

TCPTCP優(yōu)化

2015-11-09 11:19:36

Linux安全Linux內(nèi)核安全

2013-05-22 14:59:26

Linux操作系統(tǒng)實時性

2009-05-04 09:52:49

Oracle優(yōu)化排序

2023-03-27 09:08:11

Linux

2023-11-15 18:46:49

HBase數(shù)據(jù)庫開源

2022-06-16 09:43:27

Linux實時

2012-06-01 10:23:47

Mobile Site優(yōu)化

2025-03-12 04:25:00

Linux系統(tǒng)優(yōu)化應(yīng)用

2019-09-18 08:53:55

2020-01-06 11:22:06

TCPLinux內(nèi)核

2013-11-15 13:10:36

SUSE SolidDSUSELinux內(nèi)核
點贊
收藏

51CTO技術(shù)棧公眾號

日日夜夜精品网站| 7m精品福利视频导航| 亚洲精品久久久中文字幕| 日本中文字幕在线视频| 国产一区福利在线| 亚洲18私人小影院| 五月婷婷欧美激情| 999在线精品| 在线视频国内自拍亚洲视频| 欧美精品一区二区性色a+v| 午夜精品一区二区三| 免费在线观看成人av| 啊v视频在线一区二区三区| 在线观看一区二区三区四区| 日韩高清不卡| 亚洲成人免费影院| 午夜视频久久久| 亚洲AV午夜精品| 三级成人在线视频| 久久久久久国产精品美女| 成人午夜剧场视频网站| 精品一区视频| 91福利社在线观看| 97视频在线免费| 日本中文字幕在线看| 91美女片黄在线| 91在线|亚洲| 在线视频精品免费| 亚洲精品婷婷| 久久国产精品久久久久久| 中文字幕第4页| 99国产精品久久一区二区三区| 欧美日韩一卡二卡三卡 | 色一区二区三区四区| 精品欧美一区二区在线观看| 美女网站色免费| 最新日韩精品| 欧美日韩在线免费观看| 菠萝蜜视频在线观看入口| 三区四区电影在线观看| 久久精品人人做人人综合 | 一起操在线视频| 欧美成a人片在线观看久| 亚洲午夜国产一区99re久久| 国产成人精品免费看在线播放| 欧美精品久久久久久久久久丰满| 高清日韩电视剧大全免费| 92国产精品视频| 国产精品国产一区二区三区四区 | 日韩免费高清在线观看| 日韩免费黄色片| 激情久久综合| 欧美国产日韩视频| 欧美黄色aaa| 外国成人免费视频| yw.139尤物在线精品视频| 奇米网一区二区| 欧美aaaa视频| 日韩在线观看成人| 精品在线观看一区| 欧美国产小视频| 色偷偷av一区二区三区乱| jizz日本在线播放| 久久大综合网| 久久精品国产亚洲| 麻豆一区在线观看| 亚洲色图国产| 久久久久久久久久亚洲| 国产奶水涨喷在线播放| 亚洲视频1区| 日韩av免费网站| 中文av免费观看| 美女久久久精品| 91精品啪aⅴ在线观看国产| 一二三区中文字幕| 91.xxx.高清在线| 精品91在线| 波多野结衣在线一区| 欧美福利在线观看| 久久网一区二区| 亚洲高清电影| 日本高清不卡的在线| 可以在线看黄的网站| 亚洲第一页在线观看| 成人久久久精品乱码一区二区三区| av免费精品一区二区三区| 成人午夜视频一区二区播放| 99视频在线观看一区三区| 欧美三日本三级少妇三99| 在线免费av网站| 玉足女爽爽91| 欧美黄网站在线观看| 久久精品超碰| 精品区一区二区| 在线国产视频一区| 欧美成人69| 欧美在线观看网站| 91精品国产综合久| av网站免费线看精品| 欧美日韩一区二区视频在线观看 | 最近更新的2019中文字幕 | 欧美日韩国产中文精品字幕自在自线 | 国产精品一级无码| 美女少妇全过程你懂的久久| xxxxx成人.com| 日韩三级av在线| 精品一区中文字幕| 国产偷久久久精品专区| 色多多视频在线观看| 亚洲国产精品综合小说图片区| 蜜臀av午夜一区二区三区 | 欧美一区二区三区免费观看视频| 800av在线播放| 久久精品欧美一区| 国产成人精品视| 国产91免费在线观看| 国产精品情趣视频| 国产原创中文在线观看| 91精品国产色综合久久不卡粉嫩| 亚洲激情国产精品| 国产一区二区播放| 日韩激情在线观看| 精品欧美国产| а天堂中文在线官网| 欧美性感一类影片在线播放| 欧洲熟妇的性久久久久久| 日韩在线观看一区| 国产999精品久久久| 亚洲精品成人区在线观看| 国产精品理伦片| 久久久久久久久久久久久国产精品| 日韩中文字幕无砖| 久久手机免费视频| 中文在线字幕av| 久久久久99精品国产片| 国产精品自拍片| 99国产精品免费网站| 欧美成人免费观看| 国产精品人人爽| 久久一区二区三区四区| 久草热视频在线观看| 日韩成人在线看| 久久国产精品偷| 亚洲影视一区二区| 国产精品久久久久天堂| 国产精品视频黄色| 欧美欧美黄在线二区| 欧美亚洲国产视频| 水中色av综合| 欧美午夜美女看片| 国产乱了高清露脸对白| 亚洲免费观看| 国产另类自拍| 老牛影视精品| 国产婷婷色综合av蜜臀av| 国产三级av片| 久久综合国产精品| 男人天堂成人在线| 精品一区二区三| 国产精品视频1区| 午夜在线播放| 欧美一区二区黄色| 亚洲av鲁丝一区二区三区| 国产精品18久久久久久久久| 国产女人18毛片| 国产成人精品亚洲线观看| 性色av一区二区三区| 亚洲色图欧美视频| 在线免费观看日韩欧美| 日本精品久久久久中文| 国产一区二区免费看| 国产精品久久国产| 久久91在线| 日韩av不卡电影| av成人手机在线| 欧美一二区视频| 日韩 欧美 亚洲| 国产人成一区二区三区影院| 日本免费色视频| 精品动漫3d一区二区三区免费版| 久久国产精品 国产精品| 日韩中文视频| 欧美乱妇高清无乱码| 亚洲区小说区图片区| 精品视频一区二区三区免费| 九九免费精品视频| 91色乱码一区二区三区| 9久久婷婷国产综合精品性色| 希岛爱理一区二区三区| 国产精品国产三级国产专区53| 高清不卡亚洲| 久久伊人色综合| 婷婷国产在线| 欧美日本在线看| 日韩乱码在线观看| 国产精品久久久一本精品| 亚洲熟妇一区二区| 青青青伊人色综合久久| 国产精品无码免费专区午夜| 自拍视频一区| 成人av播放| 久久av影院| 2019中文字幕在线| www免费在线观看| 亚洲欧美在线第一页| 999精品国产| 91搞黄在线观看| 日本免费观看视| 成人免费在线视频| 亚洲天堂久久新| 国产aⅴ综合色| 91精品无人成人www| 国产一区二区高清| 一本色道久久88亚洲精品综合| 欧美精美视频| 精品免费视频123区| 国内不卡的一区二区三区中文字幕 | 天堂在线亚洲视频| 国产一级爱c视频| 亚洲综合中文| 先锋在线资源一区二区三区| 国内自拍欧美| 99久久国产免费免费| 亚州欧美在线| 国产精品嫩草影院一区二区| 中文字幕乱码在线播放| 欧美精品18videos性欧美| 老司机在线视频二区| 中文字幕日韩精品在线| 精品乱码一区二区三四区视频| 精品成人一区二区三区四区| 国产伦精品一区二区三区免.费 | www.蜜臀av.com| 在线播放一区二区三区| 日本黄色中文字幕| 一本一道久久a久久精品 | 亚洲精品成人无码| av亚洲精华国产精华| 美女黄色一级视频| 国产不卡视频一区| 99热这里只有精品2| 国内久久精品视频| 天天色天天综合网| 狠狠色丁香婷婷综合| 在线观看国产中文字幕| 日本不卡视频一二三区| 99re在线视频免费观看| 欧美专区18| 成人一级片网站| 久久久综合网| 日韩免费高清在线| 免费在线观看视频一区| 第四色婷婷基地| 美日韩一区二区三区| 成人亚洲免费视频| 国产乱子轮精品视频| 日本女人性视频| 99视频超级精品| 人妻体内射精一区二区| 欧美激情一区不卡| 久久久99999| 一区二区高清视频在线观看| 国产成人精品亚洲男人的天堂 | 亚洲视频一区二区三区四区| 欧美精品日韩综合在线| aaaa一级片| 亚洲大胆人体在线| 国产最新视频在线观看| 俺也去精品视频在线观看| 精灵使的剑舞无删减版在线观看| 欧美精品福利视频| 欧美成人精品三级网站| 国产日韩欧美91| swag国产精品一区二区| 蜜桃av噜噜一区二区三| 色天天久久综合婷婷女18| 老司机午夜网站| 麻豆精品网站| 在线观看免费不卡av| 成人精品高清在线| av电影在线不卡| 一区二区在线免费| 久久精品无码av| 欧美一级片在线| 秋霞av在线| 另类少妇人与禽zozz0性伦| 色戒汤唯在线观看| 成人免费淫片视频软件| 激情小说亚洲色图| 色狠狠久久av五月综合| 亚洲有吗中文字幕| 国产在线精品91| 丝袜亚洲另类欧美综合| 黄页网站在线看| 久久久91精品国产一区二区精品 | 国产精品久久久久久久裸模 | 天天干天天插天天操| 亚洲日本欧美中文幕| 国产在线观看免费麻豆| 97精品久久久中文字幕免费| 怡红院成人在线| 日本一区二区三区四区视频| 成人在线视频区| 久草一区二区| 午夜精品亚洲| 少妇性l交大片| 国产电影一区在线| 天堂网中文在线观看| 亚洲午夜激情网站| 免费av中文字幕| 亚洲国产私拍精品国模在线观看| www在线免费观看| 97avcom| 天天综合在线观看| 国产在线精品一区二区三区| 亚洲成人精品| 免费看a级黄色片| 懂色中文一区二区在线播放| 999福利视频| 一本色道久久加勒比精品| 99久久久无码国产精品免费| 亚洲欧美国内爽妇网| 在线中文免费视频| 91免费国产网站| 精品国内自产拍在线观看视频| 中文字幕久久一区| 男女性色大片免费观看一区二区| 久久久久久婷婷| 亚洲成人av在线电影| 中文字幕欧美色图| 日韩成人av在线| 美女扒开腿让男人桶爽久久软| 国产精品九九久久久久久久| 激情小说亚洲色图| 日本www在线视频| 国产福利一区二区三区视频| 国产大片免费看| 欧美日韩精品专区| 国产二区视频在线观看| 国产成人一区二区三区| 久久久免费毛片| 波多野结衣av一区二区全免费观看| 免费观看一级特黄欧美大片| 国产三级国产精品| 日韩欧美一区二区三区久久| 人人妻人人澡人人爽人人欧美一区 | 亚洲高清在线观看视频| 欧美成人精品在线| 国产美女视频一区二区| 久久国产精品免费一区| 亚洲欧美网站| 亚洲欧美日本一区| 欧美色另类天堂2015| 天堂在线观看视频| 日韩一区欧美小说| 激情久久av| 国产精品无码在线播放| 久久99久国产精品黄毛片色诱| 九九精品在线播放| 免费av在线| 成人激情视频网| 日本一区二区在线看| 好吊妞无缓冲视频观看| 久久综合狠狠综合久久综合88 | 综合久久中文字幕| 中文字幕成人精品久久不卡| а√天堂资源国产精品| aaa免费在线观看| 韩国三级电影一区二区| 国产传媒免费在线观看| 91精品国产综合久久久久久久| 黄色免费网站在线| 亚洲综合中文字幕在线| 欧美久久一级| 538国产视频| 欧美日韩国产一区二区三区地区| 欧美精品电影| 99re国产在线播放| 久久深夜福利| 亚洲黄色网址大全| 欧美电影免费观看完整版| 成人免费高清观看| 欧美性xxxx69| 美女网站一区二区| 欧美丰满熟妇bbbbbb| 日韩精品高清视频| 九九九伊在线综合永久| 国产 欧美 日韩 一区| 91在线视频网址| 亚洲网站免费观看| 欧美美最猛性xxxxxx| 欧美五码在线| 亚洲国产午夜精品| 亚洲第一搞黄网站| 免费a在线看| 国产一区二区三区四区五区在线 | 无码一区二区三区| 久久不射电影网| 网红女主播少妇精品视频| 天天碰免费视频|