日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++性能优化(十二)——自旋锁

發布時間:2024/1/8 c/c++ 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++性能优化(十二)——自旋锁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、互斥鎖

1、互斥鎖簡介

互斥鎖屬于sleep-waiting類型鎖。Linux Kernel 2.6.x穩定版開始,Linux的互斥鎖都是futex (Fast?Usermode?Mutex)鎖。
Futex是一個在Linux上實現鎖定和構建高級抽象鎖如信號量和POSIX互斥的基本工具。

Futex由Hubertus Franke(IBM Thomas J. Watson 研究中心),Matthew Kirkwood,Ingo Molnar(Red Hat)和 Rusty Russell(IBM Linux 技術中心)等人創建。
Futex是由用戶空間的一個對齊的整型變量和附在其上的內核空間等待隊列構成。多進程或多線程絕大多數情況下對位于用戶空間的futex的整型變量進行操作(匯編語言調用CPU提供的原子操作指令來增加或減少),而其它情況下則需要通過代價較大的系統調用來對位于內核空間的等待隊列進行操作(如喚醒等待的進程/線程或將當前進程/線程放入等待隊列)。除了多個線程同時競爭鎖的少數情況外,基于futex的lock操作是不需要進行代價昂貴的系統調用操作的。
Futex核心思想是通過將大多數情況下非同時競爭lock的操作放到在用戶空間執行,而不是代價昂貴的內核系統調用方式來執行,從而提高了效率。

互斥鎖禁止多個線程同時進入受保護的代碼臨界區(critical section)。在任意時刻,只有一個線程被允許進入代碼保護區?;コ怄i實際上是count=1情況下的semaphore。

2、互斥鎖特點

互斥鎖缺點:

(1)等待互斥鎖會消耗時間,等待延遲會損害系統的可伸縮性。

(2)優先級倒置。低優先級的線程可以獲得互斥鎖,因此會阻礙需要同一互斥鎖的高優先級線程。

(3)鎖護送(lock convoying)。如果持有互斥鎖的線程分配的時間片結束,線程被取消調度,則等待同一互斥鎖的其它線程需要等待更長時間。

3、互斥鎖API

#include?<pthread.h>int?pthread_mutex_destroy(pthread_mutex_t?*mutex); int?pthread_mutex_init(pthread_mutex_t?*restrict?mutex,?const?pthread_mutexattr_t?*restrict?attr); pthread_mutex_t?mutex?=?PTHREAD_MUTEX_INITIALIZER;int?pthread_mutex_lock(pthread_mutex_t?*mutex); int?pthread_mutex_trylock(pthread_mutex_t?*mutex); int?pthread_mutex_unlock(pthread_mutex_t?*mutex); int?pthread_mutex_timedlock(pthread_mutex_t?*restrict?mutex,?const?struct?timespec?*restrict?abs_timeout);

二、自旋鎖

1、自旋鎖簡介

自旋鎖(spin lock)屬于busy-waiting類型鎖。在多處理器環境中,自旋鎖最多只能被一個可執行線程持有。如果一個可執行線程試圖獲得一個被其它線程持有的自旋鎖,那么線程就會一直進行忙等待,自旋(空轉),等待自旋鎖重新可用。如果自旋鎖未被爭用,請求鎖的執行線程便立刻得到自旋鎖,繼續執行。

多處理器操作系統中某些資源是有限的,不同線程需要互斥訪問,因此需要引入鎖概念,只有獲取鎖的線程才能夠對資源進行訪問。多線程的核心是CPU的時間分片,同一時刻只能有一個線程獲取到鎖。對于沒有獲取到鎖的線程通常有兩種處理方式:自旋鎖,沒有獲取到鎖的線程會一直循環等待判斷資源是否已經釋放鎖,不用將線程阻塞起來;互斥鎖,把未獲取到鎖的線程阻塞起來,等待重新調度請求。

自旋鎖(spin?lock)是指當一個線程在獲取鎖的時候,如果鎖已經被其它線程獲取,那么線程將循環等待,然后不斷的判斷鎖是否能夠被成功獲取,直到獲取到鎖才會退出循環。

獲取鎖的線程一直處于活躍狀態,但并沒有執行任何有效的任務,使用自旋鎖會造成busy-waiting。

2、自旋鎖的特點

自旋鎖不會使線程狀態發生切換,一直處于用戶態,即線程一直都是active的;不會使線程進入阻塞狀態,減少了不必要的上下文切換,執行速度快

非自旋鎖在獲取不到鎖的時候會進入阻塞狀態,從而進入內核態,當獲取到鎖時需要從內核態恢復,導致線程在用戶態與內核態之間來回切換,嚴重影響鎖的性能。

3、自旋鎖原理

自旋鎖的原理比較簡單,如果持有鎖的線程能在短時間內釋放鎖資源,那么等待競爭鎖的線程就不需要做內核態和用戶態之間的切換進入阻塞狀態,只需要等一等(自旋),等到持有鎖的線程釋放鎖后即可獲取,避免用戶進程和內核切換的消耗。

自旋鎖避免了操作系統進程調度和線程切換,通常適用在時間極短的情況,因此操作系統的內核經常使用自旋鎖。但如果長時間上鎖,自旋鎖會非常耗費性能。線程持有鎖時間越長,則持有鎖的線程被?OS調度程序中斷的風險越大。如果發生中斷情況,那么其它線程將保持旋轉狀態(反復嘗試獲取鎖),而持有鎖的線程并不打算釋放鎖,導致結果是無限期推遲,直到持有鎖的線程可以完成并釋放它為止。

自旋鎖的目的是占著CPU資源不進行釋放,等到獲取鎖立即進行處理。如果自旋執行時間太長,會有大量的線程處于自旋狀態占用CPU資源,進而會影響整體系統的性能,因此可以給自旋鎖設定一個自旋時間,等時間一到立即釋放自旋鎖。

4、自旋鎖API

#include?<pthread.h>int?pthread_spin_destroy(pthread_spinlock_t?*lock); int?pthread_spin_init(pthread_spinlock_t?*lock,?int?pshared);int?pthread_spin_lock(pthread_spinlock_t?*lock); int?pthread_spin_trylock(pthread_spinlock_t?*lock); int?pthread_spin_unlock(pthread_spinlock_t?*lock);

