久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

万字长文 | 漫谈libco协程设计及实现

發(fā)布時(shí)間:2024/2/28 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万字长文 | 漫谈libco协程设计及实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.




libco簡(jiǎn)介

libco是微信后臺(tái)大規(guī)模使用的c/c++協(xié)程庫(kù),2013年至今穩(wěn)定運(yùn)行在微信后臺(tái)的數(shù)萬(wàn)臺(tái)機(jī)器上,使得微信后端服務(wù)能同時(shí)hold大量請(qǐng)求,被譽(yù)為微信服務(wù)器穩(wěn)定性的基石。libco在2013年的時(shí)候作為騰訊六大開源項(xiàng)目首次開源。libco源碼地址。


libco首先能解決CPU利用率與IO利用率不平衡,比用多線程解決IO阻塞CPU問題更高效。因?yàn)橛脩魬B(tài)協(xié)程切換比線程切換性能高:線程切換保存恢復(fù)的數(shù)據(jù)更多,需要用戶態(tài)和內(nèi)核態(tài)切換。其次libco又避免了異步調(diào)用和回調(diào)分離導(dǎo)致的代碼結(jié)構(gòu)破碎。


libco采用epoll多路復(fù)用使得一個(gè)線程處理多個(gè)socket連接,采用鉤子函數(shù)hook住socket族函數(shù),采用時(shí)間輪盤處理等待超時(shí)事件,采用協(xié)程棧保存、恢復(fù)每個(gè)協(xié)程上下文環(huán)境。


為了讓大家更容易閱讀libco源碼,本文以源碼為主介紹libco,內(nèi)容偏底層細(xì)節(jié)。更多個(gè)人文章,歡迎關(guān)注作者博客。


設(shè)計(jì)思想

1.?協(xié)程切換

1.1?函數(shù)棧

首先復(fù)習(xí)下進(jìn)程的地址空間,如圖1所示,與本文相關(guān)的有代碼段、堆、棧。代碼段包含應(yīng)用程序的匯編代碼,指令寄存器eip存的是代碼段中某一條匯編指令地址,cpu從eip中取出匯編指令的地址,并在代碼段中找到對(duì)應(yīng)匯編指令開始執(zhí)行。CPU執(zhí)行指令時(shí)在棧里存參數(shù)、局部變量等數(shù)據(jù)。代碼通過malloc、new在堆上申請(qǐng)內(nèi)存空間。

圖1


圖2所示C代碼,通過gcc -m32 test.c -o test.o在i386下編譯,然后執(zhí)行g(shù)db test.o。disas main可看到圖3所示的main函數(shù)匯編碼,disas sum可看到圖4所示sum函數(shù)的匯編代碼。調(diào)用sum時(shí),main和sum的函數(shù)棧如圖5所示。圖5的表共有兩列,第一列為內(nèi)存地址,第二列為該地址存的內(nèi)容,除了用“...”省略的內(nèi)存地址,其他每一行均比上一行低4byte,因?yàn)闂5刂窂母叩降驮鲩L(zhǎng)。


從圖5可以看出:一,每個(gè)函數(shù)的棧在ebp棧底指針和esp棧頂指針之間;二,存在調(diào)用關(guān)系的兩個(gè)函數(shù)的棧內(nèi)存地址是相鄰的;三,ebp指針指的位置存儲(chǔ)的是上級(jí)函數(shù)的ebp地址,例如sum的ebp 0xffffd598位置存的是main的ebp0xffffd5c8,目的是sum執(zhí)行后可恢復(fù)main的ebp,而main的esp可通過sum的ebp + 4恢復(fù);四,sum的ebp + 4位置,即main的esp位置存的是sum執(zhí)行后的返回地址0x08048415,該地址不在圖1中的棧(Stack)里,而在圖1中的代碼段里,sum執(zhí)行后,leave指令恢復(fù)ebp、esp,ret指令將esp處的內(nèi)容0x08048415放到寄存器eip,cpu從eip里取出下一條待執(zhí)行的指令地址,并根據(jù)指令地址從代碼段里獲取指令執(zhí)行;五,sum的參數(shù)y、x按高地址到低地址,依次存在sum的ebp + 12、ebp + 8位置處。


圖2


圖3 main函數(shù)匯編碼


圖4 sum函數(shù)匯編碼


圖5 32位系統(tǒng)函數(shù)棧


1.2?協(xié)程棧

共享?xiàng)O挛慕榻B,此處介紹非共享?xiàng)!T诜枪蚕項(xiàng)DJ较?#xff0c;每個(gè)非主協(xié)程有自己的棧,而該棧是在堆上分配的,并不是系統(tǒng)棧,但主協(xié)程的棧仍然是系統(tǒng)棧,每?jī)蓚€(gè)協(xié)程的棧地址不相鄰。協(xié)程棧切換分為第1次、第k次(k>=2)換到目的協(xié)程TargetCoroutine。


因?yàn)橹鲄f(xié)程即當(dāng)前線程的第1次運(yùn)行是系統(tǒng)調(diào)度的,后續(xù)才由用戶調(diào)度,而非主協(xié)程每次都由用戶調(diào)度。所以每次主協(xié)程切回的行為都一樣,且和非主協(xié)程第k次(k>=2)的切回行為一致。


第1次切到TargetCoroutine之前, coctx_make(圖6)將函數(shù)地址pfn寫入?yún)f(xié)程變量regs[ kEIP ],pfn即為CoRoutineFunc的指針。CoRoutineFunc函數(shù)(圖7)在第448行調(diào)進(jìn)用戶自定義的協(xié)程函數(shù)UserCoRoutineFunc(圖8)。圖6中ss_sp為128K協(xié)程棧低地址,ss_size為128K將ss_sp+ss_size – sizeof(coctx_param_t)–sizeof(void*)作為esp開始位置,記錄在regs[kESP]。因?yàn)闂母叩降驮鲩L(zhǎng),所以真正的棧空間從高地址ss_sp + ss_size?– sizeof(void*) – sizeof(coctx_param_t)增長(zhǎng)到低地址ss_sp。這部分空間雖然是協(xié)程棧,但實(shí)際是通過stack_mem->stack_buffer= (char*)malloc(stack_size)申請(qǐng)的堆空間。CoRoutineFunc、其調(diào)用的函數(shù)、其調(diào)用的函數(shù)再調(diào)用的函數(shù)…的函數(shù)棧均在該128K的堆空間里。

圖6


圖7


圖8

?

第1次切換到TargetCoroutine時(shí)。圖9第50行將esp指向TargetCoroutine.coctx_t.regs,此時(shí)esp指向的地址如圖10所示。第54行從regs[0]彈出返回地址,即CoRoutineFunc函數(shù)地址0x08043212。第65行彈出esp地址即ss_sp+ss_size–sizeof(coctx_param_t)–sizeof(void*)。第67行pushl %eax做兩件事情:

一,將esp地址減4,即esp = ss_sp + ss_size – sizeof(coctx_param_t) – sizeof(void*) – 4;

二,在esp新位置壓入CoRoutineFunc函數(shù)地址。第71行ret從esp取出CoRoutineFunc函數(shù)地址放入eip寄存器,cpu從eip寄存器取出CoRoutineFunc函數(shù)第一條指令地址開始執(zhí)行指令,CoRoutineFunc函數(shù)第一條指令的地址就是CoRoutineFunc函數(shù)地址。


圖6中沒有對(duì)regs[kEBP]賦初值,因此切到TargetCoroutine時(shí)彈出的ebp是0,導(dǎo)致CoRoutineFunc函數(shù)棧存的上級(jí)函數(shù)的ebp是0,但沒有影響。CoRoutineFunc(圖7)只能執(zhí)行到第454行:co_yield_env(env),然后切到其他協(xié)程,不會(huì)執(zhí)行到456行。上級(jí)函數(shù)的ebp是在CoRoutineFunc執(zhí)行后,用于恢復(fù)上級(jí)函數(shù)的esp,但在這里CoRoutineFunc函數(shù)在return 0之前已經(jīng)切到其他協(xié)程,因此上級(jí)函數(shù)的ebp是0不會(huì)導(dǎo)致錯(cuò)誤。

圖9


圖10?第1次切到TargetCoroutine


TargetCoroutine在第k-1次被coctx_swap切出時(shí),TargetCoroutine是圖2.3.2.4的源協(xié)程curr。切出TargetCoroutine時(shí)會(huì)調(diào)進(jìn)coctx_swap,在執(zhí)行圖9第34行之前,函數(shù)棧如圖11所示。然后將co_swap(注意不是coctx_swap,因?yàn)檫@里沒有像圖4的第3、4、5行修改ebp和esp)棧頂?shù)刂?#43;4即0xffd2dc14通過第38行寫入到regs[kESP]。將co_swap(不是coctx_swap,原因同上)棧底地址ebp即0xffd2dc3c通過第40行寫入regs[kEBP]。將stCoRoutineEnv_t* curr_env = co_get_curr_thread_env()的第一條匯編指令地址0x08043212通過第47行寫入regs[ kEIP ]。此時(shí)regs數(shù)組內(nèi)容如圖12所示,在此期間esp的變化如圖12左側(cè)所示。

圖11 co_swap函數(shù)棧


圖12?第k(k>=2)次切到TargetCoroutine


第k(k>=2)次切回TargetCoroutine時(shí),圖9第54行彈出eax,即stCoRoutineEnv_t* curr_env = co_get_curr_thread_env()的第一條匯編指令地址0x08043212。第61行彈出ebp即圖2.3.2.6所示的0xffd2dc3c。圖2.3.2.4第65行彈出esp,即圖11所示的0xffd2dc14(不是0xffd2dc10,因?yàn)閳D2.3.2.4第38行的壓入的eax是0xffd2dc10 + 4)。第67行做兩件事情,首先esp減4得到切出時(shí)的棧地址0xffd2dc10,再將eax存的匯編指令地址0x08043212寫到esp即0xffd2dc10處。最后ret從esp取出匯編指令地址0x08043212放入eip寄存器,cpu從eip寄存器取出指令地址開始執(zhí)行指令。因?yàn)門argetCoroutine切回時(shí),首先執(zhí)行 stCoRoutineEnv_t*? curr_env=co_get_curr_thread_env(),而TargetCoroutine在之前切出時(shí),最后執(zhí)行的代碼是coctx_swap(&(curr->ctx),&(pending_co->ctx) ),因此協(xié)程在切回后能接著之前切出時(shí)的代碼繼續(xù)執(zhí)行。


對(duì)比圖10和12發(fā)現(xiàn):第1次切到TargetCoroutine時(shí)ebp、esp、返回地址、以及其他寄存器和第k(k>=2)次均不同。


libco在stCoRoutineEnv_t定義了pCallStack數(shù)組,大小為128,數(shù)組里的每個(gè)元素均為協(xié)程。pCallStack用于獲取當(dāng)前協(xié)程pCallStack[iCallStackSize - 1];獲取當(dāng)前協(xié)程掛起后該切到的協(xié)程pCallStack[iCallStackSize - 2]。pCallStack存的是遞歸調(diào)用(暫且稱之為遞歸,并不是遞歸)的協(xié)程,pCallStack[0]一定是主協(xié)程。例如主協(xié)程調(diào)用協(xié)程1,協(xié)程1調(diào)用協(xié)程2...協(xié)程k-1調(diào)用協(xié)程k,這種遞歸關(guān)系的k最大為127,調(diào)到協(xié)程127時(shí),此時(shí)pCallStack[0]存主協(xié)程,pCallStack[1]存協(xié)程1...pCallStack[k]存協(xié)程k..pCallStack[127]存協(xié)程127。但遞歸如此之深的協(xié)程實(shí)際中不會(huì)遇到,更多的場(chǎng)景應(yīng)該是主協(xié)程調(diào)用協(xié)程1,協(xié)程1掛起切回主協(xié)程,主協(xié)程再調(diào)用協(xié)程2,協(xié)程2掛起切回主協(xié)程,主協(xié)程再調(diào)用協(xié)程3...因此主協(xié)程調(diào)到協(xié)程k時(shí),pCallStack[0]是主協(xié)程,pCallStack[1]是協(xié)程k,其他元素為空;協(xié)程k掛起切回主協(xié)程時(shí),pCallStack[0]是主協(xié)程,其他元素為空。因此128大小的pCallStack足夠上萬(wàn)甚至更多協(xié)程使用。


1.3?主協(xié)程

主協(xié)程即為當(dāng)前線程,用stCoRoutine_t. cIsMain標(biāo)記。主協(xié)程的棧在圖1所示的棧(Stack)區(qū),而其他協(xié)程的棧在圖1所示的堆(Heap)區(qū)。圖9中切出主協(xié)程時(shí)38-47行寄存器存在regs數(shù)組里(不在128K的協(xié)程棧里,另外申請(qǐng)的堆空間)。切回主協(xié)程時(shí),第61、65行彈出的ebp、esp指向的是系統(tǒng)棧里的內(nèi)存,因此主協(xié)程的棧始終在系統(tǒng)棧上,用不到128K的協(xié)程棧。


那是否有必要將當(dāng)前協(xié)程標(biāo)記為主協(xié)程?圖2.1.3.1的第1024、1033行是代碼僅有的兩處需要判斷主協(xié)程。如果聲明了協(xié)程私有變量,但沒有創(chuàng)建其他協(xié)程時(shí),co為NULL,此時(shí)通過1026行獲取主協(xié)程私有變量。但在程序運(yùn)行到某段代碼時(shí)開始創(chuàng)建協(xié)程,如果不標(biāo)記主協(xié)程,因?yàn)閏o不為NULL,代碼會(huì)通過第1028行獲取主協(xié)程私有變量,此時(shí)因?yàn)槟貌坏揭郧霸O(shè)置的主協(xié)程私有變量而導(dǎo)致錯(cuò)誤。例如若將圖2.1.3.1第1024、1033行的co->cIsMain條件刪掉,圖2.1.3.2第24行輸出的主協(xié)程私有變量為11,而第30行輸出0。

圖13


圖14

?

1.4?共享?xiàng)?/strong>

