• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    關(guān)于EDKIIBuild工具的性能優(yōu)化研究

    2020-08-13 07:17:51朱勇洪
    軟件 2020年6期
    關(guān)鍵詞:性能優(yōu)化

    摘 ?要: EDKII作為當(dāng)前最流行的UEFI開(kāi)源實(shí)現(xiàn),其編譯工具性能的提升是非常關(guān)鍵也是值得研究的,同時(shí)編譯過(guò)程的快慢也是衡量這一框架的重要指標(biāo)。通過(guò)使用cProfile對(duì)EDKII Build工具編譯時(shí)間進(jìn)行分析,在Pre-build階段和Post-build階段進(jìn)行源代碼的修改,實(shí)現(xiàn)了通過(guò)比較編譯模塊Autogen相關(guān)文件時(shí)間戳是否改變的方式來(lái)提升增量編譯的性能和多線程產(chǎn)生平臺(tái)固件文件的方式來(lái)提升整體編譯的性能,采用這兩方面的改進(jìn),使得Build工具編譯達(dá)到更高的效率。最后在OVMF和KabyLake平臺(tái)的編譯過(guò)程中對(duì)上述兩個(gè)優(yōu)化方案進(jìn)行了檢測(cè)驗(yàn)證。

    關(guān)鍵詞: UEFI;EDKII;Build;性能優(yōu)化

    中圖分類號(hào): TP302.7 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.06.039

    本文著錄格式:朱勇洪. 關(guān)于EDKII Build工具的性能優(yōu)化研究[J]. 軟件,2020,41(06):192195

    【Abstract】: With the wide use of EDKII framework, the performance of Build tool becomes more and more important. Analyze the Build tools performance by cProfile, then update the code of Pre-build phase and Post-build phase, use the method to skip module Autogen by comparing timestamp and multiple thread to generate the firmware files to enhance the tools performance. In the end this enhancement method has been verified on OVMF and KabyLake platforms build process.

    【Key words】: UEFI; EDKII; Build; Performance

    0 ?引言

    軟件廠商可以根據(jù)UEFI[1]標(biāo)準(zhǔn)開(kāi)發(fā)屬于自己的UEFI實(shí)現(xiàn),其中最常用的開(kāi)源實(shí)現(xiàn)便是EDKII[2]。EDKII是遵循UEFI標(biāo)準(zhǔn)和PI[3]標(biāo)準(zhǔn)的跨平臺(tái)固件開(kāi)發(fā)環(huán)境,EDKII Build Tool是其中的平臺(tái)編譯工具。該工具目前正在被UEFI社區(qū)、開(kāi)發(fā)人員、測(cè)試人員及UEFI愛(ài)好者以日均數(shù)以幾千次甚至上萬(wàn)次的頻率在使用,對(duì)于一些簡(jiǎn)單平臺(tái)的編譯,該工具能夠很快的完成編譯,而對(duì)于一些復(fù)雜的服務(wù)器平臺(tái)的編譯,該工具往往需要20分鐘甚至半小時(shí)以上的編譯時(shí)間,那么這個(gè)效率就很難讓使用者滿意了。因而該工具的性能在使用過(guò)程中越來(lái)越被人們重視起來(lái)了。

    本文通過(guò)cProfile對(duì)Build工具編譯耗費(fèi)時(shí)間比較長(zhǎng)的過(guò)程進(jìn)行分析,研究并實(shí)現(xiàn)了該工具在Pre-build階段和Post-build階段的一些優(yōu)化方案,有效的為整個(gè)平臺(tái)的編譯過(guò)程簡(jiǎn)省編譯時(shí)長(zhǎng),提升工具的整體性能。

    1 ?EDKII Build過(guò)程簡(jiǎn)介

    EDKII Build主要是用來(lái)處理EDKII meta-data文件(包括build_rule.txt, tools_def.txt, target.txt等),EDKII source和 binary文件,以及一些已經(jīng)存在的可兼容的EDK組件和庫(kù)模塊文件,最終產(chǎn)生遵循UEFI和PI規(guī)范的二進(jìn)制文件。

    EDKII Build過(guò)程可以分為3個(gè)主要階段:

    Pre-build(AutoGen)階段:主要是來(lái)解析meta-data文件,.dsc文件,.inf文件,.fdf文件,.dec文件,Unicode文件和VFR文件等,產(chǎn)生一些標(biāo)準(zhǔn)C的代碼文件(Autogen.c,Autogen.h)和相應(yīng)的Makefile文件[4]。

    Build階段:主要是來(lái)處理source文件并通過(guò)Make(Linux系統(tǒng))或者Nmake(Windows系統(tǒng))來(lái)生成符合EFI格式的PE32/PE32+/COFF 文件[4]。

    Post-build(ImageGen)階段:主要是來(lái)處理binary文件和EFI格式的文件,產(chǎn)生最終的UEFI Flash Images, Capsules,Applications和PCI Option ROMs[4]。

    下圖1描述了這3個(gè)階段之間的關(guān)系。

    在整個(gè)EDKII框架的編譯流程中涉及到了以下一些輸入文件:

    .inf文件用于描述一個(gè)系統(tǒng)模塊(Module),它是UEFI系統(tǒng)的一個(gè)特色,其作用相當(dāng)于Visual Studio項(xiàng)目中的.proj文件,用于指導(dǎo)EDKII編譯工具自動(dòng)編譯模塊,它包含[Defines]、[Sources]、[Packages]、[LibraryClasses]等必須的部分以及 [Depex]、[Protocols]、[Ppis]、[Guids]、[PCD]、[BuildOptions]等可選的部分[5]。

    .dsc文件用于描述一個(gè)平臺(tái)包(Package),它相當(dāng)于Visual Studio項(xiàng)目中的.solution文件,用于指導(dǎo)編譯工具編譯整個(gè)平臺(tái)包,它包含[Defines]、[LibararyClasses]、 [Components]等幾個(gè)必需部分以及 [PCD]、[BuildOptions]等幾個(gè)可選部分[6]。其中在[Components]內(nèi)定義的模塊都會(huì)被Build 工具編譯并生成對(duì)應(yīng)的.efi可執(zhí)行文件。

    .dec文件是一個(gè)聲明文件,它定義了公開(kāi)的接口、數(shù)據(jù)及初始值,向其它模塊提供了本文件的資源。它包含了必須的[Defines]以及可選的[Includes]、[LibraryClasses]、[Guids]、[Protocols]、[Ppis]和[PCD]等幾個(gè)部分[7]。

    .fdf文件是Flash的描述文件,描述了最終固件文件的組成結(jié)構(gòu),用于生成固件Image、Option Rom Image或可啟動(dòng)的Flash Image等[8]。

    Meta-data文件中的build_rule.txt一般不需要用戶更改,編譯工具通過(guò)整個(gè)文件來(lái)定義如何處理不同的文件類型,如何構(gòu)建最終的固件Image文件等規(guī)則;而tools_def.txt則描述了用戶可配置的工具的路徑、參數(shù)等信息,以及一些默認(rèn)的編譯器標(biāo)記;target.txt描述了此次編譯的平臺(tái)名字、架構(gòu),以及build_rule.txt和tools_def.txt文件所在的路徑信息,因此該文件是編譯工具啟動(dòng)后第一個(gè)解析的。

    2 ?性能優(yōu)化方案研究

    整個(gè)Build工具的編譯過(guò)程復(fù)雜,涉及到的文件和相關(guān)工具的調(diào)用過(guò)程多,代碼量非常大,針對(duì)該工具性能的提升問(wèn)題,本文采用Python自帶的性能分析模塊cProfile[9],將其嵌入到Build工具的代碼中執(zhí)行,從而可以對(duì)得到的結(jié)果進(jìn)行分析。

    例如: python -m cProfile -s time "`dirname $0`/../../Source/Python"/`basename $0`/`basename $0`.py $*

    對(duì)整個(gè)平臺(tái)進(jìn)行編譯,可以得到如圖2的實(shí)驗(yàn)結(jié)果:

    通過(guò)對(duì)cProfile得到的結(jié)果進(jìn)行callers分析,發(fā)現(xiàn)整個(gè)工具的編譯過(guò)程在AutoGen\AutoGen.py、AutoGen\BuildEngine.py和GenFds\FfsInfStatement.py花費(fèi)的時(shí)間尤其多,因此可以考慮對(duì)其進(jìn)行優(yōu)化,主要是在Pre-build階段和Post-build階段中。

    2.1 ?Pre-build階段優(yōu)化

    Pre-build階段通過(guò)解析不同的meta-data文件來(lái)獲取平臺(tái)相關(guān)的基本信息之后,就開(kāi)始解析各個(gè)不同的模塊的源文件來(lái)產(chǎn)生對(duì)應(yīng)的Autogen.c、Autogen.h、Makefile文件和.depex文件等[4]。在一個(gè)真實(shí)的平臺(tái)描述文件(.dsc)和Flash描述文件(.fdf)中,往往包含幾百個(gè)甚至上千個(gè)對(duì)應(yīng)的.inf文件需要解析,而每個(gè).inf文件又關(guān)聯(lián)著非常多的系統(tǒng)驅(qū)動(dòng)源文件和工程文件,從而導(dǎo)致整個(gè)平臺(tái)的編譯工程在Autogen階段需要花費(fèi)相當(dāng)長(zhǎng)的時(shí)間,這種情況在復(fù)雜的服務(wù)器平臺(tái)的編譯過(guò)程中尤為常見(jiàn)。

    考慮一個(gè)很常見(jiàn)的例子,當(dāng)UEFI開(kāi)發(fā)人員對(duì)一個(gè)平臺(tái)進(jìn)行一次編譯之后,他后續(xù)對(duì)該平臺(tái)的某個(gè)系統(tǒng)驅(qū)動(dòng)程序進(jìn)行更改,可能只是更改某一個(gè)簡(jiǎn)單的.c 或者.h文件或者其它配置相關(guān)文件,此后當(dāng)他再次對(duì)整個(gè)平臺(tái)進(jìn)行重新編譯時(shí),這個(gè)時(shí)候的Autogen過(guò)程針對(duì)那些沒(méi)有被更改過(guò)的系統(tǒng)驅(qū)動(dòng)或者與被改動(dòng)的驅(qū)動(dòng)程序之間沒(méi)有存在依賴關(guān)系的系統(tǒng)驅(qū)動(dòng)而言是可以優(yōu)化的。然而,通過(guò)對(duì)cProfile得到的結(jié)果進(jìn)行分析后,發(fā)現(xiàn)當(dāng)前的Build工具并沒(méi)有做這樣的優(yōu)化,而是每次編譯都全部重新進(jìn)行產(chǎn)生。

    本文正是采用這個(gè)思路,通過(guò)判斷來(lái)優(yōu)化掉沒(méi)有被更改的或者與被更改的驅(qū)動(dòng)文件不存在依賴關(guān)系的系統(tǒng)驅(qū)動(dòng)程序的重新編譯中的Autogen過(guò)程,以此來(lái)簡(jiǎn)省平臺(tái)在增量編譯過(guò)程中整個(gè)AutoGen階段的時(shí)間,從而達(dá)到平臺(tái)增量編譯過(guò)程的性能優(yōu)化。本文主要通過(guò)對(duì)EDKII Build工具Pre-build階段中AutoGen.py源文件進(jìn)行更改,在每一個(gè)編譯模塊進(jìn)行Autogen過(guò)程之后產(chǎn)生一個(gè)全新的文件AutoGenTimeStamp,這個(gè)新的文件中記錄了此次該模塊Autogen過(guò)程中所涉及到的所有文件,包括對(duì)整個(gè)平臺(tái)編譯都有影響的.dec文件,.dsc文件,.fdf文件,build_rule.txt,tools_def.txt,target.txt以及Build平臺(tái)時(shí)提供的全局參數(shù)等,也包括只與當(dāng)前模塊編譯相關(guān)的文件,其中包含有模塊本身的源文件和工程文件(如.inf文件,.c文件,.asm匯編文件,.uni字符串資源文件,.vfr窗體資源文件等),模塊依賴的庫(kù)模塊文件,編譯自動(dòng)生成的Autogen.h文件等。因此在用戶對(duì)某個(gè)或某些系統(tǒng)驅(qū)動(dòng)程序進(jìn)行更改之后,重新對(duì)該平臺(tái)進(jìn)行增量編譯時(shí),通過(guò)對(duì)已經(jīng)存在的AutoGenTimeStamp的分析比較便可以知道當(dāng)前的文件改動(dòng)對(duì)這個(gè)驅(qū)動(dòng)程序的重新編譯是否有影響,如果有影響,則該模塊的Autogen過(guò)程重新執(zhí)行一次,否則,可以直接優(yōu)化掉該模塊的Autogen過(guò)程,從而可以省略掉沒(méi)有被影響的模塊的Autogen過(guò)程,以此來(lái)減少整個(gè)平臺(tái)在增量編譯過(guò)程中 ? ?的Autogen時(shí)間。當(dāng)然,如果用戶此次改動(dòng)的是 ? ?一個(gè)全局的文件類型,如.dec文件,.dsc文件, build_rule.txt等,那么此次新的增量編譯過(guò)程中所有的AutoGenTimeStamp都會(huì)被更新,在這種情況下,這個(gè)優(yōu)化方案對(duì)整個(gè)平臺(tái)的增量編譯性能上是沒(méi)有額外提升的。除此之外,也可以考慮通過(guò)增加計(jì)算hash值的比較方式來(lái)進(jìn)行文件是否更改的 ? 判斷。

    2.2 ?Post-build階段優(yōu)化

    當(dāng)所有的模塊的.efi可執(zhí)行文件生成之后,就進(jìn)入了Post-build的階段。這個(gè)階段處理各個(gè)模塊的.efi可執(zhí)行文件以及一些Binary文件并通過(guò)特定的規(guī)則將其生成相應(yīng)的固件文件(Firmware files)、固件卷(Firmware volume)及最終的Flash image文件。整個(gè)流程如下圖3所示。

    本文在對(duì)cProfile得到的結(jié)果并結(jié)合Build工具源代碼進(jìn)行分析后,發(fā)現(xiàn)目前EDKII Build工具在固件文件生成的時(shí)候是單線程執(zhí)行的,因此這個(gè)階段最大的性能優(yōu)化便在于如何實(shí)現(xiàn)多線程方式的產(chǎn)生平臺(tái)編譯所需的所有固件文件。

    本文正是基于整個(gè)思路,實(shí)現(xiàn)多線程的方式產(chǎn)生固件文件來(lái)達(dá)到優(yōu)化平臺(tái)編譯的目的。通過(guò)對(duì)Pre-build階段、Build階段和Post-build階段的源代碼分析后,發(fā)現(xiàn)Pre-build階段是采用多線程的方式進(jìn)行文件的解析,Build階段也是通過(guò)多線程方式調(diào)用對(duì)應(yīng)的Makefile來(lái)產(chǎn)生此次平臺(tái)編譯所需的所有.efi可執(zhí)行文件,僅僅只有Post-build階段是單線程的依據(jù)系統(tǒng)驅(qū)動(dòng)程序在平臺(tái)描述文件(.dsc)和Flash描述文件(.fdf)中的順序進(jìn)行逐一產(chǎn)生對(duì)應(yīng)的固件文件。本文采用了一種最簡(jiǎn)便,代碼量更改較少的方式來(lái)進(jìn)行多線程的產(chǎn)生固件文件,首先通過(guò)更改Build階段中Makefile的生成過(guò)程,將每個(gè)系統(tǒng)驅(qū)動(dòng)程序的固件文件的生成過(guò)程也給寫到該模塊對(duì)應(yīng)的Makefile文件中,從而可以簡(jiǎn)便地利用現(xiàn)在已有的Build階段中的多線程機(jī)制進(jìn)行多線程的生成一個(gè)平臺(tái)編譯中所需要的所有固件文件,簡(jiǎn)省Post-build階段的編譯時(shí)間,最終簡(jiǎn)省平臺(tái)的整個(gè)編譯時(shí)間。其中涉及到Autogen過(guò)程中對(duì)Makefile文件的重新生成,Post-build階段中各個(gè)section(包括Apriori section,Compress section,Data section,Depex section,EFI section等)的重新生成過(guò)程以及Region的重新組成等復(fù)雜過(guò)程。該方法比直接考慮在現(xiàn)有EDKII框架下對(duì)Post-build階段代碼進(jìn)行重構(gòu)來(lái)實(shí)現(xiàn)多線程的方式更加容易實(shí)現(xiàn)。通過(guò)整個(gè)優(yōu)化后,發(fā)現(xiàn)編譯OVMF平臺(tái)在Post-build階段所花費(fèi)的時(shí)間直接從37 s降低到了8 s。

    3 ?優(yōu)化方案的測(cè)試檢驗(yàn)

    該檢驗(yàn)過(guò)程主要通過(guò)編譯OVMF(Open Virtual Machine Firmware)平臺(tái)和KabyLake平臺(tái)來(lái)查看Build 工具的編譯時(shí)間的變化來(lái)檢驗(yàn)性能是否有所優(yōu)化。OVMF是用于虛擬機(jī)上的UEFI固件,能夠較好的模擬真實(shí)環(huán)境,又可以做到快速、方便、簡(jiǎn)單。而KabyLake平臺(tái)是搭載Intel第七代酷睿處理器的真實(shí)平臺(tái)。

    下表1和表2中的數(shù)據(jù)均是在相同環(huán)境下編譯五次后所得的有效數(shù)據(jù)的平均值,表1表示的是在一次編譯過(guò)程之后進(jìn)行系統(tǒng)某些驅(qū)動(dòng)文件更改后的增量編譯在Autogen階段所需要的時(shí)間,表2表示的是一次全新編譯過(guò)程總共所需要的時(shí)間。從表1 中可以看出,針對(duì)Pre-build階段的關(guān)于增量編譯的優(yōu)化方案可以提升27%-47%左右的性能,從表2中可以看出,針對(duì)Post-build階段的優(yōu)化方案可以提升15%-25%左右的性能。從而可以說(shuō)明Pre-build階段和Post-build階段所采用的優(yōu)化方案對(duì)編譯工具整體性能的提升是有效的,尤其是對(duì)一些編譯時(shí)間比較長(zhǎng)的服務(wù)器平臺(tái),其性能提升的效果是比較明顯的。

    目前這兩個(gè)方案的優(yōu)化patch已經(jīng)提交到開(kāi)源的EDKII項(xiàng)目的github上去了。

    4 ?結(jié)束語(yǔ)

    本文通過(guò)cProfile模塊對(duì)Build工具性能進(jìn)行分析后,在Pre-build階段和Post-build階段分別通過(guò)比較編譯模塊Autogen相關(guān)文件時(shí)間戳是否發(fā)生改變的優(yōu)化和采用多線程方式產(chǎn)生各個(gè)驅(qū)動(dòng)文件的固件文件的優(yōu)化方案來(lái)提高整個(gè)編譯過(guò)程的性能。除此之外,也可以對(duì)編譯工具中的函數(shù)在一次編譯過(guò)程中的調(diào)用次數(shù)以及所花費(fèi)的時(shí)間來(lái)進(jìn)行分析,進(jìn)行函數(shù)優(yōu)化來(lái)達(dá)到提高性能的目的,例如ValueExpressionEx函數(shù)。

    參考文獻(xiàn)

    [1] UEFI Forum. UEFI Specification[OL].(2019-03) [2020-02]. http://www.uefi.org/specs/

    [2] 戴正華. UEFI原理與編程[M]. 北京:機(jī)械工業(yè)出版社, 2015. 1: 14.

    [3] UEFI Forum. UEFI Platform Initialization Specification [OL].(2019-01) [2020-02].http://www.uefi.org/specs/.

    [4] Intel Corporation. EDK II Build Specification[OL].(2018-04) [2020-02].https://edk2-docs.gitbooks.io/edk-ii-build-specification/content/v/release/1.28/.

    [5] Intel Corporation. EDK II INF Specification[OL].(2018-04) [2020-02].https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/v/release/1.27/.

    [6] Intel Corporation. EDK II DSC Specification[OL].(2018-04) [2020-02]. https://edk2-docs.gitbooks.io/edk-ii-dsc-specification/ content/v/release/1.28/.

    [7] Intel Corporation. EDK II DEC Specification[OL].(2018-04) [2020-02].https://edk2-docs.gitbooks.io/edk-ii-dec-specification/content/v/release/1.27/.

    [8] Intel Corporation. EDK II FDF Specification[OL].(2017-06) [2020-02].https://edk2-docs.gitbooks.io/edk-ii-fdf-specification/content/v/release/1.28/.

    [9] Python Software Foundation. The Python Profilers[OL]. (2019-06) [2020-02]。https://docs.python.org/3/library/profile.html.

    猜你喜歡
    性能優(yōu)化
    大數(shù)據(jù)環(huán)境下高校選課系統(tǒng)性能優(yōu)化應(yīng)用研究
    數(shù)據(jù)挖掘算法性能優(yōu)化的研究與應(yīng)用
    SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化的幾點(diǎn)分析
    Web應(yīng)用的前端性能優(yōu)化
    660MW超超臨界火電機(jī)組RB性能優(yōu)化
    WEB網(wǎng)站緩存性能優(yōu)化
    淺析Lustre的優(yōu)化設(shè)置
    Oracle數(shù)據(jù)庫(kù)性能調(diào)整與優(yōu)化分析
    科技視界(2016年1期)2016-03-30 14:27:50
    基于節(jié)點(diǎn)緩存的Web服務(wù)器性能優(yōu)化研究
    基于SQL數(shù)據(jù)庫(kù)的性能優(yōu)化的探討
    科技資訊(2015年7期)2015-07-02 18:48:14
    av专区在线播放| 日韩中字成人| 天天一区二区日本电影三级| 小蜜桃在线观看免费完整版高清| 亚洲人成网站在线观看播放| 中文资源天堂在线| 青春草视频在线免费观看| 色5月婷婷丁香| 人体艺术视频欧美日本| 久久久亚洲精品成人影院| 波多野结衣高清无吗| 26uuu在线亚洲综合色| 国产成人免费观看mmmm| 丰满人妻一区二区三区视频av| 五月玫瑰六月丁香| 淫秽高清视频在线观看| 最近视频中文字幕2019在线8| 日本av手机在线免费观看| 18禁在线无遮挡免费观看视频| 免费观看的影片在线观看| 亚洲国产最新在线播放| 国产精品美女特级片免费视频播放器| 蜜桃亚洲精品一区二区三区| 久久人妻av系列| 日韩欧美在线乱码| 伦理电影大哥的女人| 全区人妻精品视频| 男的添女的下面高潮视频| 成人三级黄色视频| 黄色配什么色好看| 亚洲人与动物交配视频| 午夜福利视频1000在线观看| 欧美zozozo另类| 日韩成人av中文字幕在线观看| 岛国在线免费视频观看| 午夜福利视频1000在线观看| 婷婷色av中文字幕| 青春草视频在线免费观看| 久久久久国产网址| www.av在线官网国产| 男人的好看免费观看在线视频| 一区二区三区乱码不卡18| av国产久精品久网站免费入址| 亚洲国产精品成人久久小说| 欧美xxxx性猛交bbbb| 免费看日本二区| 亚洲不卡免费看| av专区在线播放| 九草在线视频观看| 亚洲中文字幕日韩| 少妇人妻一区二区三区视频| 日韩欧美三级三区| 中文字幕熟女人妻在线| 亚洲婷婷狠狠爱综合网| 国产淫片久久久久久久久| 男人狂女人下面高潮的视频| 国产又黄又爽又无遮挡在线| 日韩在线高清观看一区二区三区| 三级经典国产精品| 又粗又爽又猛毛片免费看| www日本黄色视频网| 色哟哟·www| 日韩成人av中文字幕在线观看| 成人二区视频| 国产毛片a区久久久久| 日韩精品有码人妻一区| av国产久精品久网站免费入址| 久久精品国产鲁丝片午夜精品| 国产精品1区2区在线观看.| 国产伦精品一区二区三区视频9| 卡戴珊不雅视频在线播放| 午夜福利成人在线免费观看| 国产精品久久久久久久电影| 亚洲欧洲日产国产| 桃色一区二区三区在线观看| 免费av观看视频| 午夜日本视频在线| 狠狠狠狠99中文字幕| 晚上一个人看的免费电影| www.av在线官网国产| 国内揄拍国产精品人妻在线| 亚洲高清免费不卡视频| 午夜久久久久精精品| 你懂的网址亚洲精品在线观看 | 一区二区三区四区激情视频| 级片在线观看| 中文字幕av成人在线电影| 国产亚洲午夜精品一区二区久久 | 国产 一区精品| 搡女人真爽免费视频火全软件| 亚洲精品国产成人久久av| 欧美精品国产亚洲| 精品久久久久久电影网 | 日日摸夜夜添夜夜添av毛片| 午夜视频国产福利| 日本熟妇午夜| 久久久a久久爽久久v久久| 欧美成人午夜免费资源| 只有这里有精品99| 久久久久国产网址| 精品久久久久久久人妻蜜臀av| 国产在线男女| 精品少妇黑人巨大在线播放 | 舔av片在线| 午夜福利在线观看吧| 国产中年淑女户外野战色| 国产大屁股一区二区在线视频| 黄色一级大片看看| 男女啪啪激烈高潮av片| 色综合亚洲欧美另类图片| 一级毛片久久久久久久久女| 亚洲四区av| 亚洲av不卡在线观看| 一级毛片aaaaaa免费看小| av天堂中文字幕网| 欧美日韩在线观看h| 久久久久久久午夜电影| 亚洲欧美清纯卡通| 国产精品蜜桃在线观看| 亚洲欧美成人精品一区二区| 身体一侧抽搐| 亚洲怡红院男人天堂| 久久99热这里只频精品6学生 | 精品国产露脸久久av麻豆 | 亚洲av电影在线观看一区二区三区 | 国产免费福利视频在线观看| 欧美性感艳星| 乱码一卡2卡4卡精品| 人体艺术视频欧美日本| 一边亲一边摸免费视频| a级毛色黄片| 麻豆成人av视频| 日韩一本色道免费dvd| 久久精品人妻少妇| 高清在线视频一区二区三区 | 男女下面进入的视频免费午夜| 免费观看人在逋| 少妇熟女欧美另类| 国产亚洲精品av在线| 亚洲成人精品中文字幕电影| 久久精品久久精品一区二区三区| 成人鲁丝片一二三区免费| 国产精品人妻久久久久久| 日韩av不卡免费在线播放| 狂野欧美激情性xxxx在线观看| 国产真实乱freesex| 看黄色毛片网站| 国内少妇人妻偷人精品xxx网站| 国产亚洲91精品色在线| 欧美成人a在线观看| 精品无人区乱码1区二区| 蜜桃久久精品国产亚洲av| 黄色一级大片看看| 日本午夜av视频| 亚洲综合色惰| 一级二级三级毛片免费看| 午夜爱爱视频在线播放| 老女人水多毛片| 国产毛片a区久久久久| 国产 一区精品| 免费观看人在逋| 久久人人爽人人片av| 青春草视频在线免费观看| 夜夜看夜夜爽夜夜摸| 久久精品久久久久久噜噜老黄 | 日韩欧美在线乱码| 男的添女的下面高潮视频| 久久久久久久久久黄片| 毛片一级片免费看久久久久| 国产69精品久久久久777片| 免费一级毛片在线播放高清视频| 我的老师免费观看完整版| 国产不卡一卡二| 亚洲综合精品二区| 国产成人一区二区在线| 99久久精品热视频| 久久精品久久久久久久性| 一个人看的www免费观看视频| 国产av不卡久久| 日本黄色片子视频| 免费av不卡在线播放| 亚洲内射少妇av| 国产69精品久久久久777片| 黄色配什么色好看| 国产一区二区在线av高清观看| 干丝袜人妻中文字幕| 国语自产精品视频在线第100页| 在线免费观看的www视频| 久久人人爽人人片av| 人人妻人人澡人人爽人人夜夜 | 欧美性猛交黑人性爽| 特大巨黑吊av在线直播| 日韩av不卡免费在线播放| 91久久精品国产一区二区成人| av在线老鸭窝| 最新中文字幕久久久久| 狂野欧美白嫩少妇大欣赏| 白带黄色成豆腐渣| 噜噜噜噜噜久久久久久91| 亚洲精品乱码久久久v下载方式| 永久免费av网站大全| 听说在线观看完整版免费高清| 精品久久久久久成人av| 日韩精品青青久久久久久| 国产成人a∨麻豆精品| 免费人成在线观看视频色| 欧美日韩精品成人综合77777| 日本一二三区视频观看| 黄色一级大片看看| 最近视频中文字幕2019在线8| 尤物成人国产欧美一区二区三区| 亚洲自拍偷在线| 亚洲最大成人手机在线| 精品少妇黑人巨大在线播放 | 91狼人影院| 亚洲欧美精品专区久久| 国产欧美另类精品又又久久亚洲欧美| 晚上一个人看的免费电影| 午夜福利网站1000一区二区三区| 97热精品久久久久久| 日韩在线高清观看一区二区三区| 长腿黑丝高跟| 尤物成人国产欧美一区二区三区| 婷婷色综合大香蕉| 三级国产精品片| 欧美日韩一区二区视频在线观看视频在线 | 亚洲成av人片在线播放无| 久久久久久久久大av| 亚洲精品国产av成人精品| 国产免费又黄又爽又色| 国产免费福利视频在线观看| 少妇的逼水好多| 两性午夜刺激爽爽歪歪视频在线观看| 亚洲中文字幕日韩| 国产av在哪里看| 日本爱情动作片www.在线观看| 日本黄色片子视频| 亚洲精品456在线播放app| 国产午夜精品一二区理论片| 日本黄色视频三级网站网址| 精品午夜福利在线看| 好男人在线观看高清免费视频| 黄色欧美视频在线观看| 国产爱豆传媒在线观看| 欧美性猛交╳xxx乱大交人| 欧美另类亚洲清纯唯美| 久久精品91蜜桃| 亚洲av成人av| 麻豆成人午夜福利视频| 国产在线男女| 国产午夜精品久久久久久一区二区三区| 最近中文字幕高清免费大全6| 久久久久久久国产电影| h日本视频在线播放| 免费电影在线观看免费观看| 久久久国产成人免费| av专区在线播放| 国产午夜精品久久久久久一区二区三区| 国产高清有码在线观看视频| 尤物成人国产欧美一区二区三区| 国产精品一区二区性色av| 国产精品爽爽va在线观看网站| 人妻系列 视频| 欧美日本视频| 精品一区二区免费观看| 久久久久九九精品影院| 少妇高潮的动态图| 日本爱情动作片www.在线观看| 免费一级毛片在线播放高清视频| 久久人人爽人人爽人人片va| 国产一区有黄有色的免费视频 | 国产精品无大码| 国产真实乱freesex| 亚洲成人av在线免费| 免费观看人在逋| av专区在线播放| 我的女老师完整版在线观看| 九九爱精品视频在线观看| 日本与韩国留学比较| 麻豆成人午夜福利视频| 身体一侧抽搐| 午夜精品在线福利| 在线a可以看的网站| 国产精品三级大全| 91精品国产九色| 三级男女做爰猛烈吃奶摸视频| 99久久精品热视频| 成人无遮挡网站| 麻豆精品久久久久久蜜桃| av黄色大香蕉| 日本黄色视频三级网站网址| 丰满乱子伦码专区| 超碰97精品在线观看| 亚洲av二区三区四区| 久久久久久久久大av| 国产美女午夜福利| 国产毛片a区久久久久| 国产成年人精品一区二区| 久久精品国产99精品国产亚洲性色| 国产白丝娇喘喷水9色精品| 国产男人的电影天堂91| 成人鲁丝片一二三区免费| 久久久久久久久久成人| 高清视频免费观看一区二区 | 国产免费又黄又爽又色| 97人妻精品一区二区三区麻豆| 亚洲欧美中文字幕日韩二区| 亚洲av二区三区四区| 国产精品爽爽va在线观看网站| 在线播放国产精品三级| 波多野结衣高清无吗| 一边摸一边抽搐一进一小说| 欧美高清成人免费视频www| 国产一区二区在线观看日韩| 久99久视频精品免费| 久久精品国产亚洲av涩爱| 汤姆久久久久久久影院中文字幕 | 九色成人免费人妻av| 超碰97精品在线观看| 亚洲中文字幕一区二区三区有码在线看| 偷拍熟女少妇极品色| 丝袜喷水一区| 欧美日韩在线观看h| 最后的刺客免费高清国语| 久久久久久久亚洲中文字幕| 亚洲欧美精品专区久久| 老司机影院成人| 看黄色毛片网站| 日韩制服骚丝袜av| 色视频www国产| 久久精品91蜜桃| 亚洲欧洲日产国产| 亚洲久久久久久中文字幕| 亚洲精品乱码久久久久久按摩| 欧美xxxx黑人xx丫x性爽| 亚洲性久久影院| 我的女老师完整版在线观看| 三级国产精品片| 欧美三级亚洲精品| av在线天堂中文字幕| 黄色欧美视频在线观看| 男人舔女人下体高潮全视频| 日本一二三区视频观看| 成人午夜精彩视频在线观看| 在线观看一区二区三区| 国产精品熟女久久久久浪| 欧美+日韩+精品| 日韩三级伦理在线观看| 麻豆av噜噜一区二区三区| 99视频精品全部免费 在线| av在线天堂中文字幕| 男女那种视频在线观看| 免费看a级黄色片| 久久国内精品自在自线图片| 欧美+日韩+精品| 中文精品一卡2卡3卡4更新| 一级av片app| 国产免费福利视频在线观看| 日本免费a在线| 国产淫语在线视频| 成人国产麻豆网| 精品无人区乱码1区二区| 美女脱内裤让男人舔精品视频| 欧美性感艳星| 亚洲在线自拍视频| av国产免费在线观看| 国产黄色视频一区二区在线观看 | 国语对白做爰xxxⅹ性视频网站| 国产伦理片在线播放av一区| 国产欧美另类精品又又久久亚洲欧美| 亚洲欧美精品综合久久99| 国产精品无大码| 一级av片app| 日本色播在线视频| 中文字幕制服av| 看非洲黑人一级黄片| 中文字幕亚洲精品专区| 亚洲伊人久久精品综合 | 日韩人妻高清精品专区| 日韩强制内射视频| 国产成人免费观看mmmm| 午夜爱爱视频在线播放| 国内精品一区二区在线观看| 99热网站在线观看| 狂野欧美白嫩少妇大欣赏| 国产白丝娇喘喷水9色精品| 久久久久久久午夜电影| 亚洲精品乱码久久久v下载方式| 久久久午夜欧美精品| 免费观看的影片在线观看| 久久鲁丝午夜福利片| 国产精品三级大全| 高清在线视频一区二区三区 | 国产男人的电影天堂91| 中文字幕亚洲精品专区| 午夜日本视频在线| 国产亚洲精品久久久com| 久久久久国产网址| 色综合站精品国产| videos熟女内射| 成人三级黄色视频| 欧美xxxx性猛交bbbb| 亚洲电影在线观看av| 91久久精品国产一区二区成人| kizo精华| 变态另类丝袜制服| 高清在线视频一区二区三区 | 少妇猛男粗大的猛烈进出视频 | 2021少妇久久久久久久久久久| 国产探花极品一区二区| 亚洲av男天堂| 精品一区二区三区视频在线| 精品酒店卫生间| 国产视频首页在线观看| 秋霞伦理黄片| 精品久久久久久久久av| 免费观看精品视频网站| 国内少妇人妻偷人精品xxx网站| 亚洲综合精品二区| 久久久久国产网址| 亚洲av电影在线观看一区二区三区 | 日韩av不卡免费在线播放| 毛片一级片免费看久久久久| 成人欧美大片| 高清日韩中文字幕在线| 99久国产av精品| 亚洲av中文av极速乱| 亚洲欧美日韩高清专用| 老司机影院毛片| 精品免费久久久久久久清纯| 小蜜桃在线观看免费完整版高清| av又黄又爽大尺度在线免费看 | 99视频精品全部免费 在线| 国产高清三级在线| 欧美bdsm另类| 国产精品一二三区在线看| 一级爰片在线观看| a级毛色黄片| 日韩一本色道免费dvd| 在现免费观看毛片| 国语自产精品视频在线第100页| 日韩成人av中文字幕在线观看| 国产在线男女| av又黄又爽大尺度在线免费看 | 久久久久免费精品人妻一区二区| 国产成人精品婷婷| 国产 一区 欧美 日韩| eeuss影院久久| 久久久久性生活片| 两个人的视频大全免费| 日韩高清综合在线| 亚洲色图av天堂| 日本av手机在线免费观看| 亚洲精华国产精华液的使用体验| 天堂√8在线中文| 久久久a久久爽久久v久久| 久久99热这里只有精品18| 成人亚洲精品av一区二区| 亚洲成人精品中文字幕电影| 99热6这里只有精品| 22中文网久久字幕| 日韩亚洲欧美综合| 精品熟女少妇av免费看| 18禁裸乳无遮挡免费网站照片| 亚洲经典国产精华液单| 丝袜美腿在线中文| 尾随美女入室| 丰满乱子伦码专区| 国产免费男女视频| 亚洲高清免费不卡视频| 国产爱豆传媒在线观看| 女的被弄到高潮叫床怎么办| 国产精品,欧美在线| 天堂av国产一区二区熟女人妻| 欧美性感艳星| 人体艺术视频欧美日本| 在线免费观看不下载黄p国产| 天天躁夜夜躁狠狠久久av| 国产黄色视频一区二区在线观看 | 狂野欧美白嫩少妇大欣赏| www.av在线官网国产| av视频在线观看入口| 久久久久国产网址| 最近中文字幕高清免费大全6| 高清视频免费观看一区二区 | 天美传媒精品一区二区| 亚洲性久久影院| 一级二级三级毛片免费看| 久久久欧美国产精品| 一级毛片电影观看 | 日本与韩国留学比较| 99热这里只有是精品在线观看| 午夜福利在线在线| 亚洲婷婷狠狠爱综合网| 久久久久久久久中文| 少妇的逼好多水| 成人一区二区视频在线观看| АⅤ资源中文在线天堂| 中文字幕久久专区| 亚洲欧美日韩无卡精品| 亚洲四区av| 寂寞人妻少妇视频99o| 2021少妇久久久久久久久久久| 久久精品91蜜桃| 亚洲最大成人手机在线| 国产精品无大码| 国产又黄又爽又无遮挡在线| 亚洲av电影在线观看一区二区三区 | 欧美3d第一页| 日韩大片免费观看网站 | 久久婷婷人人爽人人干人人爱| 亚洲三级黄色毛片| 久久99热这里只频精品6学生 | av卡一久久| 麻豆久久精品国产亚洲av| 亚洲一区高清亚洲精品| 七月丁香在线播放| 日韩成人伦理影院| 国产在视频线精品| 亚洲av中文av极速乱| 亚洲图色成人| 亚洲国产欧美人成| 亚洲经典国产精华液单| 少妇人妻精品综合一区二区| 婷婷六月久久综合丁香| 国产又色又爽无遮挡免| 六月丁香七月| 久久久午夜欧美精品| 国产乱人偷精品视频| 国产精品爽爽va在线观看网站| 免费av不卡在线播放| 午夜激情福利司机影院| 99热网站在线观看| 色5月婷婷丁香| 亚洲va在线va天堂va国产| 久久99精品国语久久久| 国产综合懂色| 免费观看人在逋| 日本-黄色视频高清免费观看| 成人鲁丝片一二三区免费| 免费不卡的大黄色大毛片视频在线观看 | 岛国毛片在线播放| 能在线免费观看的黄片| 草草在线视频免费看| 少妇的逼水好多| 午夜福利在线观看吧| 日日啪夜夜撸| 久久久a久久爽久久v久久| 亚洲av一区综合| 寂寞人妻少妇视频99o| 嘟嘟电影网在线观看| 亚洲国产欧洲综合997久久,| 天天一区二区日本电影三级| av女优亚洲男人天堂| 日韩精品有码人妻一区| 人人妻人人看人人澡| 亚洲五月天丁香| 亚洲精品乱码久久久久久按摩| 久久精品国产鲁丝片午夜精品| 国产精品爽爽va在线观看网站| 99视频精品全部免费 在线| 国产亚洲一区二区精品| 亚洲18禁久久av| 久久鲁丝午夜福利片| 午夜爱爱视频在线播放| 国产伦精品一区二区三区视频9| 99久久精品一区二区三区| 国产精品久久视频播放| 人人妻人人澡欧美一区二区| 成人美女网站在线观看视频| 搡老妇女老女人老熟妇| 国内精品美女久久久久久| 欧美极品一区二区三区四区| a级毛片免费高清观看在线播放| 波野结衣二区三区在线| 国产精品一二三区在线看| 日韩三级伦理在线观看| 欧美激情久久久久久爽电影| 三级毛片av免费| 久久久久久久久大av| 久久久久久久久久成人| 简卡轻食公司| 免费av毛片视频| 欧美激情国产日韩精品一区| 成人av在线播放网站| 精品久久久久久电影网 | 国语对白做爰xxxⅹ性视频网站| 91aial.com中文字幕在线观看| 国产色婷婷99| 嫩草影院入口| av播播在线观看一区| 联通29元200g的流量卡| av卡一久久| 日本与韩国留学比较| 国产探花在线观看一区二区| 好男人视频免费观看在线| 中文欧美无线码| 一级毛片aaaaaa免费看小| 国模一区二区三区四区视频| 国产一区二区三区av在线| 可以在线观看毛片的网站| 美女内射精品一级片tv| 亚洲自拍偷在线| 日韩一区二区视频免费看| 日韩欧美精品免费久久| 亚洲成人精品中文字幕电影| 秋霞伦理黄片| 久久久久九九精品影院| 看非洲黑人一级黄片| 亚洲欧美成人精品一区二区| 亚洲av免费高清在线观看| 搡女人真爽免费视频火全软件| 国产伦在线观看视频一区| 亚洲欧美日韩高清专用| 亚洲伊人久久精品综合 |