5、自旋鎖與互斥鎖

spinlock不會使線程狀態發生切換,mutex在獲取不到鎖的時候會選擇sleep。

spinlock優點:沒有耗時的系統調用,一直處于用戶態,執行速度快。

spinlock缺點:一直占用CPU,而且在執行過程中還會鎖bus總線,鎖總線時其它處理器不能使用總線。

mutex獲取鎖分為兩階段,第一階段在用戶態采用spinlock鎖總線的方式獲取一次鎖,如果成功立即返回;否則進入第二階段,調用系統的futex鎖去sleep,當鎖可用后被喚醒,繼續競爭鎖。

mutex優點:不會忙等,得不到鎖會sleep。

mutex缺點:sleep時會陷入到內核態,需要昂貴的系統調用。

三、自旋鎖實現

1、raw_spinlock

當某個處理器上的內核執行線程申請自旋鎖時,如果鎖可用,則獲得鎖,然后執行臨界區操作,最后釋放鎖;如果鎖已被占用,線程并不會轉入睡眠狀態,而是忙等待該鎖,一旦鎖被釋放,則第一個感知此信息的線程將獲得鎖。

typedef?struct?{unsigned?int?slock; }?raw_spinlock_t;

傳統自旋鎖本質是用一個整數來表示,值為1代表鎖未被占用,為0或者為負數表示被占用。

在單處理機環境中可以使用特定的原子級匯編指令swap和test_and_set實現進程互斥,但由于中斷只能發生在兩條機器指令之間,而同一指令內的多個指令周期不可中斷,從而保證swap指令或test_and_set指令的執行不會交叉進行。
多處理器環境中利用test_and_set指令實現進程互斥,硬件需要提供進一步的支持,以保證test_and_set指令執行的原子性,目前多以鎖總線形式提供,由于test_and_set指令對內存的兩次操作都需要經過總線,在執行test_and_set指令前鎖住總線,在執行test_and_set指令后釋放總線,即可保證test_and_set指令執行的原子性。

static?inline?void?__raw_spin_lock(raw_spinlock_t?*lock) {__asm__?__volatile__(__raw_spin_lock_string:"=m"?(lock->slock)?:?:?"memory"); }static?inline?void?__raw_spin_unlock(raw_spinlock_t?*lock) {__asm__?__volatile__(__raw_spin_unlock_string); }

由于傳統自旋鎖無序競爭的本質特點,內核執行線程無法保證何時可以取到鎖,某些執行線程可能需要等待很長時間,導致鎖競爭不公平。

(1)隨著處理器個數增加,自旋鎖競爭也在加劇,自然導致更長等待時間。釋放自旋鎖時的重置操作將無效化所有其它正在忙等待的處理器的緩存,那么在處理器拓撲結構中臨近自旋鎖擁有者的處理器可能會更快地刷新緩存,因而增大獲得自旋鎖的機率。

(2)由于每個申請自旋鎖的處理器均在全局變量slock上忙等待,系統總線將因為處理器間的緩存同步而導致繁重的流量,從而降低了系統整體性能。

2、ticket spinlock

Linux Kernel 2.6.25版本中引入了排隊自旋鎖,通過保存執行線程申請鎖的順序信息來解決不公平問題。

排隊自旋鎖仍然使用raw_spinlock_t 數據結構,但是賦予slock字段新含義。為了保存順序信息,slock字段被分成兩部分Owner和Next,分別保存鎖持有者和未來鎖申請者的票據序號(Ticket Number),只有Owner和Next相等時,才表明鎖處于未使用狀態。

排隊自旋鎖初始化時slock被置為0,即Owner和Next置為0。Linux內核執行線程申請自旋鎖時,原子地將Next加1,并將原值返回作為自己的票據序號。如果返回的票據序號等于申請時Owner值,說明自旋鎖處于未使用狀態,則直接獲得鎖;否則,線程忙等待檢查Owner是否等于自己持有的票據序號,一旦相等,則表明鎖輪到自己獲取。線程釋放鎖時,原子地將Owner加1即可,下一個線程將會發現這一變化,從忙等待狀態中退出。線程將嚴格地按照申請順序依次獲取排隊自旋鎖,從而完全解決了不公平問題。

typedef?struct?arch_spinlock?{union?{__ticketpair_t?head_tail;struct?__raw_tickets?{__ticket_t?head,?tail;}?tickets;}; }?arch_spinlock_t;

申請自旋鎖時,原子地將tail加1,釋放時,head加1。只有head域和tail域的值相等時,才表明鎖處于未使用的狀態。

static?inline?void?__raw_spin_lock(raw_spinlock_t?*lock) {asm?volatile("\n1:\t"LOCK_PREFIX?"?;?decb?%0\n\t""jns?3f\n""2:\t""rep;nop\n\t""cmpb?$0,%0\n\t""jle?2b\n\t""jmp?1b\n""3:\n\t":?"+m"?(lock->slock)?:?:?"memory"); }static?inline?void?__raw_spin_unlock(raw_spinlock_t?*lock) {asm?volatile("movb?$1,%0"?:?"+m"?(lock->slock)?::?"memory"); }

在大規模多處理器系統和NUM系統中,排隊自旋鎖(包括傳統自旋鎖)存在一個比較嚴重的性能問題:由于執行線程均在同一個共享變量slock上自旋,申請和釋放鎖的時候必須對slock進行修改,將導致所有參與排隊自旋鎖操作的處理器的緩存變得無效。如果排隊自旋鎖競爭比較激烈的話,頻繁的緩存同步操作會導致繁重的系統總線和內存的流量,從而大大降低了系統整體的性能。

3、mcs spinlock

每個鎖的申請者(處理器)只在一個本地變量上自旋。MCS Spinlock是一種基于鏈表結構的自旋鎖。

MCS Spinlock的設計目標如下:
(1)保證自旋鎖申請者以先進先出的順序獲取鎖(FIFO)
(2)只在本地可訪問的標志變量上自旋。
(3)在處理器個數較少的系統中或鎖競爭并不激烈的情況下,保持較高性能。
(4)自旋鎖的空間復雜度(即鎖數據結構和鎖操作所需的空間開銷)為常數。
(5)在沒有處理器緩存一致性協議保證的系統中也能很好地工作。