每個(gè)協(xié)程申請(qǐng)一個(gè)固定128K的棧,在協(xié)程數(shù)量很大時(shí),存在內(nèi)存壓力。因此libco引入共享?xiàng)DJ?#xff0c;示例代碼可參看example_copystack.cpp。共享?xiàng)?duì)主協(xié)程沒有影響,共享?xiàng)H匀皇窃诙焉?#xff0c;而主協(xié)程的棧在系統(tǒng)棧上。


采用共享?xiàng)r(shí),每個(gè)協(xié)程的棧從共享?xiàng)?匠鰰r(shí),需要分配空間存儲(chǔ),但按需分配空間。因?yàn)榻^大部分協(xié)程的棧空間都遠(yuǎn)低于128K,因此拷出時(shí)只需分配很小的空間,相比私有棧能節(jié)省大量?jī)?nèi)存。共享?xiàng)?梢灾婚_一個(gè),但為了避免頻繁換入換出,一般開多個(gè)共享?xiàng)!C總€(gè)共享?xiàng)?梢陨暾?qǐng)大空間,降低棧溢出的風(fēng)險(xiǎn)。


假設(shè)開10個(gè)共享?xiàng)?#xff0c;每個(gè)協(xié)程模10映射到對(duì)應(yīng)的共享?xiàng)!<僭O(shè)協(xié)程調(diào)用順序?yàn)橹鲄f(xié)程、協(xié)程2、協(xié)程3、協(xié)程12。協(xié)程2切到協(xié)程3時(shí),因?yàn)閰f(xié)程2、3使用的共享?xiàng)7謩e是第2、3個(gè)共享?xiàng)?#xff0c;沒有沖突,所以協(xié)程2的棧內(nèi)容仍然保留在第2個(gè)共享?xiàng)?#xff0c;并不拷出來(lái),但協(xié)程2的寄存器會(huì)被coctx_swap保存在regs數(shù)組。調(diào)用到協(xié)程12時(shí),協(xié)程12和協(xié)程2都映射到第2個(gè)共享?xiàng)?#xff0c;因此需要將協(xié)程2的棧內(nèi)容拷出,并將協(xié)程12的棧內(nèi)容拷貝到第2個(gè)共享?xiàng)V小K怨蚕項(xiàng)6嗔丝匠鰠f(xié)程2的棧、拷進(jìn)協(xié)程12的棧兩個(gè)操作,即用拷貝共享?xiàng)5臅r(shí)間換取每個(gè)協(xié)程棧的空間。


圖15在609行將curr的stack_sp指向c的地址,記錄當(dāng)前協(xié)程棧的低位置,當(dāng)前協(xié)程棧的高位置是ss_sp + ss_size – sizeof(coctx_param_t) – sizeof(void*),存的是CoRoutineFunc函數(shù)第一條匯編指令。curr協(xié)程拷出協(xié)程時(shí),需要拷貝從curr->stack_sp(即&c)到ss_sp + ss_size?–?sizeof(void*) – sizeof(coctx_param_t)的棧內(nèi)容。以后從其他協(xié)程再切換回curr協(xié)程時(shí),如果共享?xiàng)@镉衏urr協(xié)程,則只通過coctx_swap恢復(fù)寄存器即可;否則如圖15第657行所示,需要將curr保存在curr->save_buffer的協(xié)程棧復(fù)制到從curr->stack_sp到ss_sp + ss_size?– sizeof(void*) – sizeof(coctx_param_t)的內(nèi)存空間。


圖15從curr協(xié)程切到pending_co協(xié)程時(shí),如果是共享?xiàng)DJ?#xff0c;先拿到pending_co的共享?xiàng)tack_mem里已有的協(xié)程occupy_co,如果occupy_co非空且不是pending_co,則保存已有的協(xié)程save_stack_buffer(occupy_co),將stack_mem指向的協(xié)程換為pending_co。并將pending_co和occupy_co均保存在env里,不能用局部變量記錄,因?yàn)榫植孔兞吭赾octx_swap之前屬于curr協(xié)程,但coctx_swap后協(xié)程棧已經(jīng)被切換,curr的所有局部變量無(wú)法被pending_co訪問。如果occupy_co和pending_co不是同一個(gè)協(xié)程,需要將occupy_co在共享?xiàng)@锏臄?shù)據(jù)拷貝到occupy_co->save_buffer。協(xié)程的數(shù)據(jù)除了在棧里還分布在寄存器,如果occupy_co不是curr,則在occupy_co之前被切換到其他協(xié)程時(shí)寄存器已經(jīng)被coctx_swap保存;否則,則其寄存器在本次執(zhí)行coctx_swap被保存。

圖15


1.5?線程切換VS?協(xié)程切換

IO密集時(shí)也可以使用多個(gè)線程。但線程有兩個(gè)不足:一,切換代價(jià)大(保存恢復(fù)上下文、線程調(diào)度);二,占用資源多。


線程往往需要對(duì)公共數(shù)據(jù)加鎖,鎖會(huì)導(dǎo)致線程調(diào)度。因?yàn)橛脩舻木€程是在用戶態(tài)執(zhí)行,而線程調(diào)度和管理是在內(nèi)核態(tài)實(shí)現(xiàn),所以線程調(diào)度需要從用戶態(tài)轉(zhuǎn)到內(nèi)核態(tài),再?gòu)膬?nèi)核態(tài)轉(zhuǎn)到用戶態(tài)。切到內(nèi)核態(tài)時(shí)需要保存用戶態(tài)上下文,再切到用戶態(tài)時(shí),需要恢復(fù)用戶態(tài)上下文,而線程的用戶態(tài)上下文比協(xié)程上下文大得多。另外線程調(diào)度也需要耗時(shí)。


線程棧默認(rèn)為1M大于協(xié)程棧128K,另外線程還需要各種struct存一些狀態(tài),實(shí)測(cè)每個(gè)pthread_create創(chuàng)建的線程大約占8M左右內(nèi)存,因此線程占用資源也遠(yuǎn)比協(xié)程多。

?

2.?協(xié)程控制

2.1 epoll多路復(fù)用IO模型

協(xié)程使用epoll多路復(fù)用IO模型。常見的同步調(diào)用是同步阻塞模型,異步調(diào)用是異步IO模型。以read為例說(shuō)明以下三種IO模型的區(qū)別,read分為兩個(gè)階段:一,等待數(shù)據(jù);二,將數(shù)據(jù)從kernel拷貝到用戶線程。


同步調(diào)用read使用同步阻塞IO,kernel等待數(shù)據(jù)到達(dá),再將數(shù)據(jù)拷貝到用戶線程,這兩個(gè)階段用戶線程都被阻塞。異步調(diào)用read使用異步IO模型,用戶線程調(diào)用read后,立刻可以去做其它事, kernel等待數(shù)據(jù)準(zhǔn)備完成,然后將數(shù)據(jù)拷貝到用戶內(nèi)存,都完成后,kernel通知用戶read完成,然后用戶線程直接使用數(shù)據(jù),兩個(gè)階段用戶線程都不被阻塞。而協(xié)程調(diào)用read使用多路復(fù)用IO模型,用戶線程調(diào)用read后,第一階段也不會(huì)被阻塞,但第二個(gè)階段會(huì)被阻塞,epoll多路復(fù)用IO模型可以在一個(gè)線程管理多個(gè)socket。


同步調(diào)用在兩個(gè)階段都會(huì)阻塞用戶線程,因此效率低。雖然可以為每個(gè)連接開個(gè)線程,但連接數(shù)多時(shí),線程太多導(dǎo)致性能壓力,也可以開固定數(shù)目的線程池,但如果存在大量長(zhǎng)連接,線程資源不被釋放,后續(xù)的連接得不到處理。異步調(diào)用時(shí),因?yàn)閮蓚€(gè)階段都不阻塞用戶線程,因此效率最高,但異步的調(diào)用邏輯和回調(diào)邏輯需要分開,在異步調(diào)用多時(shí),代碼結(jié)構(gòu)不清晰。而協(xié)程的epoll多路復(fù)用IO模型,雖然會(huì)阻塞第二個(gè)階段,但因?yàn)榈诙A段讀數(shù)據(jù)耗時(shí)很少,因此效率略低于異步調(diào)用。協(xié)程最大的優(yōu)點(diǎn)是在接近異步效率的同時(shí),可以使用同步的寫法(僅僅是同步的寫法,不是同步調(diào)用)。例如read函數(shù)的調(diào)用代碼后,緊接著可以寫處理數(shù)據(jù)的邏輯,不用再定義回調(diào)函數(shù)。調(diào)用read后協(xié)程掛起,其他協(xié)程被調(diào)用,數(shù)據(jù)就緒后在read后面處理數(shù)據(jù)。


系統(tǒng)select/poll、epoll函數(shù)都提供多路IO復(fù)用方案,協(xié)程使用的是epoll。select、poll類似,監(jiān)視writefds、readfds、exceptfds文件描述符(fd)。調(diào)用select/poll會(huì)阻塞,直到有fd就緒(可讀、可寫、有except),或超時(shí)。select/poll返回后,通過遍歷fd集合,找到就緒的fs,并開始讀寫。poll用鏈表存儲(chǔ)fd,而select用fd標(biāo)記位存儲(chǔ),因此poll沒有最大連接數(shù)限制,而select限制為1024。select/poll共有的缺點(diǎn)是:一,返回后需要遍歷fd集合找到就緒的fd,但fd集合就緒的描述符很少;二,select/poll均需將fd集合在用戶態(tài)和內(nèi)核態(tài)之間來(lái)回拷貝。epoll的引入是為了解決select/poll上述兩個(gè)缺點(diǎn),epoll提供三個(gè)函數(shù)epoll_create、epoll_ctl、epoll_wait。epoll_create在內(nèi)核的高速cache中建一棵紅黑樹以及就緒鏈表(activeList)。epoll_ctl的add在紅黑樹上添加fd結(jié)點(diǎn),并且注冊(cè)fd的回調(diào)函數(shù),內(nèi)核在檢測(cè)到某fd就緒時(shí)會(huì)調(diào)用回調(diào)函數(shù)將fd添加到activeList。epoll_wait將activeList中的fd返回。epoll_ctl每次只往內(nèi)核添加紅黑樹節(jié)點(diǎn),不需像select/poll拷貝所有fd到內(nèi)核,epoll_wait通過共享內(nèi)存從內(nèi)核傳遞就緒fd到用戶,不需像select/poll拷貝出所有fd并遍歷所有fd找到就緒的。


2.2?非阻塞IO

協(xié)程的epoll多路復(fù)用IO模型使用的是非阻塞IO,發(fā)起read操作后,可立即掛起協(xié)程,并調(diào)度其他協(xié)程。非阻塞IO是通過fcntl函數(shù)設(shè)置O_NONBLOCK,影響socket族read、write、connect、sendto、recvfrom、send、recv函數(shù)。因?yàn)閞ead、recv、recvfrom實(shí)現(xiàn)類似,write、send實(shí)現(xiàn)類似。因此接下來(lái)介紹read、write、connect三個(gè)函數(shù)。


2.2.1 鉤子函數(shù)read

如圖16所示,用戶自定義的read函數(shù)hook住系統(tǒng)read函數(shù)。Read時(shí)分三種情況:一,用戶未開啟hook,直接在337行調(diào)用系統(tǒng)read;二,如果用戶指定了O_NONBLOCK,也直接在343行調(diào)用系統(tǒng)read,此時(shí)是非阻塞的;三,如果用戶既開啟了hook,又沒有指定O_NONBLOCK,如果libco不做任何處理,即使通過353行poll了,但如果協(xié)程是超時(shí)返回,第355行還是會(huì)被阻塞。所以只要用戶開啟hook,socket函數(shù)(圖17)會(huì)在234行調(diào)用fcntl函數(shù),最終調(diào)用圖18的第696行,悄悄的設(shè)置O_NONBLOCK,但user_flag并沒有記錄O_NONBLOCK,這樣即可和第二種情況區(qū)分。然后圖16第353行調(diào)用poll將當(dāng)前協(xié)程掛起,直到有數(shù)據(jù)可讀或者超時(shí),協(xié)程才會(huì)重新調(diào)度。在第二種情況下,不能先將協(xié)程掛起,等待就緒后再切回,因?yàn)橛脩麸@示的設(shè)置O_NONBLOCK是為了立即返回,如果掛起,就緒或超時(shí)后再切回,與用戶需要立即獲得返回結(jié)果的初衷違背。

圖16


圖17


圖18


2.2.2 鉤子函數(shù)write

非阻塞write在發(fā)送緩沖區(qū)沒有空間時(shí)直接返回,發(fā)送緩沖區(qū)有空間時(shí),則拷貝全部或部分(空間不夠)數(shù)據(jù),返回實(shí)際拷貝的字節(jié)數(shù)。


如圖19所示,分三種情況:一,用戶未開啟hook,在372行調(diào)用系統(tǒng)write;二,如果用戶指定了O_NONBLOCK,在378行調(diào)用系統(tǒng)write,此時(shí)是非阻塞的,這種情況與第三種情況區(qū)分的原因見2.2.2.1;三,如果用戶既開啟了hook,又沒有指定O_NONBLOCK,由2.2.2.1可知,libco已悄悄設(shè)置O_NONBLOCK,只要數(shù)據(jù)沒有完全寫入緩沖區(qū),就通過第402行poll將協(xié)程掛起,等待有空余空間喚醒協(xié)程或者超時(shí)喚醒。writeret記錄本次調(diào)用寫入的字節(jié)數(shù),wrotelen記錄總共寫入的字節(jié)數(shù),如果本次寫入沒有空間或出錯(cuò),則直接返回。因?yàn)閣rite明確知道要寫入數(shù)據(jù)的長(zhǎng)度nbyte,而一次可能無(wú)法寫入全部數(shù)據(jù),所以write在while循環(huán)里不斷寫數(shù)據(jù),直到數(shù)據(jù)寫完、寫出錯(cuò),才會(huì)停止寫數(shù)據(jù)。而2.2.2.1的read不知要讀多少數(shù)據(jù),因此讀一次就返回。

圖19


2.2.3 鉤子函數(shù)connect