MCS Spinlock采用鏈表結構將全體鎖申請者的信息串成一個單向鏈表。每個鎖申請者必須提前分配一個本地mcs_lock_node,其中至少包括2個字段:本地自旋變量waiting和指向下一個申請者 mcs_lock_node結構的指針變量next。waiting初始值為1,申請者自旋等待其直接前驅釋放鎖;為0時結束自旋。

自旋鎖數據結構mcs_lock是一個永遠指向最后一個申請者 mcs_lock_node的指針,當且僅當鎖處于未使用(無任何申請者)狀態時為NULL值。MCS Spinlock依賴原子的swap和CAS(compare_and_swap)操作,如果缺乏CAS支持,MCS Spinlock 就不能保證以先進先出的順序獲取鎖。

每個鎖有NR_CPUS個元素node數組,mcs_lock_node結構可以在處理器所處節點的內存中分配,從而加快訪問速度。

typedef?struct?_mcs_lock_node?{volatile?int?waiting;struct?_mcs_lock_node?*volatile?next; }?____cacheline_aligned_in_smp?mcs_lock_node;typedef?mcs_lock_node?*volatile?mcs_lock;typedef?struct?{mcs_lock?slock;mcs_lock_node?nodes[NR_CPUS]; }?raw_spinlock_t;static?__always_inline?void?__raw_spin_lock(raw_spinlock_t?*lock) {int?cpu;mcs_lock_node?*me;mcs_lock_node?*tmp;mcs_lock_node?*pre;cpu?=?raw_smp_processor_id();?????????????????????????????????me?=?&(lock->nodes[cpu]);tmp?=?me;me->next?=?NULL;pre?=?xchg(&lock->slock,?tmp);??????????????????????????????if?(pre?==?NULL)?{/*?mcs_lock?is?free?*/return;????????????????????????????????????????????????}me->waiting?=?1;???????????????????????????????????????????????smp_wmb();??????????????????????????????????????????????????????pre->next?=?me;????????????????????????????????????????????????while?(me->waiting)?{????????????????????????????????????????????asm?volatile?("pause");}??? }static?__always_inline?int?__raw_spin_trylock(raw_spinlock_t?*lock) {int?cpu;mcs_lock_node?*me;cpu?=?raw_smp_processor_id();me?=?&(lock->nodes[cpu]);me->next?=?NULL;if?(cmpxchg(&lock->slock,?NULL,?me)?==?NULL)????????????return?1;elsereturn?0; }static?__always_inline?void?__raw_spin_unlock(raw_spinlock_t?*lock) {int?cpu;mcs_lock_node?*me;mcs_lock_node?*tmp;cpu?=?raw_smp_processor_id();me?=?&(lock->nodes[cpu]);tmp?=?me;if?(me->next?==?NULL)?{?????????????????????????????????????if?(cmpxchg(&lock->slock,?tmp,?NULL)?==?me)?{???/*?mcs_lock?I?am?the?last.?*/return;}while?(me->next?==?NULL)????????????????????????????continue;}/*?mcs_lock?pass?to?next.?*/me->next->waiting?=?0;??????????????????????????????????????? }

mcs spinlock 鎖占用空間大。

4、qspinlock

qspinlock在Linux Kernel 4.2引入,基于mcs spinlock設計思想但解決了mcs spinlock接口不一致或空間太大的問題。
qspinlock數據結構體比mcs lock大大減小,與ticket spinlock大小相同。

struct?__qspinlock?{union?{atomic_t?val; #ifdef?__LITTLE_ENDIANstruct?{u8 locked;u8 pending;};struct?{u16 locked_pending;u16 tail;}; #elsestruct?{u16 tail;u16 locked_pending;};struct?{u8 reserved[2];u8 pending;u8 locked;}; #endif };static?__always_inline?void?queued_spin_lock(struct?qspinlock?*lock) {u32?val;val?=?atomic_cmpxchg_acquire(&lock->val,?0,?_Q_LOCKED_VAL);if?(likely(val?==?0))return;queued_spin_lock_slowpath(lock,?val); }

qspinlock采用mcs lock機制, 每一個CPU都定義有一個struct mcs spinlock數據結構,在大規模多處理器系統和NUM架構中, 使用qspinlock可以較好的提高鎖的性能。

5、性能比較

?寫一個spinlock的性能測試驅動,在等待相同時間后比較spinlock 臨界區域的值, 從而比較各個鎖的性能差異。

#include?<linux/init.h> #include?<linux/module.h> #include?<linux/kthread.h> #include?<linux/sched.h> #include?<linux/kernel/h> #include?<linux/spinlock.h> #include?<linux/random.h> #include?<linux/slab.h> #incude?<linux/timer.h> #include?<linux/jiffies.h> #include?<linux/atomic.h>int?spinlock_num;struct?worker?{int?burns;struct?task_struct?*task; }static?struct?worker?*workers; static?int?threads?=?2; module_param(threads,?int,?0);static?spinlock_t?lock; static?int?runtime?=?10; module_param(runtime,?int,?0);static?int?bench_running; static?task_struct?*monitor_task; static?int?rerun,?done; module_param(rerun,?int,?S_IRUGO|S_ISUSR); module_param(done,?int,?S_IRUGO|S_ISUSR);static?int?work(void?*data) {struct?worker?*wk?=?(struct?worker*)arg;while(!kthread_should_stop())?{cond_resched();if?(!ACCESS_ONCE(bench_running))continue;spin_lock(&lock)spinlock_num++;spin_unlock(&lock);}return?0; }static?int?monitor(void?*unused) {int?i,?c;int?total,?min,?max,?avg; repeat:total?=?0,?min?=?INT_MAX,?max?=?0,?avg?=?0;spinlock_num?=?0;workers?=?(struct?worker?*)kzalloc(sizeof(struct?worker)?*?threads,?GFP_KERNEL);for?(i?=?0;?i?<?threads;?i++)?{c?=?i?%num_online_cpus();workers[i].task?=?kthread_create(work,?&workers,?"locktest/%d:%d",?c,?i);kthread_bind(workers[i].task,?c);wake_up_process(workers[i].task);}bench_running?=?0;for?(i?=?0;?i?<?threads;?i++)?{if?(workers[i].task)kthread_stop(workers[i].task);}kfree(workers);printk("lockresult:%6d?%8d?%12d\n",?num_online_cpus(),?threads,?spinlock_num);done?=?1;while(!kthread_should_stop())?{schedule_timeout(1);if?(cmpxchg(&rerun,?done,?0))?{done?=?0;goto?repeat;}}return?0; }static?int?locktest_init(void) {monitor_task?=?kthread_run(monitor,?NULL,?"monitor");return?0; }static?void?locktest_exit(void) {kthread_stop(monitor_task); }module_init(locktest_init); module_exit(locktest_exit); MODULE_LICENSE("GPL");

在CPU較少的情況下, qspinlock的性能和ticket spinlock的性能差不多, 在CPU較多的情況下,qspinlock的性能遠好于ticket spinlock。

總結

以上是生活随笔為你收集整理的C++性能优化(十二)——自旋锁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品乱看 | 综合色播| 99精品乱码国产在线观看 | 97视频网站| 国产精品18久久久久久vr | 亚洲最快最全在线视频 | 午夜美女视频 | 日韩视频在线不卡 | 00av视频| 一本一道久久a久久精品 | 久久精品视频免费观看 | 亚洲精品国产精品久久99热 | 亚洲一区二区视频 | 国际精品久久久 | 91视频 - 88av| 久久国产一区 | 草久久影院 | 久久精品专区 | 九九爱免费视频 | 久久久久久久久久久影视 | 成年人在线| 麻豆免费视频 | 国产精品久久久久永久免费看 | 天天综合天天做 | 在线观看久久久久久 | 91九色在线视频 | 91av在线不卡 | 久久一区二区三区四区 | 国产成人精品综合久久久久99 | 国产91勾搭技师精品 | 天天色天天操综合 | 狠狠狠色丁香综合久久天下网 | 欧美亚洲国产日韩 | 99re久久资源最新地址 | av在线播放中文字幕 | 7777精品伊人久久久大香线蕉 | 国产美女视频免费观看的网站 | 国产高清视频在线播放一区 | 亚洲国产午夜视频 | 国产精品久久久一区二区三区网站 | 91久久国产露脸精品国产闺蜜 | 色网站在线 | 在线播放日韩 | 免费av网址大全 | 亚洲视频999 | 在线观看av网站 | 久久久久久久久免费 | 欧美 日韩 国产 成人 在线 | 中文字幕av电影下载 | 欧美在线观看小视频 | 久久99国产精品二区护士 | 欧美日韩国产精品一区二区 | 亚州日韩中文字幕 | 日本久久电影 | 久久视频在线观看 | 最近字幕在线观看第一季 | 中文字幕在线播放一区二区 | 韩日三级在线 | 国产精品96久久久久久吹潮 | 久久精品香蕉视频 | 国产高清免费在线播放 | 精品一区精品二区高清 | 日批视频| 黄色一及电影 | jizz欧美性9| 日日夜夜天天久久 | 日本精品视频在线观看 | 91人人视频在线观看 | 天堂av在线免费 | 麻豆91精品91久久久 | av天天在线观看 | 996久久国产精品线观看 | 亚洲va欧美va人人爽 | 在线观看亚洲精品 | 国产视频综合在线 | 激情一区二区三区欧美 | 成年人看片 | jizz欧美性9 国产一区高清在线观看 | 黄色软件视频网站 | 91免费在线视频 | 激情丁香综合五月 | 国产精品一区二区免费视频 | 国产精品久久久久久超碰 | 久草com | 一区二区三区在线观看 | 中文字幕在线国产精品 | 欧美激情视频一区二区三区免费 | 久久综合久久综合久久综合 | 国产精品一区二区三区免费看 | 丝袜制服天堂 | 2018好看的中文在线观看 | 免费在线色电影 | 欧美日韩激情视频8区 | 丁香六月天婷婷 | 久久久国产一区 | 欧美成人xxx | 97精品国产一二三产区 | 激情视频免费在线 | 日韩三级在线观看 | 欧美日韩亚洲国产一区 | 国产精品av一区二区 | 国产中文视 | 玖玖爱免费视频 | 日韩免费在线观看视频 | 欧美一二区在线 | 色天堂在线视频 | 国产精品黄网站在线观看 | 麻豆精品在线视频 | 高清av网站 | 免费av观看 | 国产不卡网站 | 人人舔人人射 | 成人影视免费看 | 精品视频在线免费观看 | 日韩精品 在线视频 | 中文字幕超清在线免费 | 婷婷色中文字幕 | 日本久草电影 | 天天色天天骑天天射 | 日韩国产精品久久久久久亚洲 | 韩国av电影在线观看 | 日韩欧美一区二区三区在线 | 在线观看亚洲电影 | 狠狠激情中文字幕 | 欧美日韩视频在线 | 国产自产在线视频 | 中文字幕在线免费观看视频 | 色综合久久久久综合 | 国产91粉嫩白浆在线观看 | 欧美一区三区四区 | 欧美国产日韩一区 | 啪啪肉肉污av国网站 | 精品久久久久久亚洲综合网 | 精品免费在线视频 | 天天天天色综合 | 久久精品电影网 | 天堂v中文 | 手机色在线 | av在线网站观看 | 日本三级香港三级人妇99 | 欧美日本啪啪无遮挡网站 | 亚洲国产欧美在线人成大黄瓜 | 欧美性护士 | 亚洲v欧美v国产v在线观看 | 日韩精品视频在线观看网址 | 天天操·夜夜操 | av丝袜美腿 | 国产一级二级在线 | 欧美色一色 | 黄色亚洲片 | 激情狠狠干 | 欧美 日韩 国产 成人 在线 | 国产精品嫩草影院99网站 | 又黄又爽又刺激 | 久久精品网站免费观看 | 91av在| 三级黄色三级 | 亚洲在线成人精品 | 久久av观看 | 亚洲码国产日韩欧美高潮在线播放 | 亚洲精品国产拍在线 | 久久狠狠婷婷 | 欧美永久视频 | 综合色婷婷 | 免费日韩av电影 | 久久久久免费精品国产小说色大师 | 美女视频久久久 | 久草热久草视频 | www.国产高清| 手机av观看 | 天天做天天爽 | 91秒拍国产福利一区 | 人人澡人人爱 | 综合网色 | 欧美巨大荫蒂茸毛毛人妖 | 国产剧情一区二区在线观看 | 亚洲最大免费成人网 | 97色综合 | 久久爽久久爽久久av东京爽 | 久久国产综合视频 | 免费日韩在线 | 丁香婷婷综合五月 | 国产专区视频在线观看 | 豆豆色资源网xfplay | 99精品视频在线播放观看 | 欧美一区中文字幕 | 亚洲欧洲久久久 | 日韩av高清 | 97碰视频| 伊人久久影视 | 亚洲国产日韩精品 | 中文字幕一区二区三区精华液 | 久草电影免费在线观看 | 911香蕉视频 | 久久精品国产免费 | 国产成人精品久久久久 | 成年人免费在线看 | 午夜精品999| 日韩精品一区电影 | 亚洲视频网站在线观看 | 丁香婷婷激情网 | 成片免费| 天天摸天天舔天天操 | 色欧美成人精品a∨在线观看 | 国产一区二区视频在线播放 | 天天干天天拍天天操 | 亚洲综合成人专区片 | 久久一线 | 99re久久精品国产 | 亚洲精品久久在线 | 免费观看一级成人毛片 | 一区二区三区在线免费 | 九九久久久久久久久激情 | 99久久夜色精品国产亚洲96 | 日韩在线免费看 | 99草视频 | 久久精品毛片基地 | 日韩成人免费电影 | 四虎成人免费观看 | 婷婷丁香六月天 | 18性欧美xxxⅹ性满足 | 日韩伦理片一区二区三区 | 亚洲激情中文 | 日韩欧美在线影院 | 中文字幕永久免费 | 免费av大片 | 免费在线观看视频一区 | 黄色一级动作片 | 射久久 | 香蕉色综合 | 久久99精品国产91久久来源 | 黄色av电影网 | 久久精品久久99 | 久久综合影视 | 亚洲精品18日本一区app | 免费在线色电影 | 精品一区精品二区高清 | 最新国产视频 | 天天爱天天草 | 中文字幕免费在线看 | 欧美一区二区三区在线观看 | 成人国产精品 | 福利视频网址 | 亚洲欧美国产精品18p | 成人欧美在线 | 1000部18岁以下禁看视频 | 国产亚洲成av片在线观看 | 成年人免费在线观看网站 | 精品电影一区二区 | 日韩视频三区 | 久久综合久久综合久久 | 久久国际影院 | 欧美亚洲三级 | 中文字幕在线视频一区二区三区 | 天天综合久久 | 久久免费精品一区二区三区 | 国产精品成人一区 | 婷婷六月激情 | 亚洲欧洲av | 黄在线免费观看 | 久久综合干| 91色欧美 | 国产在线色 | 91在线免费播放 | 国产一区久久久 | 精品国产乱码久久久久久浪潮 | 午夜精品福利一区二区三区蜜桃 | 欧美一区二区三区在线观看 | 国产精品一区二区中文字幕 | 精品在线看 | 亚洲午夜久久久久久久久久久 | 久久99网 | 91插插视频| 国产高清专区 | 成人在线视频免费 | 在线观看国产www | 色婷婷av一区二 | 99久久精| 欧美一级特黄aaaaaa大片在线观看 | 91成品人影院 | 欧美日韩视频一区二区三区 | 激情五月婷婷综合 | 欧美成人手机版 | 日韩av中文 | 99精品国产一区二区 | 国产一区 在线播放 | 人人爽人人爽人人爽学生一级 | 亚洲国产欧洲综合997久久, | 日本xxxx裸体xxxx17 | 中文字幕 国产专区 | 国产一级视屏 | 精品亚洲欧美无人区乱码 | 国产精品久久久久久久久久免费 | 国产在线精品国自产拍影院 | 亚洲国产激情 | 国产免费区 | 黄色亚洲| 欧美一级视频免费 | 亚洲香蕉视频 | 五月天激情视频在线观看 | www.国产视频 | 天天色天天综合网 | 日本在线观看一区二区三区 | 国产破处在线视频 | 免费看的黄色网 | 成人免费网站在线观看 | 日韩午夜av电影 | 久久国产精品视频 | 日韩在线观看中文字幕 | 国产区高清在线 | 亚洲黄色成人 | 伊人中文网| 天天插狠狠干 | 日韩午夜电影院 | 亚洲国产电影在线观看 | 中文字幕 影院 | 色综合a| 在线精品在线 | 久久久www成人免费毛片麻豆 | 婷婷综合 | 亚洲精品乱码久久久久久蜜桃不爽 | 免费av影视| 伊人在线视频 | 久久撸在线视频 | 日韩av一区二区在线 | 久久久久影视 | 国产剧情一区二区在线观看 | 国产高清福利在线 | 色视频在线看 | 开心丁香婷婷深爱五月 | 91亚洲综合| 4438全国亚洲精品观看视频 | 麻豆影视在线播放 | 韩日精品视频 | 久久视频免费在线观看 | 国产中出在线观看 | 奇米四色影狠狠爱7777 | 国产欧美精品在线观看 | 欧美一级免费黄色片 | 久久久69 | 国产黄网站在线观看 | 国产精品ⅴa有声小说 | 日韩黄色av网站 | 麻豆免费在线视频 | 天天干,天天射,天天操,天天摸 | 久久成人麻豆午夜电影 | 视频三区在线 | 天天插日日插 | 国产视频久久久 | 伊人导航 | 99精品视频在线观看播放 | 日韩av免费观看网站 | 在线观看中文字幕av | 久久99国产精品自在自在app | 免费在线观看污网站 | 91久久国产露脸精品国产闺蜜 | 麻豆精品国产传媒 | 色综合网在线 | 国产91对白在线播 | 精品在线观看一区二区 | 亚洲 成人 一区 | 久久久99精品免费观看乱色 | 久久草在线精品 | 色操插 | 中文字幕亚洲在线观看 | 久久久久亚洲精品 | 欧美激情操 | 国产在线免费 | 伊人丁香 | 五月综合婷| 欧美日韩一区二区久久 | 国产人成在线观看 | 亚洲免费公开视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 免费日韩电影 | 91精品专区 | 亚洲成人黄色网址 | 四虎影视成人精品 | 日韩 精品 一区 国产 麻豆 | 特级西西444www大精品视频免费看 | 99在线观看免费视频精品观看 | 国产精品一区一区三区 | 欧美吞精| 正在播放一区二区 | 久99久精品视频免费观看 | 91精品国产乱码 | 国产精品久久久久久久久久免费看 | 在线免费三级 | 久久视频99| 国产 在线 高清 精品 | 日本三级人妇 | 91久久爱热色涩涩 | 亚洲精品国产精品国 | 999色视频 | 99久久久久久久久久 | 国产一区福利在线 | 久久99国产综合精品 | 最近日韩中文字幕中文 | 欧美激情在线看 | 中文字幕永久在线 | 一级性生活片 | 欧美成人区 | 亚洲精品乱码久久久久久9色 | 人人爱天天操 | 色综合婷婷久久 | 色综合婷婷 | 2021国产视频 | 天天操网站 | 在线看一区 | 高清日韩一区二区 | av三级在线免费观看 | 高清久久久 | 日本久久中文 | 少妇av片 | 激情久久综合网 | 亚洲一级二级三级 | 亚洲精品88欧美一区二区 | 五月婷婷丁香网 | 国产精品成人品 | 在线观看自拍 | 日日草天天干 | 亚洲美女视频在线 | 人人草人 | 91成人观看| 欧美日韩高清一区二区三区 | 制服丝袜在线 | 精品国产1区二区 | 亚洲日本韩国一区二区 | 欧洲在线免费视频 | 日本黄色片一区二区 | 久久人人插 | 91手机电影 | av免费在线观看网站 | 中文字幕av最新更新 | 一区二区三区在线观看免费视频 | 久久人人爽人人爽人人片 | 欧美日韩91 | 欧美日韩中文在线 | 成人91在线观看 | 黄色国产区 | 伊人视频 | 欧产日产国产69 | 国产精品免费视频网站 | 精品久久久久国产免费第一页 | 久久免费国产电影 | 国内精品久久久久久久久久久 | 久久影院精品 | 欧美日韩a视频 | 涩涩网站在线看 | 日韩成人欧美 | 天天五月天色 | 丁香激情五月婷婷 | 国产电影黄色av | 福利视频第一页 | www.久久91| 久久久久久久影视 | 天堂在线视频中文网 | 日本中文在线 | 欧美婷婷色 | 99久久99久久精品免费 | 永久精品视频 | 婷婷五月情 | 国产精品美乳一区二区免费 | 黄av免费 | 久久视频网址 | 黄色a一级片| 精品电影一区 | 一区二区三区国产精品 | 国产中文视频 | 国产精品福利久久久 | 精品少妇一区二区三区在线 | av爱干| 成人免费视频播放 | 四虎精品成人免费网站 | 天天天综合 | 久久国产精品99久久久久久进口 | 97国产在线视频 | 九9热这里真品2 | 亚洲a在线观看 | 亚洲成av人影院 | 99久久99热这里只有精品 | 在线中文字幕网站 | 正在播放亚洲精品 | 成人精品国产 | 国产操在线| 精品久久久国产 | 在线视频你懂得 | 黄视频网站大全 | 成人免费在线播放视频 | 亚洲精品资源在线观看 | 亚洲欧洲国产精品 | 中文国产成人精品久久一 | 天天综合区 | 成人免费在线播放视频 | 日韩1页 | 国产99一区视频免费 | 手机在线永久免费观看av片 | 91免费版在线 | 97精品久久 | 超碰在线观看97 | 99综合电影在线视频 | 天天操人 | 久热超碰 | 在线观看国产91 | 伊人狠狠色丁香婷婷综合 | 日韩在线观看第一页 | 亚洲无人区小视频 | 久久国产精品第一页 | 99精品免费久久久久久久久 | 在线视频1卡二卡三卡 | 中文字幕亚洲高清 | 日韩av在线免费播放 | 国产精品久久伊人 | 久久久久久美女 | 九九九热精品免费视频观看网站 | 天天操天天能 | 日韩中文免费视频 | 成 人 黄 色 免费播放 | 国产精品女同一区二区三区久久夜 | 成全免费观看视频 | 日韩美av在线 | 午夜手机电影 | 91成人精品一区在线播放69 | 成人综合婷婷国产精品久久免费 | 中文字幕日韩有码 | 日日操操| 国产色视频一区 | 国产精品精品国产婷婷这里av | 99r精品视频在线观看 | 在线观看亚洲精品视频 | www.五月天婷婷 | av免费电影在线观看 | 69国产盗摄一区二区三区五区 | 美女黄色网在线播放 | 欧美一区日韩一区 | 日韩中文字幕第一页 | 久久婷婷国产 | 日本性动态图 | 成人av在线看 | 国产视频精选在线 | 精品福利在线视频 | 一区二区在线电影 | 伊人五月天.com | 五月婷婷一区二区三区 | 久久久久久电影 | 亚洲免费婷婷 | 国内久久精品视频 | 欧美一级免费在线 | 久久久www免费电影网 | 99视频在线免费播放 | 欧美日韩一二三四区 | 亚洲第一av在线 | 日韩高清免费无专码区 | 一区二区不卡高清 | 国产精品久久久久久av | 九九色综合 | 91欧美视频网站 | 亚洲视屏 | 五月天天色 | 一本大道久久精品懂色aⅴ 五月婷社区 | 午夜神马福利 | 亚洲精品免费看 | 久久久久久久久毛片 | 特级a老妇做爰全过程 | 国产一区二区三精品久久久无广告 | 日韩在线观看免费 | 99视频在线观看免费 | 日韩欧美高清免费 | 色婷婷av在线 | 日本久久91 | 深夜免费小视频 | 国产小视频在线免费观看 | 色婷婷电影网 | 久久国产精品一区二区三区四区 | 日本三级吹潮在线 | 亚洲精品高清在线观看 | 91九色网站 | 国产精品6999成人免费视频 | 激情深爱五月 | 日韩一级电影在线观看 | 国产片网站 | 精品美女久久久久久免费 | 日韩免费高清在线观看 | 夜夜躁日日躁狠狠久久88av | 97电影手机 | 日本中文字幕电影在线免费观看 | 最新精品视频在线 | 亚洲精品伦理在线 | 在线视频日韩欧美 | 国产精品门事件 | 婷婷色中文字幕 | 中文字幕永久在线 | 日韩av男人的天堂 | 日本丶国产丶欧美色综合 | 99爱在线 | 黄免费在线观看 | 欧美久久久久久久久 | 国产一区在线看 | 97国产精品久久 | 麻豆一区二区 | 国产视频中文字幕 | 免费人成在线观看 | 天天干天天做 | 99精品视频在线观看播放 | 婷婷综合久久 | 99色婷婷 | 久久在线精品 | 色婷婷啪啪免费在线电影观看 | 亚洲天堂激情 | 亚洲粉嫩av | 国产一区麻豆 | 麻豆国产精品永久免费视频 | 毛片www| 久久久久综合精品福利啪啪 | 99久久精品免费看国产一区二区三区 | 亚洲va综合va国产va中文 | 日韩视频免费在线 | 国产视频精品久久 | 日韩av在线网站 | 韩国av电影在线观看 | 波多野结衣综合网 | 国产精品成人一区二区 | 国产不卡在线播放 | 久久精品99北条麻妃 | 在线观看网站你懂的 | 在线观看日本韩国电影 | 在线天堂8√ | 97精品国产97久久久久久 | 日韩视频免费观看高清 | av免费播放 | 精品国产aⅴ麻豆 | 久久久久久久久毛片精品 | 成人全视频免费观看在线看 | 97超碰伊人 | 伊人伊成久久人综合网站 | 日韩最新av | 9992tv成人免费看片 | 久久久免费少妇 | 亚洲日本在线视频观看 | 超碰在线1| 久久69精品久久久久久久电影好 | 中文字幕亚洲五码 | 久久久观看 | 91精品一区二区三区蜜桃 | 天天爽天天爽 | 欧美天天射 | 免费毛片aaaaaa | 亚洲国产精品va在线 | 国产在线观看你懂得 | 91综合视频在线观看 | 欧洲视频一区 | 久久久久久欧美二区电影网 | 久久精品网站免费观看 | 欧美一区二视频在线免费观看 | 久久国产精品一区二区三区 | 亚洲精品国产区 | 久久精品国产免费 | 欧美最猛性xxxxx免费 | 啪啪免费试看 | 97电影在线 | 五月激情视频 | 国产欧美精品在线观看 | 亚洲欧美在线综合 | 国产成人一区二区三区 | 中文在线免费观看 | 日韩在线观看你懂得 | 精品日本视频 | 中文字幕高清在线 | 欧美性超爽 | 激情丁香婷婷 | 久久久网 | 美女精品国产 | 日本中文字幕在线视频 | 久久久片 | 国产精品久久久精品 | 2019天天干夜夜操 | 人人爽人人香蕉 | 国产视频精品免费 | 99精品影视 | 最新av网站在线观看 | 久久综合九九 | 一区二区三区动漫 | 国产精品av在线免费观看 | 国产69精品久久app免费版 | 久久久色| 国产一区在线播放 | 五月天色婷婷丁香 | 国产欧美精品一区二区三区四区 | 亚洲91av| 国产精品剧情 | 夜夜夜夜夜夜操 | 天天·日日日干 | 五月天色综合 | 一区二区三区中文字幕在线观看 | 欧美精品一级视频 | 欧美成年网站 | 国产精品久久久久久久久婷婷 | 97在线观视频免费观看 | 日韩中文字幕视频在线观看 | 美女免费电影 | 五月婷婷丁香色 | www黄在线 | www.色综合.com | 国产亚洲aⅴaaaaaa毛片 | 婷婷精品进入 | 久久超 | 色综合久久88 | 一级一片免费视频 | 在线免费日韩 | 久久久久久久网站 | 伊人日日干 | 午夜91在线 | 亚洲精品欧美成人 | 色婷婷六月| 日本公妇在线观看高清 | 丝袜美女视频网站 | 91cn国产在线| 69av国产| 天天天在线综合网 | 日韩欧美在线影院 | 五月婷婷在线观看视频 | 免费色网 | 成人免费 在线播放 | 国产婷婷精品 | 午夜12点 | 精品国内自产拍在线观看视频 | 欧美日韩色婷婷 | 天天爱天天舔 | 午夜精品在线看 | 91香蕉视频 mp4 | 成人在线免费视频观看 | 久久综合九色欧美综合狠狠 | 久草在线免费看视频 | 亚洲精品午夜久久久 | 99国内精品久久久久久久 | 五月婷婷一区二区三区 | www色,com| 日韩在线观看一区二区 | 欧美经典久久 | 久久亚洲国产精品 | 中文字幕亚洲欧美日韩2019 | 免费网站色 | 国产五月天婷婷 | 亚洲精品视频免费在线 | 日韩欧美在线第一页 | 久久亚洲在线 | 欧美高清成人 | 国产中年夫妇高潮精品视频 | 日韩一区二区免费播放 | 日本久久久久久久久久久 | 国产精品一区二区三区在线看 | 国产亚洲人成网站在线观看 | 日韩两性视频 | 9色在线视频 | 色婷婷影视| 久久电影网站中文字幕 | 国产综合小视频 | www.一区二区三区 | 欧美日韩天堂 | 91传媒免费观看 | 五月天com| 久久字幕网 | 免费欧美高清视频 | 黄色片免费在线 | 国内成人精品视频 | 色亚洲网 | 狠狠操狠狠操 | 99这里只有久久精品视频 | 国产永久免费观看 | 免费又黄又爽视频 | 日韩av福利在线 | 中文字幕亚洲精品日韩 | 国产中文字幕免费 | 国色天香永久免费 | 日韩高清免费无专码区 | 国产人成看黄久久久久久久久 | 欧美精品久久久久久久久老牛影院 | 国产精品视频永久免费播放 | 日韩午夜电影院 | 国产视| 日日草天天干 | 99视频播放 | 91精品小视频 | 国产亚洲综合性久久久影院 | 成人h视频 | 亚洲国产精品久久久久 | 日韩一区二区三区免费视频 | 日本精品一区二区三区在线观看 | 黄色成人小视频 | 国内外成人在线视频 | 亚洲欧美日韩国产 | 免费在线黄色av | 色综久久| 日韩一级片网址 | 日韩成人精品一区二区三区 | 久草视频在线新免费 | 97香蕉超级碰碰久久免费软件 | 欧美 亚洲 另类 激情 另类 | 爱爱av网站 | 色婷婷九月 | 一区二区三区视频网站 | 欧美在线观看视频 | 国产亚洲精品久久久久久网站 | 成人免费网站视频 | a成人在线| 九九热视频在线播放 | 中午字幕在线观看 | 国产成人在线免费观看 | 最近字幕在线观看第一季 | 天天拍天天操 | 人成电影网 | 99在线免费视频 | 西西大胆啪啪 | 亚洲最新精品 | avsex| 亚洲三区在线 | 久久人人添人人爽添人人88v | 日本黄色免费播放 | 91伊人久久大香线蕉蜜芽人口 | 免费久久网站 | 国产精久久久久久妇女av | 免费观看午夜视频 | 日韩午夜av | 精品电影一区 | 成人av免费在线 | 久久精品首页 | 在线一二三四区 | 国产亚洲字幕 | 久久久久高清毛片一级 | 久久一区二区三区超碰国产精品 | 午夜精品一区二区三区免费 | 国产精品xxxx18a99 | 亚洲有 在线 | 91在线视频观看免费 | 日韩欧美69 | 日韩免费播放 | 国产一级在线观看视频 | 国产精品久久久久久久午夜片 | 婷香五月 | 日本成人中文字幕在线观看 | 五月天av在线 | 91国内产香蕉 | 国产九九热视频 | 国产精品久久久久久久久岛 | 国产剧情在线一区 | 欧洲一区精品 | 免费黄色在线 | 国产精品久久久久av免费 | 天天草天天摸 | 亚洲欧美成人综合 | 中文字幕国产 | 一级欧美一级日韩 | 国产+日韩欧美 | 日韩在线观看一区二区 | 色婷五月天| 色香天天| 国产网红在线观看 | 久久综合偷偷噜噜噜色 | 精品在线观看免费 | 国产一级精品在线观看 | 成人免费一区二区三区在线观看 | 色综合天天视频在线观看 | 中文电影网 | 久久久黄色av | 天天操天天曰 | 亚洲精品视频免费在线 | 亚洲综合色婷婷 | 最新色视频| 国产精品免费在线播放 | 日本中文字幕免费观看 | 9999在线观看 | 99国产视频在线 | 国产91精品一区二区麻豆亚洲 | 亚洲精品乱码久久久久久写真 | 99综合视频 | 密桃av在线 | 欧美性脚交| av怡红院 | 91丨九色丨国产丨porny精品 | 九九久久视频 | 精品亚洲一区二区 | 免费观看9x视频网站在线观看 | 国产中文字幕三区 | 国产高清免费在线观看 | 天堂资源在线观看视频 | www色网站 | 色综合天天综合网国产成人网 | 永久av免费在线观看 | 在线视频你懂得 | 欧美日韩一区二区在线观看 | 91桃色在线观看视频 | 狠狠五月天 | 免费aa大片 | 人人干人人做 | 久久综合九色欧美综合狠狠 | 婷婷去俺也去六月色 | 亚洲九九九在线观看 | 免费观看午夜视频 | 在线天堂中文在线资源网 | 亚洲撸撸| 香蕉视频网站在线观看 | 国产黄色观看 | 在线观看黄色 | 日本xxxx裸体xxxx17 | 在线中文字幕网站 | 性日韩欧美在线视频 | 欧美日韩中文在线 | 国产精品久久久久久av | 911免费视频 | 久久不射电影院 | 亚洲最快最全在线视频 | 狠狠干网| 麻豆国产在线播放 | 国产成人亚洲精品自产在线 | 丁香激情视频 | 超碰免费在线公开 | 亚洲精品免费在线观看视频 | 日韩爱爱网站 | 亚洲精品中文在线观看 | adn—256中文在线观看 | 久久精品电影网 | 天天干天天摸天天操 | 久久成人欧美 | 日韩av三区| av中文天堂| 中文字幕在线观看1 | 久久国产精品二国产精品中国洋人 | 久久精品99北条麻妃 | 玖玖在线视频观看 | 天海冀一区二区三区 | 亚洲精品久 | 伊人日日干 | 久久久精品一区二区三区 | 欧美资源 | 久久激情日本aⅴ | 999视频网 | av在线一 | 日韩在线网址 | 激情综合国产 | 欧美综合久久 | 婷婷激情影院 | 久久高清| 男女精品久久 | 国产美女网 | 日本高清中文字幕有码在线 | 黄色亚洲片 | 欧美日韩高清免费 | 美女视频黄免费的 | 正在播放一区二区 | 日本久草电影 | 综合激情网 | 免费看国产a | 欧美午夜精品久久久久久孕妇 | 久草视频在 | 精品一区在线 | 国产九九在线 | 久久免费黄色网址 | 久久99国产综合精品 | 国产精品久久久久久久午夜 | 国产免费观看久久 | 一区二区三区在线免费播放 | 天天干天天插 | 九精品 | 91在线日韩| 精品视频亚洲 | 国产精品麻豆免费版 | 国产精品国产三级国产专区53 | 婷婷六月综合网 | japanesexxx乱女另类 | 亚洲第一色 | 欧美坐爱视频 | 手机在线免费av | 国产99久久久国产 | 精品国自产在线观看 | 摸阴视频 | 日本久久免费电影 | 亚洲精品午夜视频 | 天堂素人在线 | 日韩av一区二区三区在线观看 | 草久久久 | 在线观看精品 | 亚洲女同ⅹxx女同tv | 亚洲草视频 | 国语黄色片 | 中文字幕亚洲在线观看 | 五月婷网站 | 日韩欧美在线免费观看 | 婷婷精品国产一区二区三区日韩 | 免费黄在线看 | 婷婷综合亚洲 | 永久免费毛片 | 九九免费观看视频 | 国产麻豆精品一区二区 | 国产精品久久久久久一二三四五 | 久久久久久久国产精品 | 国产精品欧美一区二区三区不卡 | 欧美与欧洲交xxxx免费观看 | 一级黄色视屏 |