圖20所示為libco自定義connect函數(shù)片段。如果用戶啟用hook,且未設(shè)置O_NONBLOCK,libco悄悄幫用戶設(shè)置了O_NONBLOCK,但調(diào)用connect后不能立即返回,因?yàn)閏onnect有三次握手的過程,內(nèi)核中對(duì)三次握手的超時(shí)限制是75秒,超時(shí)則會(huì)失敗。libco設(shè)置O_NONBLOCK后,立即調(diào)用系統(tǒng)connect可能會(huì)失敗,因此在圖20中循環(huán)三次,每次設(shè)置超時(shí)時(shí)間25秒,然后掛起協(xié)程,等待connect成功或超時(shí)。

圖20


2.3 epoll激活協(xié)程

協(xié)程hook住了底層socket族函數(shù),設(shè)置了O_NONBLOCK,調(diào)用socket族函數(shù)后,調(diào)用poll注冊(cè)epoll事件并掛起協(xié)程,讓其他協(xié)程執(zhí)行,所有協(xié)程都掛起后通過epoll,在主協(xié)程里檢查注冊(cè)的IO事件,若就緒或超時(shí)則切到對(duì)應(yīng)協(xié)程。


?poll最終會(huì)調(diào)進(jìn)co_poll_inner,圖21、圖22分別為co_poll_inner函數(shù)上、下部分。該函數(shù)的參數(shù)ctx為epoll的環(huán)境變量,包含:epoll描述符iEpollFd,超時(shí)隊(duì)列pTimeOut,已超時(shí)隊(duì)列pstTimeoutList,就緒隊(duì)列pstActiveList,epoll_wait就緒事件集合result。其余參數(shù)fds為socket文件描述符集合,nfds為socket文件描述符數(shù)目,timeout超時(shí)時(shí)間,pollfunc為系統(tǒng)poll函數(shù)。


第908行epfd是epoll_create創(chuàng)建的epoll描述符,相當(dāng)于紅黑樹、就緒鏈表的標(biāo)識(shí),后文通過epfd管理所有fd。919到927行是在nfds少于3個(gè)時(shí)直接在棧上分配空間(更快),否則在堆上分配。第930行記錄就緒fd的回調(diào)函數(shù)OnPollProcessEvent,該回調(diào)函數(shù)會(huì)切回對(duì)應(yīng)的協(xié)程。第940行記錄切回協(xié)程之前的預(yù)處理函數(shù)OnPollPreparePfn。第948行將每個(gè)fd通過epoll_ctl加入紅黑樹。第968行將arg加入超時(shí)隊(duì)列pTimeOut,在980行掛起協(xié)程。等到所有協(xié)程均掛起,主協(xié)程開始運(yùn)行。

圖21


圖22


圖23為主協(xié)程調(diào)用的co_eventloop函數(shù)片段。co_epoll_wait找出所有就緒fd,調(diào)用pfnPrepare即OnPollPreparePfn,將就緒fd從超時(shí)隊(duì)列pTimeOut移除,并加入就緒隊(duì)列pstActiveList。801行用不到。TakeAllTimeout拿出超時(shí)隊(duì)列里所有超時(shí)元素,并在第817行加入pstActiveList。824行到833行將807行取出的未超時(shí)事件再加回超時(shí)隊(duì)列,因?yàn)門akeAllTimeout拿出的不一定都是超時(shí)事件,超時(shí)隊(duì)列底層實(shí)現(xiàn)是60000大小的循環(huán)數(shù)組,存放每毫秒(共60000毫秒)的超時(shí)事件,每個(gè)數(shù)組的元素均是一條鏈表,循環(huán)數(shù)組的目的是便于通過下標(biāo)找到所有超時(shí)鏈表。例如超時(shí)時(shí)間是10毫秒的所有事件均記錄在數(shù)組下標(biāo)為9(在循環(huán)數(shù)組實(shí)際的下標(biāo)可能不是9,僅舉個(gè)例子)的鏈表里,所有超時(shí)時(shí)間大于60000毫秒的事件均記錄在數(shù)組下標(biāo)為59999的鏈表里。如果取出超時(shí)時(shí)間是60000毫秒的事件,TakeAllTimeout會(huì)把超時(shí)時(shí)間大于60000毫秒的也取出來(lái),因此需要再把超時(shí)時(shí)間大于60000毫秒的重新加回超時(shí)隊(duì)列。在第836行是在協(xié)程超時(shí)或fd就緒時(shí)調(diào)用pfnProcess即OnPollProcessEvent切回協(xié)程。協(xié)程切回后,由上文2.1.2可知,協(xié)程接著co_yield_env里co_swap里的stCoRoutineEnv_t* curr_env = co_get_curr_thread_env()繼續(xù)執(zhí)行,co_yield_env執(zhí)行完后從圖22的第981行繼續(xù)執(zhí)行。第986行應(yīng)該是多余的,因?yàn)閜fnPrepare已經(jīng)從超時(shí)隊(duì)列刪除事件。992行調(diào)用epoll刪除當(dāng)前協(xié)程的就緒fd。


注意到co_poll_inner傳入的fd數(shù)組,而arg只是鏈表中的一個(gè)元素。假設(shè)co_poll_inner傳入10個(gè)文件描述符,如果只有1個(gè)fd就緒,OnPollPreparePfn從pTimeOut刪除arg,則10個(gè)文件fd都從超時(shí)隊(duì)列刪除,在圖22切回協(xié)程時(shí)在第987到995行將10個(gè)描述符都從紅黑樹刪除,然后應(yīng)用層需要將9個(gè)未就緒的fd重新調(diào)用co_poll_inner再加入紅黑樹。如果每次只就緒一個(gè)fd,這樣共需要加入紅黑樹:10 + 9+ 8 +… +1次,效率低于10次poll,每次只poll一個(gè)fd。co_poll_inner提供傳入fd數(shù)組的原因是,co_poll_inner是poll調(diào)用的,而poll是hook的系統(tǒng)函數(shù),不能改變系統(tǒng)的語(yǔ)義。系統(tǒng)poll支持?jǐn)?shù)組的原因是,調(diào)用系統(tǒng)poll一次,可檢查多個(gè)fd,比調(diào)用系統(tǒng)poll多次,每次檢查一個(gè)fd,效率更高。因此系統(tǒng)poll適合一次poll多個(gè)fd,但libco自定義的鉤子函數(shù)poll不適合一次poll多個(gè)fd,所以libco使用poll時(shí)需避免一次poll多個(gè)fd。

圖23


2.4?信號(hào)量激活協(xié)程

?libco提供信號(hào)量機(jī)制,類似golang的channel。example_cond.cpp舉了生產(chǎn)者和消費(fèi)者的例子,一個(gè)協(xié)程做生產(chǎn)者,另一個(gè)做消費(fèi)者,生產(chǎn)者產(chǎn)生數(shù)據(jù)后,喚醒消費(fèi)者。


主協(xié)程首先創(chuàng)建消費(fèi)者協(xié)程,并通過co_resume切換到消費(fèi)者協(xié)程函數(shù)Consumer,co_resume會(huì)調(diào)用到coctx_swap保存主協(xié)程的棧內(nèi)容,并將消費(fèi)者協(xié)程初始化在regs里的esp、ebp、返回地址等數(shù)據(jù)彈到寄存器和消費(fèi)者協(xié)程棧里,此時(shí)開始調(diào)度消費(fèi)者協(xié)程。Consumer在檢查到task_queue為空時(shí),將消費(fèi)者協(xié)程通過co_cond_timedwait,加入超時(shí)隊(duì)列pTimeout,并加入信號(hào)量隊(duì)列env->cond,然后通過co_yield_ct切換回主協(xié)程,co_yield_ct調(diào)用到coctx_swap函數(shù),保存消費(fèi)者協(xié)程,并恢復(fù)主協(xié)程。主協(xié)程接著創(chuàng)建生產(chǎn)者協(xié)程,通過co_resume切換到生產(chǎn)者協(xié)程。生產(chǎn)者協(xié)程函數(shù)Producer在task_queue里添加數(shù)據(jù)后,通過co_cond_signal從pTimeOut、env->cond里刪掉消費(fèi)者協(xié)程,并加入就緒隊(duì)列pstActiveList,然后通過poll掛起將生產(chǎn)者協(xié)程加入超時(shí)隊(duì)列pTimeout,并在co_poll_inner通過co_yield_env切回到主協(xié)程。主協(xié)程在co_eventloop遍歷就緒隊(duì)列pstActiveList,調(diào)度消費(fèi)者協(xié)程消費(fèi)task_queue里數(shù)據(jù)。


2.5?超時(shí)激活協(xié)程

當(dāng)前協(xié)程通過語(yǔ)句poll(NULL, 0, duration),可設(shè)置協(xié)程的超時(shí)時(shí)間間隔duration。poll是被hook住的函數(shù),執(zhí)行poll之后,當(dāng)前協(xié)程會(huì)被加到超時(shí)隊(duì)列pTimeOut,并被切換到其他協(xié)程,所有協(xié)程掛起后,主協(xié)程掃描超時(shí)隊(duì)列,找到超時(shí)的協(xié)程,并切換。因此可用poll實(shí)現(xiàn)協(xié)程的睡眠。注意不可用sleep,因?yàn)閟leep會(huì)睡眠線程,線程睡眠了,協(xié)程無(wú)法被調(diào)度,所有的協(xié)程也都不會(huì)執(zhí)行了。


2.6?回調(diào)激活協(xié)程

使用libco需要hook住socket族函數(shù),但業(yè)務(wù)代碼一般使用現(xiàn)成的非libco網(wǎng)絡(luò)庫(kù),如果改該網(wǎng)絡(luò)庫(kù)使其hook住socket族函數(shù),工作量太大。因此業(yè)務(wù)側(cè)可在協(xié)程里異步調(diào)用,異步調(diào)用后掛起協(xié)程,所有的異步回調(diào)使用同一函數(shù),在同一回調(diào)函數(shù)里,根據(jù)異步調(diào)用時(shí)的標(biāo)記決定喚醒哪個(gè)協(xié)程。該方案也可做到不分離異步調(diào)用和處理異步調(diào)用返回的數(shù)據(jù)。但需要業(yè)務(wù)側(cè)添加一個(gè)統(tǒng)一的異步回調(diào)函數(shù),并在該函數(shù)里根據(jù)標(biāo)識(shí)調(diào)度協(xié)程。


3.?協(xié)程池

協(xié)程池的好處是不用每次使用協(xié)程時(shí)都創(chuàng)建新的協(xié)程。創(chuàng)建新協(xié)程主要開銷有兩個(gè):一,需要malloc協(xié)程環(huán)境stCoRoutine_t,stCoRoutine_t有4K大小的協(xié)程私有變量數(shù)組;二,協(xié)程棧128K。每次創(chuàng)建新的協(xié)程要分配這么大的空間需要有時(shí)間開銷,另外頻繁申請(qǐng)、銷毀會(huì)導(dǎo)致內(nèi)存碎片的產(chǎn)生。即使在共享?xiàng)DJ较虏挥脼槊總€(gè)協(xié)程申請(qǐng)協(xié)程棧,也會(huì)有第一部分stCoRoutine_t的開銷。每次從協(xié)程池取出協(xié)程后,將stCoRoutine_t.pfn重新初始化為用戶自定義的協(xié)程函數(shù)即可。


4.?協(xié)程私有變量

協(xié)程私有變量為每個(gè)協(xié)程獨(dú)享,不會(huì)被其他協(xié)程修改,可參看example_specific.cpp。協(xié)程私有變量通過宏CO_ROUTINE_SPECIFIC定義,然后重載操作符->實(shí)現(xiàn)set/get。該宏首先定義線程私有變量,聲明pthread_key_t類型的變量,并通過pthread_once_t保證pthread_key_t類型變量只被create一次。如果當(dāng)前沒有創(chuàng)建過協(xié)程,或者當(dāng)前協(xié)程是主協(xié)程,則通過co_pthread_setspecific/pthread_getspecific來(lái)set/get線程私有變量。否則在當(dāng)前協(xié)程的aSpec數(shù)組里set/get協(xié)程私有變量,pthread_key_t類型的變量作為數(shù)組下標(biāo)。


pthread_once控制pthread_key_create在多線程環(huán)境中只會(huì)執(zhí)行一次。_routine_init_##name控制一個(gè)線程的多個(gè)協(xié)程只會(huì)調(diào)用pthread_once一次,避免每次set、get變量時(shí)均調(diào)用pthread_once。


因?yàn)閰f(xié)程私有變量需要重載操作符->,因此CO_ROUTINE_SPECIFIC第一個(gè)參數(shù)必須為結(jié)構(gòu)體或類。雖然aSpec有1024個(gè)容量,但通過pthread_key_create創(chuàng)建的key是從1開始,因此協(xié)程私有變量實(shí)際可容納1023個(gè)元素。


注意事項(xiàng)

1.?共享?xiàng)O聝?nèi)容篡改

圖24所示代碼,協(xié)程RoutineFuncA、RoutineFuncB共用一個(gè)共享?xiàng)!_\(yùn)行代碼,第7行輸出1,第14行輸出2,但在第14行之前只在RoutineFuncA里將global_ptr指向的內(nèi)容設(shè)置為1。原因是在RoutineFuncA里global_ptr指向routineidA的地址,而在RoutineFuncB里,因?yàn)槭枪蚕項(xiàng)?#xff0c;所以routineidB和routineidA的地址一樣,而該地址處的值被第13行修改為2,因此第14行打印出來(lái)2。所以共享?xiàng)DJ较?#xff0c;需避免協(xié)程之前傳遞地址,因?yàn)榈刂返膬?nèi)容會(huì)被篡改。

圖24


2. poll效率

libco自定義的鉤子函數(shù)poll,雖然支持傳入fd數(shù)組,但一次poll多個(gè)fd的效率,不如多次poll每次poll一個(gè)fd的效率,原因見2.3 epoll激活協(xié)程


3.棧溢出

每個(gè)協(xié)程棧使用128K的堆內(nèi)存,128K是malloc使用brk和mmap分配堆內(nèi)存的分界線。但128K的空間可能不夠一個(gè)協(xié)程使用,導(dǎo)致協(xié)程棧溢出。協(xié)程棧溢出問題,有如下三種解決方案。


3.1?堆內(nèi)存

大內(nèi)存不在協(xié)程棧上分配,通過malloc、new在堆上分配,可以使用編譯參數(shù)-Wstack-usage檢查使用較大棧空間的變量。另外棧以外空間的非法讀寫不一定會(huì)Crash,因此在128K協(xié)程棧上下添加保護(hù)頁(yè),并通過mprotect設(shè)置保護(hù)頁(yè)權(quán)限,非法讀寫保護(hù)頁(yè)時(shí),程序會(huì)立即Crash。推薦使用該方案


3.2?自動(dòng)擴(kuò)容協(xié)程棧

在協(xié)程調(diào)用的所有函數(shù)入口檢查棧使用率,如果棧使用率超過閾值,就自動(dòng)擴(kuò)容協(xié)程棧。在進(jìn)入函數(shù)時(shí),聲明一個(gè)臨時(shí)變量,獲取該變量的地址varaddr,因?yàn)閰f(xié)程棧空間高地址為stack_mem->stack_bp,低地址為stack_mem->stack_buffer,因此使用率為(stack_mem->stack_bp -varaddr) / (stack_mem->stack_bp - stack_mem->stack_buffer)。如果使用率超過閾值,重新申請(qǐng)大空間的新協(xié)程棧,并將舊協(xié)程棧拷貝到新協(xié)程棧。?


但如果協(xié)程函數(shù)里使用了指針,比如指針ptr指向舊協(xié)程棧內(nèi)存地址0xffd344c0,棧拷貝后,訪問ptr的內(nèi)容仍然是訪問舊協(xié)程棧0xffd344c0,導(dǎo)致非法訪問。在協(xié)程函數(shù)里使用指針的概率很大,比如聲明數(shù)組,因此該方案風(fēng)險(xiǎn)較大。


?golang支持協(xié)程棧的自動(dòng)擴(kuò)容,1.3之前是分段棧,即老棧保留,另外再開辟新棧,老棧新棧一起使用,超出老棧的數(shù)據(jù)用新棧保存。使用分段棧存在hot split問題,所以1.3及之后采用連續(xù)棧,老棧不夠用時(shí),申請(qǐng)大空間的新棧,并將老棧數(shù)據(jù)拷貝到新棧。拷貝老棧到新棧時(shí),golang也面臨指針失效的問題,原文參考,但golang的編譯器會(huì)管理每個(gè)指針的位置,原文參考?。只要知道每個(gè)指針在老棧的位置,算出相對(duì)協(xié)程棧頂偏移量,即可將指針遷移到新棧的位置。


3.3?虛擬內(nèi)存

因?yàn)閙alloc使用的是虛擬內(nèi)存,而物理內(nèi)存按需分配,協(xié)程占用的內(nèi)存并不是malloc的內(nèi)存大小,而是實(shí)際使用到的內(nèi)存大小,因此可將malloc(128K)改為malloc(8M)。但在非協(xié)程池模式下,頻繁mmap 8M的堆內(nèi)存會(huì)導(dǎo)致大量缺頁(yè)中斷。在協(xié)程池模式下,假設(shè)池子有10個(gè)協(xié)程,10個(gè)協(xié)程輪流處理同一個(gè)用戶自定義的協(xié)程函數(shù),而該函數(shù)若最終會(huì)使用8M的物理內(nèi)存,最終導(dǎo)致協(xié)程池里的所有協(xié)程實(shí)際使用內(nèi)存都為8M,在協(xié)程池大的情況下,會(huì)迅速耗盡內(nèi)存。因此在回收協(xié)程池里的協(xié)程時(shí),需要檢測(cè)物理內(nèi)存實(shí)際使用量(方法同3.2.2),超過128K時(shí),需要銷毀協(xié)程,重建128K的協(xié)程加入?yún)f(xié)程池



總結(jié)

以上是生活随笔為你收集整理的万字长文 | 漫谈libco协程设计及实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

成人精品天堂一区二区三区 | 亚洲人成网站在线播放942 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲精品国产品国语在线观看 | 欧美肥老太牲交大战 | 国产精品a成v人在线播放 | 小鲜肉自慰网站xnxx | 一本大道久久东京热无码av | 三级4级全黄60分钟 | 国产疯狂伦交大片 | 激情五月综合色婷婷一区二区 | 国产亚洲欧美在线专区 | 又黄又爽又色的视频 | 亚洲中文无码av永久不收费 | 日本精品人妻无码77777 天堂一区人妻无码 | 久久亚洲a片com人成 | 久久亚洲精品中文字幕无男同 | 夜精品a片一区二区三区无码白浆 | 无遮挡啪啪摇乳动态图 | 久久久久久亚洲精品a片成人 | аⅴ资源天堂资源库在线 | 国产明星裸体无码xxxx视频 | 精品一区二区三区无码免费视频 | 十八禁视频网站在线观看 | 亚洲精品一区二区三区在线 | 国产亚洲美女精品久久久2020 | 2020久久香蕉国产线看观看 | 久久久久亚洲精品男人的天堂 | av在线亚洲欧洲日产一区二区 | 国产精品久久久久9999小说 | 麻豆国产人妻欲求不满谁演的 | 无码人妻出轨黑人中文字幕 | 国产精品无码永久免费888 | 美女扒开屁股让男人桶 | 亚洲成av人影院在线观看 | www国产精品内射老师 | 久久久精品国产sm最大网站 | 乱人伦人妻中文字幕无码 | 久久精品中文闷骚内射 | 成人精品视频一区二区三区尤物 | 动漫av网站免费观看 | 久久亚洲精品中文字幕无男同 | 综合人妻久久一区二区精品 | 奇米影视7777久久精品人人爽 | 国产亚洲精品久久久ai换 | 婷婷六月久久综合丁香 | 国产成人无码区免费内射一片色欲 | 国产凸凹视频一区二区 | 国产色视频一区二区三区 | 疯狂三人交性欧美 | 欧美人与善在线com | 欧美丰满熟妇xxxx性ppx人交 | 亚洲熟悉妇女xxx妇女av | 亚洲成色在线综合网站 | 免费观看激色视频网站 | 国产超碰人人爽人人做人人添 | 成人亚洲精品久久久久软件 | 国产精品99爱免费视频 | 亚洲综合精品香蕉久久网 | 狠狠色噜噜狠狠狠7777奇米 | 日本高清一区免费中文视频 | 国产精品爱久久久久久久 | 中文字幕中文有码在线 | 国产综合久久久久鬼色 | 性做久久久久久久免费看 | 荫蒂被男人添的好舒服爽免费视频 | 人妻aⅴ无码一区二区三区 | 亚洲一区二区三区含羞草 | 成人亚洲精品久久久久软件 | 最近的中文字幕在线看视频 | 欧美日韩一区二区免费视频 | 欧美 丝袜 自拍 制服 另类 | 波多野结衣一区二区三区av免费 | 波多野结衣aⅴ在线 | 欧美怡红院免费全部视频 | 欧美xxxx黑人又粗又长 | 国产精品怡红院永久免费 | 天堂无码人妻精品一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 天天做天天爱天天爽综合网 | 国产精品爱久久久久久久 | 亚洲综合另类小说色区 | 色综合久久中文娱乐网 | 强开小婷嫩苞又嫩又紧视频 | 精品水蜜桃久久久久久久 | 亚洲aⅴ无码成人网站国产app | 欧美精品国产综合久久 | 性欧美牲交xxxxx视频 | 亚洲人成无码网www | 一区二区传媒有限公司 | 鲁鲁鲁爽爽爽在线视频观看 | 久久99精品久久久久久 | 欧美熟妇另类久久久久久多毛 | 午夜熟女插插xx免费视频 | 国产人成高清在线视频99最全资源 | av无码电影一区二区三区 | 日韩欧美群交p片內射中文 | 亚洲の无码国产の无码步美 | 亚洲中文字幕久久无码 | 人人妻人人藻人人爽欧美一区 | 亚洲精品国产精品乱码不卡 | 久久久久久a亚洲欧洲av冫 | 色一情一乱一伦一区二区三欧美 | 人妻无码αv中文字幕久久琪琪布 | 乱码av麻豆丝袜熟女系列 | 国产精品久久久久影院嫩草 | 欧美熟妇另类久久久久久多毛 | 大肉大捧一进一出好爽视频 | 麻豆国产97在线 | 欧洲 | 久热国产vs视频在线观看 | 亚洲第一无码av无码专区 | 欧美三级不卡在线观看 | 自拍偷自拍亚洲精品10p | 国产免费久久精品国产传媒 | 亚洲精品久久久久中文第一幕 | www国产亚洲精品久久久日本 | 国产疯狂伦交大片 | √8天堂资源地址中文在线 | 日产国产精品亚洲系列 | 性生交片免费无码看人 | 日本丰满熟妇videos | 久久国语露脸国产精品电影 | 免费人成在线观看网站 | 国产乱人伦偷精品视频 | 日韩少妇白浆无码系列 | 亚洲人成无码网www | 综合人妻久久一区二区精品 | 亚洲日本一区二区三区在线 | 亚洲色无码一区二区三区 | 国产精品久久久久影院嫩草 | 亚洲欧美国产精品久久 | 久久午夜无码鲁丝片午夜精品 | 精品欧洲av无码一区二区三区 | 亚洲精品久久久久久久久久久 | 亚洲国产欧美国产综合一区 | 亚洲欧美日韩成人高清在线一区 | 国产免费无码一区二区视频 | 人妻少妇精品视频专区 | 欧美成人家庭影院 | 四虎影视成人永久免费观看视频 | 天天躁夜夜躁狠狠是什么心态 | 76少妇精品导航 | 亚洲一区二区三区偷拍女厕 | 一本久道高清无码视频 | 色老头在线一区二区三区 | 亚洲日韩中文字幕在线播放 | 无码任你躁久久久久久久 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产精品久久久久久久影院 | 成年女人永久免费看片 | 久激情内射婷内射蜜桃人妖 | 狂野欧美性猛xxxx乱大交 | 亚洲伊人久久精品影院 | 最近的中文字幕在线看视频 | 亚洲日韩精品欧美一区二区 | 对白脏话肉麻粗话av | 色偷偷人人澡人人爽人人模 | 永久免费精品精品永久-夜色 | 蜜桃臀无码内射一区二区三区 | 国产精品怡红院永久免费 | 九月婷婷人人澡人人添人人爽 | 久久精品人人做人人综合 | 国产精品爱久久久久久久 | 又色又爽又黄的美女裸体网站 | 少妇愉情理伦片bd | 一个人免费观看的www视频 | 欧美丰满熟妇xxxx性ppx人交 | 久久精品中文字幕一区 | 免费无码的av片在线观看 | 久久久久av无码免费网 | 丰满人妻精品国产99aⅴ | 人人妻人人澡人人爽人人精品浪潮 | 亚洲爆乳精品无码一区二区三区 | 国产在线一区二区三区四区五区 | 亚洲综合伊人久久大杳蕉 | 国产成人综合在线女婷五月99播放 | 国产成人无码a区在线观看视频app | 国产成人综合美国十次 | 国产99久久精品一区二区 | 亚洲精品欧美二区三区中文字幕 | 国产人妻人伦精品1国产丝袜 | 国产农村妇女高潮大叫 | 少妇无套内谢久久久久 | 东京热无码av男人的天堂 | 国产婷婷色一区二区三区在线 | 99久久人妻精品免费一区 | 亚洲男女内射在线播放 | 未满成年国产在线观看 | 水蜜桃色314在线观看 | 国产成人无码专区 | v一区无码内射国产 | 中文字幕色婷婷在线视频 | 久久久久人妻一区精品色欧美 | 亚洲日韩乱码中文无码蜜桃臀网站 | 清纯唯美经典一区二区 | 中文字幕人成乱码熟女app | 精品国产一区二区三区四区 | 熟女体下毛毛黑森林 | 理论片87福利理论电影 | 99久久精品日本一区二区免费 | 狠狠亚洲超碰狼人久久 | 狠狠亚洲超碰狼人久久 | 日本又色又爽又黄的a片18禁 | 国内老熟妇对白xxxxhd | 国产凸凹视频一区二区 | 免费中文字幕日韩欧美 | 日产精品高潮呻吟av久久 | 少妇性俱乐部纵欲狂欢电影 | 久久久久久久人妻无码中文字幕爆 | 国产午夜亚洲精品不卡下载 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 久久国产36精品色熟妇 | 熟妇激情内射com | 亚洲男人av香蕉爽爽爽爽 | 国内精品人妻无码久久久影院蜜桃 | 亚洲精品国偷拍自产在线观看蜜桃 | 成人无码精品一区二区三区 | 中文久久乱码一区二区 | 国产成人无码a区在线观看视频app | 蜜臀av无码人妻精品 | 日本在线高清不卡免费播放 | 欧美性生交xxxxx久久久 | 久久亚洲a片com人成 | 精品国产一区av天美传媒 | 在线观看国产午夜福利片 | 亚洲中文字幕在线观看 | 中文字幕+乱码+中文字幕一区 | 国产成人无码av片在线观看不卡 | 国产亚洲日韩欧美另类第八页 | 又大又紧又粉嫩18p少妇 | 久久久久99精品国产片 | 少妇人妻偷人精品无码视频 | 国产人妻人伦精品 | 中文字幕+乱码+中文字幕一区 | 国产一区二区三区四区五区加勒比 | 无人区乱码一区二区三区 | 老子影院午夜精品无码 | 最新国产麻豆aⅴ精品无码 | 人妻少妇精品无码专区动漫 | 国产三级久久久精品麻豆三级 | 欧美日韩一区二区综合 | 国产明星裸体无码xxxx视频 | 97资源共享在线视频 | 国产亚洲美女精品久久久2020 | www国产亚洲精品久久网站 | 精品成在人线av无码免费看 | 少妇高潮喷潮久久久影院 | 色婷婷欧美在线播放内射 | 国产精品美女久久久 | 久久国语露脸国产精品电影 | 精品久久8x国产免费观看 | 国产小呦泬泬99精品 | 日产精品99久久久久久 | 初尝人妻少妇中文字幕 | 国产免费无码一区二区视频 | 亚洲大尺度无码无码专区 | 国产深夜福利视频在线 | 欧美三级a做爰在线观看 | 中文字幕 亚洲精品 第1页 | 男人扒开女人内裤强吻桶进去 | 日韩av无码一区二区三区不卡 | 2020久久香蕉国产线看观看 | 国产又爽又猛又粗的视频a片 | 亚洲精品国产品国语在线观看 | 日本丰满护士爆乳xxxx | 中文字幕人成乱码熟女app | 亚洲色偷偷偷综合网 | 97人妻精品一区二区三区 | 亚洲の无码国产の无码步美 | 奇米影视888欧美在线观看 | 女高中生第一次破苞av | 国产真实夫妇视频 | 天天摸天天碰天天添 | 蜜桃视频韩日免费播放 | 欧美日韩一区二区综合 | 男人扒开女人内裤强吻桶进去 | 领导边摸边吃奶边做爽在线观看 | 一本加勒比波多野结衣 | 久久午夜无码鲁丝片午夜精品 | 正在播放老肥熟妇露脸 | 国产无遮挡又黄又爽免费视频 | 永久免费观看美女裸体的网站 | 久久久久亚洲精品中文字幕 | 好爽又高潮了毛片免费下载 | 最新国产乱人伦偷精品免费网站 | 国产精品高潮呻吟av久久 | 丰满少妇人妻久久久久久 | 亚洲国产成人a精品不卡在线 | 婷婷丁香五月天综合东京热 | 国产明星裸体无码xxxx视频 | 欧美日韩人成综合在线播放 | 日本爽爽爽爽爽爽在线观看免 | 日日橹狠狠爱欧美视频 | 亚洲中文字幕无码一久久区 | 免费人成在线观看网站 | 中文字幕乱码亚洲无线三区 | 四虎4hu永久免费 | 丁香花在线影院观看在线播放 | 东京一本一道一二三区 | 亚洲日韩中文字幕在线播放 | 十八禁真人啪啪免费网站 | 久久99精品国产麻豆蜜芽 | 国产精品欧美成人 | 国产精品免费大片 | 日韩人妻无码一区二区三区久久99 | 久久久久久久久蜜桃 | 最近的中文字幕在线看视频 | 人妻无码αv中文字幕久久琪琪布 | 亚洲娇小与黑人巨大交 | 欧美35页视频在线观看 | 亚洲国产综合无码一区 | 国产亚av手机在线观看 | 久久久久人妻一区精品色欧美 | 亚洲熟妇色xxxxx欧美老妇y | 最新国产麻豆aⅴ精品无码 | 纯爱无遮挡h肉动漫在线播放 | 18禁止看的免费污网站 | 性生交片免费无码看人 | 内射爽无广熟女亚洲 | 国产精品内射视频免费 | 日本一区二区三区免费播放 | 午夜熟女插插xx免费视频 | 日日天日日夜日日摸 | 色综合天天综合狠狠爱 | 国内丰满熟女出轨videos | 久久精品女人的天堂av | 无码一区二区三区在线 | 97久久超碰中文字幕 | 亚洲一区二区三区含羞草 | 国产办公室秘书无码精品99 | 国产偷抇久久精品a片69 | 久久综合久久自在自线精品自 | 激情内射亚州一区二区三区爱妻 | 欧美激情一区二区三区成人 | 国产成人亚洲综合无码 | 少妇性l交大片欧洲热妇乱xxx | 欧美成人免费全部网站 | 亚洲成a人一区二区三区 | 日韩欧美中文字幕在线三区 | 亚洲小说图区综合在线 | 青春草在线视频免费观看 | 国产午夜无码视频在线观看 | 亚洲日本一区二区三区在线 | 99久久99久久免费精品蜜桃 | 国内精品九九久久久精品 | 玩弄中年熟妇正在播放 | 日本护士毛茸茸高潮 | 久久午夜无码鲁丝片 | 亚洲日韩精品欧美一区二区 | 国产区女主播在线观看 | 亚洲成av人影院在线观看 | 久久精品丝袜高跟鞋 | 亚洲爆乳大丰满无码专区 | 无遮无挡爽爽免费视频 | 日日摸日日碰夜夜爽av | 欧美阿v高清资源不卡在线播放 | 熟妇人妻无乱码中文字幕 | 欧美人与牲动交xxxx | 色五月五月丁香亚洲综合网 | 精品偷拍一区二区三区在线看 | 欧美 日韩 人妻 高清 中文 | 精品少妇爆乳无码av无码专区 | 人妻少妇精品无码专区二区 | 美女毛片一区二区三区四区 | 在线精品亚洲一区二区 | 久久99精品久久久久久动态图 | 一个人看的视频www在线 | 无码国模国产在线观看 | 精品久久久无码中文字幕 | 88国产精品欧美一区二区三区 | 国产精品久久久久7777 | 欧美人与禽猛交狂配 | 亚洲乱码国产乱码精品精 | 亚洲一区二区三区无码久久 | 国产成人无码一二三区视频 | 午夜精品一区二区三区的区别 | 欧美放荡的少妇 | 日本欧美一区二区三区乱码 | 国产精品亚洲综合色区韩国 | 人人爽人人爽人人片av亚洲 | 色欲久久久天天天综合网精品 | 蜜臀av在线观看 在线欧美精品一区二区三区 | √天堂资源地址中文在线 | 牛和人交xxxx欧美 | 精品人妻人人做人人爽夜夜爽 | aa片在线观看视频在线播放 | 久久精品国产大片免费观看 | 黑森林福利视频导航 | 婷婷综合久久中文字幕蜜桃三电影 | 国产av人人夜夜澡人人爽麻豆 | 精品久久久久久人妻无码中文字幕 | 领导边摸边吃奶边做爽在线观看 | 亚洲国产欧美国产综合一区 | 人人澡人摸人人添 | 日韩人妻无码一区二区三区久久99 | a片在线免费观看 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 色诱久久久久综合网ywww | 欧美午夜特黄aaaaaa片 | 国产一区二区三区四区五区加勒比 | 粗大的内捧猛烈进出视频 | 麻豆国产人妻欲求不满 | 亚洲日韩av一区二区三区四区 | 亚洲 高清 成人 动漫 | 香蕉久久久久久av成人 | 欧美日韩亚洲国产精品 | 亚洲国产一区二区三区在线观看 | 久久精品国产一区二区三区 | 精品乱码久久久久久久 | 亚洲va欧美va天堂v国产综合 | 精品国产福利一区二区 | 欧美丰满熟妇xxxx | 婷婷五月综合激情中文字幕 | 日本一本二本三区免费 | 日韩少妇白浆无码系列 | 欧美精品一区二区精品久久 | 色婷婷香蕉在线一区二区 | 亚洲成在人网站无码天堂 | 亚洲精品美女久久久久久久 | 欧美黑人性暴力猛交喷水 | 亚洲精品午夜国产va久久成人 | 国産精品久久久久久久 | 两性色午夜免费视频 | 亚洲国产精品一区二区第一页 | 双乳奶水饱满少妇呻吟 | 日本www一道久久久免费榴莲 | 精品人人妻人人澡人人爽人人 | 国产精品视频免费播放 | 国产明星裸体无码xxxx视频 | 国产性生大片免费观看性 | 欧美 日韩 亚洲 在线 | 久久精品人人做人人综合 | 久久精品人人做人人综合 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲精品国偷拍自产在线观看蜜桃 | 青春草在线视频免费观看 | 漂亮人妻洗澡被公强 日日躁 | 女人被爽到呻吟gif动态图视看 | 亚洲精品一区二区三区在线观看 | 又粗又大又硬又长又爽 | 国产欧美亚洲精品a | 欧美激情一区二区三区成人 | 亚洲日韩av片在线观看 | 午夜无码人妻av大片色欲 | 欧美黑人巨大xxxxx | www成人国产高清内射 | 国内揄拍国内精品少妇国语 | 强开小婷嫩苞又嫩又紧视频 | 曰本女人与公拘交酡免费视频 | 久久久久亚洲精品中文字幕 | 精品日本一区二区三区在线观看 | 色老头在线一区二区三区 | 国产sm调教视频在线观看 | 国産精品久久久久久久 | 秋霞特色aa大片 | 国产人成高清在线视频99最全资源 | 亚洲日本va中文字幕 | 四虎4hu永久免费 | 国产色视频一区二区三区 | 大色综合色综合网站 | 国产特级毛片aaaaaaa高清 | 欧美第一黄网免费网站 | 亚洲小说图区综合在线 | 久久久久亚洲精品中文字幕 | 国产免费久久久久久无码 | 成人欧美一区二区三区 | 国产精品多人p群无码 | 国产内射爽爽大片视频社区在线 | 伊在人天堂亚洲香蕉精品区 | 亚洲欧美综合区丁香五月小说 | 免费播放一区二区三区 | 色欲久久久天天天综合网精品 | 成人片黄网站色大片免费观看 | 亚洲人成影院在线观看 | 久久国语露脸国产精品电影 | 亚洲欧洲日本无在线码 | 亚洲成a人片在线观看日本 | 蜜桃av抽搐高潮一区二区 | 大地资源中文第3页 | 国产区女主播在线观看 | 免费看男女做好爽好硬视频 | 亚洲熟熟妇xxxx | 中文字幕人妻丝袜二区 | 日本一卡二卡不卡视频查询 | 国产超级va在线观看视频 | 久久99精品久久久久久动态图 | 亚洲欧洲日本综合aⅴ在线 | 久久五月精品中文字幕 | 超碰97人人射妻 | 亚洲无人区午夜福利码高清完整版 | 亚洲自偷自拍另类第1页 | 丰满少妇女裸体bbw | 97夜夜澡人人双人人人喊 | 性做久久久久久久免费看 | 2020久久超碰国产精品最新 | 国产精品久久久久久久影院 | 国产特级毛片aaaaaa高潮流水 | 精品熟女少妇av免费观看 | 日韩亚洲欧美中文高清在线 | 欧美熟妇另类久久久久久多毛 | 国产无套粉嫩白浆在线 | 欧洲美熟女乱又伦 | 久久五月精品中文字幕 | 日本一区二区三区免费播放 | 国产情侣作爱视频免费观看 | 丰满少妇女裸体bbw | 欧美精品一区二区精品久久 | 久久久久久国产精品无码下载 | 色综合久久88色综合天天 | 帮老师解开蕾丝奶罩吸乳网站 | 俺去俺来也www色官网 | 欧美亚洲国产一区二区三区 | 婷婷五月综合缴情在线视频 | 精品aⅴ一区二区三区 | 午夜成人1000部免费视频 | 伦伦影院午夜理论片 | 亚洲熟悉妇女xxx妇女av | 国产成人一区二区三区在线观看 | 国产口爆吞精在线视频 | 九九在线中文字幕无码 | 国产精品久久久午夜夜伦鲁鲁 | 无码一区二区三区在线 | 无码av岛国片在线播放 | 精品偷自拍另类在线观看 | 亚洲欧洲日本无在线码 | 精品一区二区不卡无码av | 熟妇人妻激情偷爽文 | 亚洲 另类 在线 欧美 制服 | 精品国产成人一区二区三区 | 精品成人av一区二区三区 | 老熟女重囗味hdxx69 | 又大又黄又粗又爽的免费视频 | 国产美女精品一区二区三区 | 又色又爽又黄的美女裸体网站 | 少妇无套内谢久久久久 | 日韩精品成人一区二区三区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲精品成人av在线 | 99久久99久久免费精品蜜桃 | 久久成人a毛片免费观看网站 | 日本护士xxxxhd少妇 | 妺妺窝人体色www在线小说 | 亚洲成熟女人毛毛耸耸多 | 99久久久无码国产aaa精品 | 亚洲国产欧美国产综合一区 | 国产成人精品久久亚洲高清不卡 | 丰满少妇女裸体bbw | 午夜精品久久久内射近拍高清 | 欧美大屁股xxxxhd黑色 | 少妇无码av无码专区在线观看 | 四虎影视成人永久免费观看视频 | 久久久久国色av免费观看性色 | 国产福利视频一区二区 | 99在线 | 亚洲 | 人妻少妇被猛烈进入中文字幕 | 国产亚洲视频中文字幕97精品 | 欧美日韩在线亚洲综合国产人 | 丰满少妇人妻久久久久久 | 久青草影院在线观看国产 | 欧美性猛交内射兽交老熟妇 | a在线观看免费网站大全 | 久久久久久久人妻无码中文字幕爆 | 国产精品99久久精品爆乳 | 国产精品理论片在线观看 | 日韩欧美群交p片內射中文 | 成人av无码一区二区三区 | 性色欲网站人妻丰满中文久久不卡 | 人妻少妇精品视频专区 | 一个人免费观看的www视频 | 久久久久99精品成人片 | 一个人免费观看的www视频 | 97久久超碰中文字幕 | 成人无码视频在线观看网站 | 久久午夜无码鲁丝片 | 久久成人a毛片免费观看网站 | 国产在线一区二区三区四区五区 | 国产亚洲欧美日韩亚洲中文色 | 亲嘴扒胸摸屁股激烈网站 | 99国产精品白浆在线观看免费 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久国产精品二国产精品 | 一区二区三区高清视频一 | 国产精品欧美成人 | 无码国模国产在线观看 | www一区二区www免费 | 日本一本二本三区免费 | 初尝人妻少妇中文字幕 | 国产小呦泬泬99精品 | 一区二区传媒有限公司 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲色无码一区二区三区 | 亚洲综合无码一区二区三区 | 精品日本一区二区三区在线观看 | 天天爽夜夜爽夜夜爽 | 婷婷丁香五月天综合东京热 | 人人爽人人澡人人高潮 | 亚洲七七久久桃花影院 | 少妇性荡欲午夜性开放视频剧场 | 欧美激情综合亚洲一二区 | 无遮挡国产高潮视频免费观看 | 内射后入在线观看一区 | 最近中文2019字幕第二页 | 亚洲 激情 小说 另类 欧美 | 人妻人人添人妻人人爱 | 欧美人与善在线com | 国产精品无码成人午夜电影 | 日本精品人妻无码免费大全 | 亚洲欧美精品伊人久久 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 最近免费中文字幕中文高清百度 | 久久亚洲a片com人成 | 亚洲热妇无码av在线播放 | 又大又紧又粉嫩18p少妇 | 在线观看国产午夜福利片 | 日本一卡2卡3卡四卡精品网站 | 精品人妻中文字幕有码在线 | 美女张开腿让人桶 | 性欧美videos高清精品 | 99精品国产综合久久久久五月天 | 欧美 日韩 人妻 高清 中文 | 曰韩无码二三区中文字幕 | 99国产欧美久久久精品 | 欧美一区二区三区视频在线观看 | 无码国产乱人伦偷精品视频 | 正在播放老肥熟妇露脸 | 亚洲人成网站在线播放942 | 国产内射老熟女aaaa | 六月丁香婷婷色狠狠久久 | 国产情侣作爱视频免费观看 | 97无码免费人妻超级碰碰夜夜 | 性欧美熟妇videofreesex | 性啪啪chinese东北女人 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产高清av在线播放 | 亚洲高清偷拍一区二区三区 | 日韩精品成人一区二区三区 | 精品欧美一区二区三区久久久 | 国产在线一区二区三区四区五区 | 久久久久亚洲精品中文字幕 | 天天拍夜夜添久久精品 | www国产亚洲精品久久久日本 | 国产sm调教视频在线观看 | 久久亚洲精品中文字幕无男同 | 国模大胆一区二区三区 | 免费观看的无遮挡av | 67194成是人免费无码 | 国产成人精品一区二区在线小狼 | 台湾无码一区二区 | 在线观看免费人成视频 | 曰本女人与公拘交酡免费视频 | 少妇高潮喷潮久久久影院 | 国产精品.xx视频.xxtv | 精品欧美一区二区三区久久久 | 又大又紧又粉嫩18p少妇 | 欧美人妻一区二区三区 | 国产成人亚洲综合无码 | 性开放的女人aaa片 | 中文字幕av日韩精品一区二区 | 亚洲成av人综合在线观看 | 亚洲人成影院在线无码按摩店 | 国产无套粉嫩白浆在线 | 色婷婷综合激情综在线播放 | 久久婷婷五月综合色国产香蕉 | 日本一本二本三区免费 | 最近中文2019字幕第二页 | 成人欧美一区二区三区黑人免费 | 夜精品a片一区二区三区无码白浆 | 国产精品毛片一区二区 | 国产艳妇av在线观看果冻传媒 | 亚洲精品成a人在线观看 | 色欲久久久天天天综合网精品 | 国产综合在线观看 | 国产亚洲欧美日韩亚洲中文色 | 国产精品嫩草久久久久 | 国产69精品久久久久app下载 | 欧美日韩视频无码一区二区三 | 日本精品人妻无码免费大全 | 国产精品国产三级国产专播 | 久久久精品欧美一区二区免费 | 国产无av码在线观看 | 久久久久久久女国产乱让韩 | 国内综合精品午夜久久资源 | 国产人妻精品一区二区三区不卡 | 无码一区二区三区在线 | 国产人成高清在线视频99最全资源 | 女人被男人爽到呻吟的视频 | 日韩亚洲欧美中文高清在线 | 欧美野外疯狂做受xxxx高潮 | 久久国产精品_国产精品 | 亚洲成av人片在线观看无码不卡 | 亚洲精品久久久久久久久久久 | 亚洲欧洲日本综合aⅴ在线 | 丰满肥臀大屁股熟妇激情视频 | 国产亚洲精品久久久久久国模美 | 国产亚洲日韩欧美另类第八页 | 婷婷色婷婷开心五月四房播播 | 久久久婷婷五月亚洲97号色 | 2019nv天堂香蕉在线观看 | 国产精品办公室沙发 | 亚洲成av人影院在线观看 | 亚洲国产精品久久久久久 | 天天做天天爱天天爽综合网 | 无码午夜成人1000部免费视频 | 中文久久乱码一区二区 | 国产特级毛片aaaaaa高潮流水 | 国产超级va在线观看视频 | 久久亚洲a片com人成 | 激情国产av做激情国产爱 | 国产成人精品久久亚洲高清不卡 | 高潮喷水的毛片 | 国产又粗又硬又大爽黄老大爷视 | 亚洲中文字幕成人无码 | 丝袜美腿亚洲一区二区 | 99久久亚洲精品无码毛片 | 国产亚洲视频中文字幕97精品 | 动漫av一区二区在线观看 | 国产精品久久久久久亚洲毛片 | 午夜丰满少妇性开放视频 | 亚洲日本va午夜在线电影 | 日本精品高清一区二区 | 国产乱人伦av在线无码 | 无码人妻出轨黑人中文字幕 | 亚洲综合另类小说色区 | av香港经典三级级 在线 | 成人一在线视频日韩国产 | 55夜色66夜色国产精品视频 | 国产舌乚八伦偷品w中 | 国产激情一区二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 欧美三级不卡在线观看 | 一本精品99久久精品77 | 人人澡人摸人人添 | 在线欧美精品一区二区三区 | 久久久久免费看成人影片 | 国产精品无码成人午夜电影 | 国内综合精品午夜久久资源 | 成人欧美一区二区三区 | 日韩人妻少妇一区二区三区 | 18无码粉嫩小泬无套在线观看 | 久久久婷婷五月亚洲97号色 | 77777熟女视频在线观看 а天堂中文在线官网 | 天天躁日日躁狠狠躁免费麻豆 | 国产亚洲人成a在线v网站 | 色综合久久久无码中文字幕 | 亚洲精品国偷拍自产在线观看蜜桃 | 四虎国产精品一区二区 | 国产激情艳情在线看视频 | 亚洲精品一区三区三区在线观看 | 无码吃奶揉捏奶头高潮视频 | 国产激情综合五月久久 | 福利一区二区三区视频在线观看 | 国产无遮挡又黄又爽免费视频 | 国产午夜无码精品免费看 | 亚洲人成网站免费播放 | 亚洲中文字幕无码一久久区 | 九九热爱视频精品 | 久久99精品久久久久婷婷 | 精品国精品国产自在久国产87 | 国产熟妇另类久久久久 | 青草青草久热国产精品 | 亚洲中文字幕在线观看 | 久久久久久a亚洲欧洲av冫 | 亚洲 日韩 欧美 成人 在线观看 | 99久久久无码国产aaa精品 | 99久久精品午夜一区二区 | 国产亚洲视频中文字幕97精品 | 老司机亚洲精品影院 | 久久久久久久女国产乱让韩 | 国模大胆一区二区三区 | 东京一本一道一二三区 | 日日摸天天摸爽爽狠狠97 | 欧美第一黄网免费网站 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲 欧美 激情 小说 另类 | 国产亚洲精品久久久久久大师 | 中文久久乱码一区二区 | 大胆欧美熟妇xx | 六十路熟妇乱子伦 | 婷婷综合久久中文字幕蜜桃三电影 | 国产精品美女久久久网av | 亚洲国产精品久久久天堂 | 伊人色综合久久天天小片 | 高中生自慰www网站 | 欧洲极品少妇 | 东北女人啪啪对白 | 国产在线精品一区二区三区直播 | 亚洲人成无码网www | 亚洲第一无码av无码专区 | 久久97精品久久久久久久不卡 | 红桃av一区二区三区在线无码av | 国精产品一品二品国精品69xx | 国产综合色产在线精品 | 国产精品嫩草久久久久 | 女人被男人躁得好爽免费视频 | 国语自产偷拍精品视频偷 | 99riav国产精品视频 | 激情内射日本一区二区三区 | 无码精品国产va在线观看dvd | 人妻天天爽夜夜爽一区二区 | 国产激情综合五月久久 | 亚洲精品综合一区二区三区在线 | 人妻少妇精品无码专区二区 | 欧美性生交活xxxxxdddd | 老司机亚洲精品影院 | 一个人看的www免费视频在线观看 | 久久精品99久久香蕉国产色戒 | 成人亚洲精品久久久久软件 | 人人澡人人妻人人爽人人蜜桃 | 精品无码国产自产拍在线观看蜜 | 国产精品久久久 | 久久99精品久久久久久 | 色综合视频一区二区三区 | 在线亚洲高清揄拍自拍一品区 | 99er热精品视频 | 亚洲精品国偷拍自产在线麻豆 | 国产偷国产偷精品高清尤物 | 一二三四在线观看免费视频 | 欧美怡红院免费全部视频 | 2019午夜福利不卡片在线 | 免费国产成人高清在线观看网站 | 天干天干啦夜天干天2017 | 亚洲国产精品久久久天堂 | 色一情一乱一伦一视频免费看 | 玩弄少妇高潮ⅹxxxyw | 亚洲国产av美女网站 | 亚洲综合久久一区二区 | 久久综合色之久久综合 | 狂野欧美激情性xxxx | 久久精品无码一区二区三区 | 波多野42部无码喷潮在线 | 国产免费久久精品国产传媒 | 少妇无码一区二区二三区 | 国产一区二区三区日韩精品 | 国产无遮挡吃胸膜奶免费看 | 国产精品无码永久免费888 | 国产三级精品三级男人的天堂 | 自拍偷自拍亚洲精品10p | 2020最新国产自产精品 | 中文字幕乱码中文乱码51精品 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲一区二区三区 | 麻花豆传媒剧国产免费mv在线 | 国产激情无码一区二区app | 久久99精品国产麻豆 | 亚洲日韩av一区二区三区四区 | 亚洲va中文字幕无码久久不卡 | 亚洲成a人片在线观看无码 | 久久熟妇人妻午夜寂寞影院 | 日日碰狠狠躁久久躁蜜桃 | 亚洲成av人片在线观看无码不卡 | 亚洲综合色区中文字幕 | 欧洲熟妇精品视频 | 亚洲精品久久久久中文第一幕 | 成人精品一区二区三区中文字幕 | 久久精品国产日本波多野结衣 | 国产精品亚洲а∨无码播放麻豆 | 67194成是人免费无码 | 久久综合给合久久狠狠狠97色 | 国产精品久久久av久久久 | 55夜色66夜色国产精品视频 | 波多野结衣乳巨码无在线观看 | 国产av无码专区亚洲a∨毛片 | 国产无遮挡又黄又爽免费视频 | 欧洲美熟女乱又伦 | 丰满护士巨好爽好大乳 | 成人动漫在线观看 | 久久久av男人的天堂 | 国产精品国产自线拍免费软件 | 亚洲成av人影院在线观看 | 国产舌乚八伦偷品w中 | 377p欧洲日本亚洲大胆 | 免费人成在线观看网站 | 激情综合激情五月俺也去 | 亚洲性无码av中文字幕 | 久久精品国产99精品亚洲 | 亚洲日韩av片在线观看 | 亚洲娇小与黑人巨大交 | 国产成人无码区免费内射一片色欲 | 麻豆国产丝袜白领秘书在线观看 | 国产 精品 自在自线 | 亚洲国产精品一区二区美利坚 | 人妻无码久久精品人妻 | 鲁大师影院在线观看 | 亚洲精品综合五月久久小说 | 亚洲国产高清在线观看视频 | 精品久久久久久人妻无码中文字幕 | 国产成人无码av片在线观看不卡 | 亚洲乱亚洲乱妇50p | 天堂а√在线中文在线 | 人妻少妇精品视频专区 | 国语自产偷拍精品视频偷 | 水蜜桃色314在线观看 | 精品久久久无码中文字幕 | 无码成人精品区在线观看 | 蜜桃视频插满18在线观看 | 久久久国产精品无码免费专区 | 久久99精品国产麻豆 | 久青草影院在线观看国产 | 久久国产劲爆∧v内射 | 亚洲精品午夜无码电影网 | 18禁黄网站男男禁片免费观看 | 久久熟妇人妻午夜寂寞影院 | 熟妇人妻中文av无码 | 麻豆国产97在线 | 欧洲 | 久久综合狠狠综合久久综合88 | 亚洲乱亚洲乱妇50p | 精品偷自拍另类在线观看 | 国产精品亚洲а∨无码播放麻豆 | 成人无码精品一区二区三区 | 漂亮人妻洗澡被公强 日日躁 | 少妇愉情理伦片bd | 亚洲国产精品无码一区二区三区 | 国产精品嫩草久久久久 | 国产内射老熟女aaaa | 男女下面进入的视频免费午夜 | 正在播放老肥熟妇露脸 | 国产av无码专区亚洲a∨毛片 | 亚洲精品中文字幕久久久久 | 国产手机在线αⅴ片无码观看 | 亚洲乱亚洲乱妇50p | 久久精品人妻少妇一区二区三区 | 无码中文字幕色专区 | 特黄特色大片免费播放器图片 | 俺去俺来也在线www色官网 | 亚洲色偷偷偷综合网 | 鲁一鲁av2019在线 | 国产精品永久免费视频 | 又大又硬又爽免费视频 | 久久久久免费看成人影片 | 亚洲精品成人av在线 | 无码任你躁久久久久久久 | 少妇人妻偷人精品无码视频 | 亚洲狠狠婷婷综合久久 | 影音先锋中文字幕无码 | 亚洲の无码国产の无码影院 | 亚洲欧美日韩成人高清在线一区 | 欧美精品在线观看 | 1000部啪啪未满十八勿入下载 | 伊人久久大香线蕉av一区二区 | 亚洲а∨天堂久久精品2021 | 国产av无码专区亚洲a∨毛片 | 成熟妇人a片免费看网站 | 亚洲精品一区二区三区婷婷月 | 国产成人精品必看 | 国产av人人夜夜澡人人爽麻豆 | 青青青手机频在线观看 | 欧美日韩综合一区二区三区 | 亚洲精品国产a久久久久久 | 国产乱人无码伦av在线a | 亚洲成av人片在线观看无码不卡 | 精品国产精品久久一区免费式 | √8天堂资源地址中文在线 | 少妇久久久久久人妻无码 | 图片区 小说区 区 亚洲五月 | 亚洲 a v无 码免 费 成 人 a v | 成在人线av无码免观看麻豆 | 动漫av网站免费观看 | 未满成年国产在线观看 | 午夜福利试看120秒体验区 | 色婷婷香蕉在线一区二区 | 在线亚洲高清揄拍自拍一品区 | 中文字幕无码日韩专区 | 午夜精品久久久久久久 | 欧美人与禽猛交狂配 | 国产午夜无码视频在线观看 | 一本一道久久综合久久 | 欧洲熟妇精品视频 | 日本一卡2卡3卡四卡精品网站 | 俺去俺来也在线www色官网 | 国产明星裸体无码xxxx视频 | 亚洲精品国产品国语在线观看 | 3d动漫精品啪啪一区二区中 | 麻豆国产人妻欲求不满谁演的 | 久久精品女人天堂av免费观看 | 亲嘴扒胸摸屁股激烈网站 | 国产成人综合美国十次 | 清纯唯美经典一区二区 | 高清不卡一区二区三区 | 中文字幕乱码亚洲无线三区 | 久久久久久av无码免费看大片 | 给我免费的视频在线观看 | 无码福利日韩神码福利片 | 国产午夜精品一区二区三区嫩草 | 亚洲精品午夜国产va久久成人 | 久久久久久九九精品久 | 狠狠噜狠狠狠狠丁香五月 | 久久 国产 尿 小便 嘘嘘 | 亚洲a无码综合a国产av中文 | 正在播放东北夫妻内射 | 国产午夜精品一区二区三区嫩草 | 日韩亚洲欧美中文高清在线 | 久久亚洲a片com人成 | 欧美性猛交内射兽交老熟妇 | 精品久久久无码人妻字幂 | 丰满人妻精品国产99aⅴ | 中文字幕乱妇无码av在线 | 97精品人妻一区二区三区香蕉 | 精品成在人线av无码免费看 | 久久久久亚洲精品男人的天堂 | 中文字幕av无码一区二区三区电影 | 无码午夜成人1000部免费视频 | 狠狠色丁香久久婷婷综合五月 | 欧美日韩在线亚洲综合国产人 | 国内精品人妻无码久久久影院 | 中文字幕人妻无码一夲道 | 国产高潮视频在线观看 | 欧美性生交xxxxx久久久 | 少妇邻居内射在线 | 国产艳妇av在线观看果冻传媒 | 日本大乳高潮视频在线观看 | 久久综合网欧美色妞网 | 欧美精品在线观看 | 亚洲精品国产第一综合99久久 | 国产在线精品一区二区高清不卡 | 国产在热线精品视频 | 久久国产精品精品国产色婷婷 | 国产明星裸体无码xxxx视频 | 东京无码熟妇人妻av在线网址 | www国产亚洲精品久久久日本 | 国产免费观看黄av片 | 国产综合在线观看 | 成人女人看片免费视频放人 | 欧美xxxx黑人又粗又长 | 亚洲欧美精品伊人久久 | 精品乱子伦一区二区三区 | 久久久国产一区二区三区 | 亚洲国产精品久久久久久 | 男人和女人高潮免费网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 精品国产一区av天美传媒 | 性欧美熟妇videofreesex | 亚洲成av人在线观看网址 | 国产精品福利视频导航 | 日本成熟视频免费视频 | 免费乱码人妻系列无码专区 | 亚洲国产精品一区二区美利坚 | 国产人妻大战黑人第1集 | 在线观看免费人成视频 | 人人妻人人澡人人爽欧美精品 | 久久综合色之久久综合 | 人妻aⅴ无码一区二区三区 | 老头边吃奶边弄进去呻吟 | 国内精品人妻无码久久久影院 | 精品无码国产自产拍在线观看蜜 | 两性色午夜免费视频 | 国产三级久久久精品麻豆三级 | aa片在线观看视频在线播放 | 夜精品a片一区二区三区无码白浆 | 日日橹狠狠爱欧美视频 | 女高中生第一次破苞av | 成人精品视频一区二区三区尤物 | 亚洲午夜无码久久 | 九九综合va免费看 | 在线观看国产午夜福利片 | 伊人色综合久久天天小片 | 乱中年女人伦av三区 | 天天拍夜夜添久久精品大 | 图片区 小说区 区 亚洲五月 | 一本色道久久综合亚洲精品不卡 | 在线观看国产一区二区三区 | 97久久国产亚洲精品超碰热 | 性生交大片免费看女人按摩摩 | 麻豆国产人妻欲求不满谁演的 | 国产激情精品一区二区三区 | 亚洲日本va午夜在线电影 | 国产精品18久久久久久麻辣 | 丰满少妇熟乱xxxxx视频 | 丰满少妇熟乱xxxxx视频 | 在线a亚洲视频播放在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 人人爽人人澡人人高潮 | 久久国产36精品色熟妇 | 最近免费中文字幕中文高清百度 | 午夜男女很黄的视频 | 精品少妇爆乳无码av无码专区 | 国内精品人妻无码久久久影院蜜桃 | 久久精品人人做人人综合试看 | 欧美老妇与禽交 | 无码吃奶揉捏奶头高潮视频 | 成人av无码一区二区三区 | 久久午夜无码鲁丝片 | 久久精品人人做人人综合试看 | 成人精品天堂一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 国产亚洲人成在线播放 | 日韩av无码中文无码电影 | 水蜜桃色314在线观看 | 亚洲国产精品成人久久蜜臀 | 中国女人内谢69xxxxxa片 | 亚洲成a人片在线观看日本 | 131美女爱做视频 | 久久久久av无码免费网 | 亚洲国产高清在线观看视频 | 蜜臀aⅴ国产精品久久久国产老师 | 好屌草这里只有精品 | 国产成人精品久久亚洲高清不卡 | 伊人久久大香线蕉av一区二区 | 大屁股大乳丰满人妻 | 在教室伦流澡到高潮hnp视频 | 久久人人爽人人人人片 | 国产精品久久久久久无码 | 色综合久久久无码中文字幕 | 超碰97人人做人人爱少妇 | 亚洲国产精品一区二区美利坚 | 亚洲国产精品一区二区美利坚 | 久久精品视频在线看15 | 国产精品va在线观看无码 | 欧美黑人性暴力猛交喷水 | 国产熟女一区二区三区四区五区 | 男女下面进入的视频免费午夜 | 久久99热只有频精品8 | 久久国产精品萌白酱免费 | 日韩无码专区 | 日本熟妇人妻xxxxx人hd | 国产成人精品三级麻豆 | 性开放的女人aaa片 | 两性色午夜免费视频 | 亚洲国产成人av在线观看 | 亚洲呦女专区 | 国产av久久久久精东av | 人妻夜夜爽天天爽三区 | 高潮毛片无遮挡高清免费 | 天堂无码人妻精品一区二区三区 | 国产激情无码一区二区app | а√天堂www在线天堂小说 | 久久综合网欧美色妞网 | 无码任你躁久久久久久久 | 正在播放东北夫妻内射 | 亚洲人成网站色7799 | 野外少妇愉情中文字幕 | 久久天天躁夜夜躁狠狠 | 无套内谢老熟女 | 一本大道久久东京热无码av | 人人澡人摸人人添 | 国内精品久久久久久中文字幕 | 亚洲精品鲁一鲁一区二区三区 | 国产女主播喷水视频在线观看 | 亚洲日韩中文字幕在线播放 | 亚洲一区二区三区国产精华液 | 国产亚洲精品久久久久久 | av香港经典三级级 在线 | 国产av人人夜夜澡人人爽麻豆 | 免费看男女做好爽好硬视频 | 在线观看免费人成视频 | 少妇被粗大的猛进出69影院 | 骚片av蜜桃精品一区 | 99久久精品无码一区二区毛片 | 无码av中文字幕免费放 | 久久成人a毛片免费观看网站 | 国内精品人妻无码久久久影院蜜桃 | 国产在线无码精品电影网 | 人人澡人摸人人添 | 高清国产亚洲精品自在久久 | 女人被爽到呻吟gif动态图视看 | 国产美女精品一区二区三区 | 成在人线av无码免观看麻豆 | 丝袜人妻一区二区三区 | 日韩av无码一区二区三区 | 国内精品人妻无码久久久影院 | 无码一区二区三区在线观看 | 中国女人内谢69xxxx | 国产精品丝袜黑色高跟鞋 | 欧美国产亚洲日韩在线二区 | 国产明星裸体无码xxxx视频 | 亚洲自偷自偷在线制服 | 久久综合九色综合97网 | 中文字幕av日韩精品一区二区 | 玩弄少妇高潮ⅹxxxyw | 亚洲日韩一区二区三区 | 亚洲码国产精品高潮在线 | 丰满肥臀大屁股熟妇激情视频 | 欧美老妇交乱视频在线观看 | 国产熟妇另类久久久久 | 国产精品亚洲а∨无码播放麻豆 | 国产熟妇高潮叫床视频播放 | 国产在线一区二区三区四区五区 | 性色欲情网站iwww九文堂 | 中文字幕av无码一区二区三区电影 | 成人精品一区二区三区中文字幕 | 午夜理论片yy44880影院 | 极品尤物被啪到呻吟喷水 | 无码人妻黑人中文字幕 | 亚洲欧洲无卡二区视頻 | 中文字幕日产无线码一区 | 国内精品人妻无码久久久影院 | 亚洲成av人影院在线观看 | 天堂久久天堂av色综合 | 中文字幕无码人妻少妇免费 | 精品熟女少妇av免费观看 | 国产亚洲日韩欧美另类第八页 | 97精品人妻一区二区三区香蕉 | 欧美黑人乱大交 | 真人与拘做受免费视频 | 久久99精品久久久久久 | 亚洲男人av香蕉爽爽爽爽 | 国产在热线精品视频 | 国产av无码专区亚洲awww | 国产人妻人伦精品1国产丝袜 | 免费无码肉片在线观看 | 亚洲中文字幕乱码av波多ji | 亚洲自偷自偷在线制服 | 东京热一精品无码av | 色婷婷综合中文久久一本 | 色欲久久久天天天综合网精品 | 东京无码熟妇人妻av在线网址 | 99久久亚洲精品无码毛片 | 欧美性色19p | 欧美日韩在线亚洲综合国产人 | 中文字幕无码av激情不卡 | 美女黄网站人色视频免费国产 | 亚洲欧美国产精品久久 | 国产激情综合五月久久 | 精品久久久无码中文字幕 | 亚洲国精产品一二二线 | 一本久久a久久精品vr综合 | 婷婷六月久久综合丁香 | 国产电影无码午夜在线播放 | 日韩精品乱码av一区二区 | 久久97精品久久久久久久不卡 | 国产精品无套呻吟在线 | 99久久精品午夜一区二区 | 亚洲 欧美 激情 小说 另类 | 丝袜人妻一区二区三区 | 性欧美疯狂xxxxbbbb | 又大又硬又黄的免费视频 | 国产精品第一区揄拍无码 | 国产亚洲日韩欧美另类第八页 | 日本又色又爽又黄的a片18禁 | 亚洲 激情 小说 另类 欧美 | 亚洲自偷自偷在线制服 | 性欧美牲交在线视频 | 大色综合色综合网站 | 伊人久久大香线蕉av一区二区 | 永久免费精品精品永久-夜色 | 亚洲一区二区三区偷拍女厕 | 亚洲乱亚洲乱妇50p | 国产人妻精品午夜福利免费 | 亚洲狠狠色丁香婷婷综合 | 女人被男人躁得好爽免费视频 | 人妻插b视频一区二区三区 | 无码播放一区二区三区 | 国产高潮视频在线观看 | 婷婷五月综合缴情在线视频 | 亚洲国产欧美在线成人 | 大色综合色综合网站 | 在线观看欧美一区二区三区 | 5858s亚洲色大成网站www | 日本乱偷人妻中文字幕 | 精品水蜜桃久久久久久久 | 人妻与老人中文字幕 | 任你躁国产自任一区二区三区 | 国产凸凹视频一区二区 | 午夜精品久久久久久久 | 午夜丰满少妇性开放视频 | 麻豆蜜桃av蜜臀av色欲av | 东北女人啪啪对白 | 蜜臀aⅴ国产精品久久久国产老师 | 色爱情人网站 | 精品亚洲韩国一区二区三区 | 人人爽人人澡人人人妻 | 国产精品福利视频导航 | 天天摸天天透天天添 | 日韩精品无码免费一区二区三区 | 成 人 免费观看网站 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产亚洲视频中文字幕97精品 | 亚洲精品一区三区三区在线观看 | 综合网日日天干夜夜久久 | 欧美大屁股xxxxhd黑色 | 亚洲精品欧美二区三区中文字幕 | 国产人成高清在线视频99最全资源 | 国产成人无码区免费内射一片色欲 | 女人被男人躁得好爽免费视频 | 亚洲精品成a人在线观看 | 亚欧洲精品在线视频免费观看 | 精品一区二区三区无码免费视频 | 色综合久久久无码中文字幕 | 东京热一精品无码av | 激情综合激情五月俺也去 | 成年美女黄网站色大免费全看 | 欧洲精品码一区二区三区免费看 | 狠狠色噜噜狠狠狠7777奇米 | 永久免费精品精品永久-夜色 | 性史性农村dvd毛片 | 老司机亚洲精品影院 | 久久久精品456亚洲影院 | 亚洲一区二区三区在线观看网站 | 强伦人妻一区二区三区视频18 | 日本精品少妇一区二区三区 | 300部国产真实乱 | 久久婷婷五月综合色国产香蕉 | 成人动漫在线观看 | 未满成年国产在线观看 | 日产国产精品亚洲系列 | 国产后入清纯学生妹 | 亚洲午夜无码久久 | 国产成人无码av在线影院 | 亚洲欧美日韩综合久久久 | 精品久久8x国产免费观看 | 少妇的肉体aa片免费 | 国产三级精品三级男人的天堂 | 久久久成人毛片无码 | 思思久久99热只有频精品66 | 特黄特色大片免费播放器图片 | 欧美变态另类xxxx | 人妻互换免费中文字幕 | 性色欲情网站iwww九文堂 | 日日夜夜撸啊撸 | 欧美猛少妇色xxxxx | 中文字幕无码av激情不卡 | 国产在线精品一区二区高清不卡 | 日韩少妇白浆无码系列 | 国产在线精品一区二区高清不卡 | 亚洲男女内射在线播放 | a片在线免费观看 | 久久久久亚洲精品中文字幕 | 人人爽人人澡人人人妻 | 色婷婷综合激情综在线播放 | 又大又硬又黄的免费视频 | 欧美日韩一区二区三区自拍 | 日韩欧美中文字幕在线三区 | 国产精品人人爽人人做我的可爱 | 欧美zoozzooz性欧美 | 人人澡人人透人人爽 | 中文字幕人妻无码一区二区三区 | 熟女俱乐部五十路六十路av | 久久综合久久自在自线精品自 | 久久久久久av无码免费看大片 | 亚洲日韩av一区二区三区四区 | 熟女少妇人妻中文字幕 | 成人一在线视频日韩国产 | 白嫩日本少妇做爰 | 日本护士xxxxhd少妇 | 狂野欧美性猛交免费视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲国产精品久久久久久 | 色欲av亚洲一区无码少妇 | 青青草原综合久久大伊人精品 | 玩弄少妇高潮ⅹxxxyw | 欧美日本免费一区二区三区 | 精品无码av一区二区三区 | 一本无码人妻在中文字幕免费 | 性史性农村dvd毛片 | 国产成人无码a区在线观看视频app | 国产精品亚洲一区二区三区喷水 | 天下第一社区视频www日本 | 亚洲の无码国产の无码影院 | 中文字幕日产无线码一区 | 久久久久免费精品国产 | 亚洲精品一区二区三区在线 | 欧美三级a做爰在线观看 | 精品久久久久久人妻无码中文字幕 | 久久人人97超碰a片精品 | 久久aⅴ免费观看 | 精品熟女少妇av免费观看 | www一区二区www免费 | 亚洲日本一区二区三区在线 | 日本xxxx色视频在线观看免费 | 亚洲爆乳精品无码一区二区三区 | 婷婷丁香五月天综合东京热 | 欧美老妇交乱视频在线观看 | 精品久久久无码中文字幕 | 丰满人妻被黑人猛烈进入 | 水蜜桃av无码 | 国产亚洲视频中文字幕97精品 | 天堂无码人妻精品一区二区三区 | 国产精华av午夜在线观看 | 又紧又大又爽精品一区二区 | 宝宝好涨水快流出来免费视频 | 国产口爆吞精在线视频 | 日本熟妇浓毛 | 国产电影无码午夜在线播放 | 国产精品丝袜黑色高跟鞋 | 亚洲色无码一区二区三区 | 欧美日本免费一区二区三区 | 亚洲 欧美 激情 小说 另类 | 国产午夜无码视频在线观看 | 老太婆性杂交欧美肥老太 | 大肉大捧一进一出好爽视频 | 日欧一片内射va在线影院 | 中文字幕人成乱码熟女app | 国产精华av午夜在线观看 | 亚洲乱亚洲乱妇50p | 国产人妻人伦精品1国产丝袜 | 亚洲国产精品毛片av不卡在线 | 伊人久久大香线蕉亚洲 | 一二三四社区在线中文视频 | 午夜福利不卡在线视频 | 任你躁在线精品免费 | 无码av最新清无码专区吞精 | 亚洲欧美日韩国产精品一区二区 | 精品国产成人一区二区三区 | 欧美成人午夜精品久久久 | 午夜成人1000部免费视频 | 97精品人妻一区二区三区香蕉 | 中文精品久久久久人妻不卡 | 西西人体www44rt大胆高清 | 色情久久久av熟女人妻网站 | 性欧美大战久久久久久久 | 强伦人妻一区二区三区视频18 | 久久精品女人的天堂av | 久久久亚洲欧洲日产国码αv | 性欧美牲交在线视频 | 日本精品高清一区二区 | 夜精品a片一区二区三区无码白浆 | 日韩人妻少妇一区二区三区 | 亚洲精品中文字幕乱码 | 国产精品va在线观看无码 | 天海翼激烈高潮到腰振不止 | 老太婆性杂交欧美肥老太 | 亚洲成色www久久网站 | 女人被男人爽到呻吟的视频 | 老司机亚洲精品影院 | 国产日产欧产精品精品app | 成人一在线视频日韩国产 | 国产精品二区一区二区aⅴ污介绍 | 三上悠亚人妻中文字幕在线 | 久青草影院在线观看国产 | 亚洲男人av天堂午夜在 | 中文字幕+乱码+中文字幕一区 | 亚洲一区av无码专区在线观看 | 国产内射爽爽大片视频社区在线 | 99久久久无码国产精品免费 | 性色av无码免费一区二区三区 | 久久久精品国产sm最大网站 | 国产凸凹视频一区二区 | 永久免费精品精品永久-夜色 | 免费无码一区二区三区蜜桃大 | 美女极度色诱视频国产 | 国产97在线 | 亚洲 | 中文字幕无码人妻少妇免费 | 久久国内精品自在自线 | 夜夜高潮次次欢爽av女 | 国产av一区二区精品久久凹凸 | 中文字幕 人妻熟女 | 免费观看激色视频网站 | 成人无码精品一区二区三区 | 在线视频网站www色 | 四虎国产精品免费久久 | 国产乱码精品一品二品 | 精品亚洲韩国一区二区三区 | 天下第一社区视频www日本 | 少妇性l交大片欧洲热妇乱xxx | 久久精品国产精品国产精品污 | 精品午夜福利在线观看 | 99久久99久久免费精品蜜桃 | 人人爽人人澡人人高潮 | 亚洲乱码中文字幕在线 | 精品国产青草久久久久福利 | 偷窥日本少妇撒尿chinese | 久久熟妇人妻午夜寂寞影院 | 午夜精品一区二区三区在线观看 | 亚洲综合另类小说色区 | 亚洲 欧美 激情 小说 另类 | www国产精品内射老师 | 国产性生大片免费观看性 | 欧美成人午夜精品久久久 | 久久伊人色av天堂九九小黄鸭 | 国产区女主播在线观看 | 强开小婷嫩苞又嫩又紧视频 | 99riav国产精品视频 | 精品国产麻豆免费人成网站 | 大乳丰满人妻中文字幕日本 | 丰满诱人的人妻3 | 国产一精品一av一免费 | 精品无人区无码乱码毛片国产 | 久久99精品国产.久久久久 | 两性色午夜视频免费播放 | 欧美午夜特黄aaaaaa片 | 乱人伦人妻中文字幕无码久久网 | 学生妹亚洲一区二区 | 男女作爱免费网站 | 亚洲国产一区二区三区在线观看 | 欧美 日韩 亚洲 在线 | 俺去俺来也在线www色官网 | 久久99国产综合精品 | 捆绑白丝粉色jk震动捧喷白浆 | 成人亚洲精品久久久久软件 | 国产精品美女久久久久av爽李琼 | 久久久久99精品国产片 | 男人扒开女人内裤强吻桶进去 | 一个人看的视频www在线 | 亚洲爆乳精品无码一区二区三区 | 久久久精品456亚洲影院 | 国产亚洲精品久久久ai换 | 国产成人综合美国十次 | 久久国产精品_国产精品 | 97人妻精品一区二区三区 | 内射老妇bbwx0c0ck | 色五月丁香五月综合五月 | 2019nv天堂香蕉在线观看 | 国产成人综合色在线观看网站 | 性史性农村dvd毛片 | 波多野结衣av在线观看 | 国产无遮挡又黄又爽免费视频 | 国产国产精品人在线视 | 日本一区二区更新不卡 | 无码国内精品人妻少妇 | 亚洲性无码av中文字幕 | 精品国产av色一区二区深夜久久 | 久久精品国产大片免费观看 | 动漫av网站免费观看 | 亚洲综合无码久久精品综合 | 99久久亚洲精品无码毛片 | 成人免费无码大片a毛片 | 少妇被黑人到高潮喷出白浆 | 久久久无码中文字幕久... | 丝袜足控一区二区三区 | 精品偷自拍另类在线观看 | 国产精品鲁鲁鲁 | 又湿又紧又大又爽a视频国产 | 88国产精品欧美一区二区三区 | 久久精品国产99久久6动漫 | 日本欧美一区二区三区乱码 | 99久久人妻精品免费二区 | 婷婷丁香六月激情综合啪 | 对白脏话肉麻粗话av | 熟女少妇人妻中文字幕 | 久久精品中文字幕一区 | www国产精品内射老师 | 人妻少妇精品视频专区 | 在教室伦流澡到高潮hnp视频 | 国产免费观看黄av片 | 伦伦影院午夜理论片 | 曰韩无码二三区中文字幕 | 国产精品无码永久免费888 | 又粗又大又硬毛片免费看 | 久久久亚洲欧洲日产国码αv | 精品久久久中文字幕人妻 | 亚洲色成人中文字幕网站 | 精品一区二区不卡无码av | 亚洲国产午夜精品理论片 | 免费观看又污又黄的网站 | 给我免费的视频在线观看 | 色狠狠av一区二区三区 | av香港经典三级级 在线 | 久久国产36精品色熟妇 | 国产亚洲精品久久久久久久久动漫 | 福利一区二区三区视频在线观看 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲日本在线电影 | 亚洲 欧美 激情 小说 另类 | 亚洲高清偷拍一区二区三区 | 欧美三级a做爰在线观看 | 免费视频欧美无人区码 | yw尤物av无码国产在线观看 | 真人与拘做受免费视频一 | 亚洲va中文字幕无码久久不卡 | 亚洲小说图区综合在线 | 午夜不卡av免费 一本久久a久久精品vr综合 | 丝袜人妻一区二区三区 | 少妇一晚三次一区二区三区 | 久久精品中文字幕大胸 | 久久久久99精品国产片 | 久久久无码中文字幕久... | 丰满少妇熟乱xxxxx视频 | 樱花草在线社区www | 日本饥渴人妻欲求不满 | 成在人线av无码免观看麻豆 | 日韩少妇内射免费播放 | 玩弄中年熟妇正在播放 | 国产精品国产三级国产专播 | 超碰97人人做人人爱少妇 | 九月婷婷人人澡人人添人人爽 | 乌克兰少妇xxxx做受 | 国产精品沙发午睡系列 | 欧美人与禽zoz0性伦交 | 亚洲国产综合无码一区 | 亚洲爆乳无码专区 | 狠狠躁日日躁夜夜躁2020 | 丰满人妻一区二区三区免费视频 | a在线亚洲男人的天堂 | 黑人玩弄人妻中文在线 | 精品无码成人片一区二区98 | 女人被男人爽到呻吟的视频 | 国产肉丝袜在线观看 | 四虎永久在线精品免费网址 | 日本一区二区更新不卡 | 无遮无挡爽爽免费视频 | 人人妻人人澡人人爽人人精品 | 亚洲精品成人福利网站 | www成人国产高清内射 | 久久人人97超碰a片精品 | 永久免费精品精品永久-夜色 | 激情五月综合色婷婷一区二区 | 国内精品人妻无码久久久影院蜜桃 | 国产精品久久久av久久久 | 亚洲中文字幕成人无码 | 亚洲日本va中文字幕 | 国产精品无码久久av | 欧美xxxx黑人又粗又长 | 成人av无码一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产麻豆精品一区二区三区v视界 | 欧美xxxx黑人又粗又长 | 欧洲精品码一区二区三区免费看 | 久久 国产 尿 小便 嘘嘘 | 中文字幕无码免费久久9一区9 | 性生交大片免费看l | 成人欧美一区二区三区 | 人妻aⅴ无码一区二区三区 | 亚洲国产av精品一区二区蜜芽 | 亚洲另类伦春色综合小说 | 亚洲人亚洲人成电影网站色 | 国产精品沙发午睡系列 | 国产成人无码av一区二区 | 欧美成人午夜精品久久久 | 亚洲成av人片在线观看无码不卡 | 伊人久久大香线蕉午夜 | 美女黄网站人色视频免费国产 | 国产特级毛片aaaaaa高潮流水 | 欧美精品在线观看 | 国产精品福利视频导航 | 中文毛片无遮挡高清免费 | 亚洲中文字幕久久无码 | 亚洲国精产品一二二线 | 奇米影视7777久久精品人人爽 | 亚洲精品中文字幕久久久久 | 久久久久久国产精品无码下载 | 精品 日韩 国产 欧美 视频 | 男女下面进入的视频免费午夜 | www国产亚洲精品久久久日本 | 欧美喷潮久久久xxxxx | 亚洲精品一区二区三区婷婷月 | 又大又黄又粗又爽的免费视频 | 无码免费一区二区三区 | 亚洲熟妇自偷自拍另类 | 伊人久久大香线蕉av一区二区 | 精品国产福利一区二区 | 双乳奶水饱满少妇呻吟 | 国内揄拍国内精品少妇国语 | 日韩欧美中文字幕在线三区 | 亚洲成av人片在线观看无码不卡 | 在线观看免费人成视频 | 久久久久亚洲精品中文字幕 | 中文字幕无码日韩欧毛 | 中文字幕日产无线码一区 | 综合网日日天干夜夜久久 | 国模大胆一区二区三区 | 久久久精品成人免费观看 | 久久久久亚洲精品中文字幕 | 欧美性黑人极品hd | 亚洲精品久久久久久一区二区 | 无码国产色欲xxxxx视频 | 亚洲国精产品一二二线 | 中文字幕无码视频专区 | 中文字幕av日韩精品一区二区 | 骚片av蜜桃精品一区 | 性色欲网站人妻丰满中文久久不卡 | 中文字幕人妻无码一区二区三区 | 国内揄拍国内精品人妻 | 日韩精品乱码av一区二区 | 色婷婷久久一区二区三区麻豆 | 日日摸天天摸爽爽狠狠97 | 久久久久av无码免费网 | 色婷婷综合中文久久一本 | 98国产精品综合一区二区三区 | 亚洲国产精品一区二区美利坚 | 国产免费久久精品国产传媒 | 牲交欧美兽交欧美 | 日韩av无码中文无码电影 | 少妇性俱乐部纵欲狂欢电影 | 无码吃奶揉捏奶头高潮视频 | 欧美人与禽zoz0性伦交 | 亚洲精品国产精品乱码不卡 | 亚洲区小说区激情区图片区 | 久久天天躁夜夜躁狠狠 | 97se亚洲精品一区 | 亚洲中文字幕无码一久久区 | 久久久精品国产sm最大网站 | 亚洲精品一区二区三区在线 | 午夜性刺激在线视频免费 | 亚洲欧美色中文字幕在线 | 国产激情无码一区二区 | 亚洲aⅴ无码成人网站国产app | 精品成人av一区二区三区 |