亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

PCIe事務層破譯:一次內(nèi)存讀請求的完整旅程

PCIe事務層破譯:一次內(nèi)存讀請求的完整旅程 寫這個系列之前我一直在猶豫事務層協(xié)議到底該怎么講才不至于讓讀者背完一堆字段名、一上板子還是不知道該看哪里。寄存器、TLP類型、路由方式、流量控制每樣拆開都能講幾個小時但拼在一起總是散。后來我換了個思路——既然PCIe存在的意義就是讓數(shù)據(jù)從A點到B點那不如就跟著一個內(nèi)存讀請求完整走一趟。從CPU執(zhí)行一條load指令開始看它怎么變成一個TLP包穿越RC、Switch、鏈路層、對端的EP再帶著數(shù)據(jù)原路返回。這一趟走完事務層協(xié)議的那點骨架基本就立住了。這篇文章是系列的第二篇主題是事務層主角只有一個一次內(nèi)存讀MRd的完整旅程。適合正在調(diào)PCIe驅(qū)動的Linux工程師、用FPGA做PCIe IP核的開發(fā)者以及對PCIe協(xié)議停留在“知道概念、沒串起來”階段的人。1. 故事的起點一次內(nèi)存讀指令如何變成總線事務1.1 別把MMIO當成“讀內(nèi)存”先從一個很基本的認知開始軟件里寫一句data *(volatile uint32_t *)0x88001000;這條指令本身經(jīng)過CPU流水線之后并不會真的走到某個內(nèi)存顆粒里去取數(shù)。它要先去查MMU/TLB把虛擬地址翻譯成物理地址然后由CPU核心把這個物理地址的讀請求發(fā)給互連總線比如Intel的Mesh或AMD的Infinity Fabric最后送進Root Complex。Root ComplexRC拿到這塊物理地址后問自己一個問題這個地址有沒有被映射到某個PCIe設(shè)備上怎么判斷的靠的是枚舉階段建立的地址映射。PCIe設(shè)備插入系統(tǒng)后軟件枚舉也就是網(wǎng)上常說的“pcie枚舉過程”會給每個設(shè)備的BARBase Address Register分配一段地址空間。以Intel系統(tǒng)為例RC內(nèi)部維護著一張“出站地址窗口”O(jiān)utbound Window對照表物理地址落在哪個窗口就說明要發(fā)往哪條下游鏈路、哪個設(shè)備。所以MMIO讀的本質(zhì)是CPU發(fā)起的讀請求到達RC后被翻譯成一個PCIe事務然后通過PCIe鏈路發(fā)出去。RC是CPU與PCIe樹之間的翻譯官它把CPU能理解的地址翻譯成PCIe世界能理解的TLP。1.2 一張全局地圖RC、Switch與EP的角色分工要把PCIe協(xié)議講明白拓撲概念繞不開。一個典型系統(tǒng)長這樣Root Complex ├── 端口0連接NICBDF 01:00.0 ├── 端口1連接PCIe Switch上游口BDF 02:00.0 │ ├── 下游口A連接NVMe SSDBDF 03:00.0 │ └── 下游口B連接FPGABDF 04:00.0 └── 端口2連接顯卡BDF 05:00.0這里的BDF是Bus/Device/Function的縮寫枚舉階段由軟件分配是PCIe世界里設(shè)備的“門牌號”。RC本身也有BDF不同的RC層設(shè)備、甚至RC的每個虛擬口都有獨立的BDF這決定了后續(xù)Completion包怎么回家。在這個地圖里角色分三種。RC是發(fā)起者負責代表CPU發(fā)請求EndpointEP是最終執(zhí)行者收到請求后訪問自己的內(nèi)部資源、返回結(jié)果Switch是郵局不做業(yè)務只按路由規(guī)則把包轉(zhuǎn)給正確的端口。請記住這個郵局的比喻后面講路由時會反復用到。這里有個容易被忽略的點EP不是只能被動接收。DMA場景里是EP自己發(fā)起MRd去讀系統(tǒng)內(nèi)存RC反而變成Completer。所以“發(fā)起者”和“完成者”不是固定身份而是針對某一次事務而言的。本文主線是CPU讀EP所以RC是RequesterEP是Completer。1.3 從CPU Load到TLP請求從哪里誕生的回到那行代碼。假設(shè)地址0x8800_1000落在上圖中FPGA的BAR0里枚舉時分配的范圍是0x8800_0000到0x8800_FFFF。RC收到讀請求后查窗口表發(fā)現(xiàn)目標在端口1的Switch下游于是開始構(gòu)造一個Memory Read請求MRd。構(gòu)造一個TLP需要什么信息目標地址0x8800_1000、請求主體的IDRC自己的BDF通常是00:00.0一類、讀多少字節(jié)CPU這條load讀4字節(jié)即一個DW、以及給這個“在途請求”分配一個唯一的Tag編號。這就是事務層工作的精髓把CPU側(cè)簡單的“讀這塊地址”翻譯成PCIe總線側(cè)標準化的、帶完整上下文的TLP。上下文信息包括“誰發(fā)的、要讀哪里、讀多少、怎么標識這次請求”沒有這些對端EP就算收到請求也無法答復就算答復了RC也不知道該把數(shù)據(jù)送回哪里、匹配給哪個CPU指令。2. 拆開TLP事務層協(xié)議的基本句型2.1 TLP的總體輪廓頭、載荷、尾巴TLP是Transaction Layer Packet的縮寫是事務層交換信息的基本單元。一個TLP由三部分組成TLP Prefix可選、TLP Header固定必須有、Data Payload部分類型才有以及可選的TLP Digest用于端到端CRC校驗。你可以把TLP想象成快遞包裹Header是面單寫著收件人和寄件人信息Data Payload是貨物本身Digest是貼在上面的防偽標簽。對于一次內(nèi)存讀的MRd請求來說它只有一個Header——貨物為空因為你只是去問別人要東西自己身上不用帶東西。真正帶數(shù)據(jù)的包頭在回程的CplD里。事務層和上下層的關(guān)系是事務層負責組裝/拆解TLP、做路由判斷和流量控制數(shù)據(jù)鏈路層在TLP前面加Sequence Number、在尾部加LCRC并負責ACK/NACK重傳物理層再把數(shù)據(jù)流拆成一個個字符Symbol做編碼、串行化發(fā)送。從語義角度你只需要記住TLP在發(fā)送方的事務層出生在對端的事務層才算真正死亡中間經(jīng)過的鏈路層和物理層只負責“運輸”不修改TLP內(nèi)容。2.2 逐字段拆解MRd請求頭MRd請求的Header長度可以是3DW32位地址或4DW64位地址。一個DW是4字節(jié)所以4DW就是16字節(jié)。本文例子用64位地址所以是4DW頭。Header最關(guān)鍵的是前兩個DW和地址字段我把關(guān)鍵字段拆開講字段長度作用例子值Fmt[1:0]2bit頭長度和是否有載荷。MRd 64位是01表示4DW無數(shù)據(jù)01Type[4:0]5bit事務類型。MRd是0000000000TC[2:0]3bit流量類別默認0用于VC映射000TD/EP2bitDigest是否存在、包是否被標記為毒化0/0Attr[1:0]2bit排序/一致性屬性如Relaxed Ordering、No Snoop00Length[9:0]10bit數(shù)據(jù)載荷長度單位是DW。讀4字節(jié)11Requester ID[15:0]16bit請求方BDFRC自己的門牌0000Tag[7:0]8bit請求標簽用于匹配完成包2AFirst/Last DW BE8bit首尾DW的字節(jié)使能表示讀哪些字節(jié)F/FAddress[63:32]32bit目標地址高32位0Address[31:2]30bit目標地址低30位低2位恒為0DW對齊88001000綜合起來這批請求就是一個64位尋址的內(nèi)存讀請求目標地址0x8800_1000讀取1個DW4字節(jié)由BDF 00:00.0的RC發(fā)起Tag編號420x2A。關(guān)于Tag多說一句Tag是8位所以理論上一個Requester最多同時有256個“在途請求”。這個編號就是讓回程的CplD能對上號用的身份證。對CPU讀來說RC要保證同一時刻每個未完成請求的Tag不重復這個在后面章節(jié)展開。2.3 一個具體的MRd例子根據(jù)上面的字段構(gòu)造出來的一幀MRd報文十六進制字節(jié)流大致長這樣20 00 00 01 00 00 2A 0F 88 00 10 00 00 00 00 00我來逐個字節(jié)對上。20是Fmt01、Type00000拼出來的001 0000000代表TC0、TD0、EP0、Attr0000 01是Length表示1個DW00 00是Requester IDBDF00:00.02A是Tag0F是首尾字節(jié)使能都有效讀4字節(jié)全要后面的88 00 10 00 00 00 00 00就是64位地址0x00000000_88001000。這里不糾結(jié)抓包工具的大小端顯示差異你只需要建立起“字段和值能對上”的直覺。真正上手調(diào)試時看到一幀16字節(jié)的Header能一眼認出這是不是MRd、目標地址是什么、Tag是多少這個能力比背協(xié)議快得多。注意一個細節(jié)讀請求的Length和字節(jié)使能是配合使用的。Length告訴對端“這次總共要讀幾個DW”First/Last BE告訴對端“首尾DW里具體要哪幾個字節(jié)”。當Length1時首尾BE都作用于同一個DW所以通常都寫成有效。2.4 Length、MRRS與多DW讀請求的關(guān)系如果CPU一次讀8字節(jié)或者DMA一次讀128字節(jié)MRd的Length會相應變大。但是Length不能無限大它要受MRRSMax Read Request Size約束。MRRS是PCIe設(shè)備能力寄存器里的一個參數(shù)常見值是128B、256B、512B、4KB。它規(guī)定了單個讀請求最多能請求多少數(shù)據(jù)超過就要拆成多個請求。舉個例子軟件想從EP讀取1KB數(shù)據(jù)MRRS是256B那么RC會拆成4個MRd請求每個請求Length64DW256字節(jié)分別分配不同的Tag。對端EP對這4個請求分別返回CplDRC再把4個響應拼起來交給軟件。這個“拆”的過程對軟件透明但你在協(xié)議層抓包時看得清清楚楚。MRRS設(shè)得越大讀性能越好請求數(shù)量少、Tag占用少、完成包數(shù)量少但代價是EP側(cè)內(nèi)部的響應邏輯復雜度上升、緩沖區(qū)要求變大。很多FPGA開發(fā)者喜歡把MRRS設(shè)成128B來簡化設(shè)計代價就是吞吐上不去。這個矛盾后面還會再提。3. 請求的下行之旅地址路由與層層轉(zhuǎn)發(fā)3.1 三種路由方式地址、ID、隱式MRd請求構(gòu)造好后從RC的端口發(fā)出去。在PCIe總線世界里一個包能不能準確到達目標取決于路由方式。一共三種地址路由Memory請求和IO請求用目標地址來路由根據(jù)地址落在哪個設(shè)備的地址窗口決定走向。ID路由Completion請求和Configuration請求用BDF來路由根據(jù)Requester ID/Completer ID確定去向。隱式路由Message請求用系統(tǒng)約定好的特殊路由比如廣播給所有設(shè)備或只給RC不需要具體地址和ID。MRd屬于Memory請求所以用的是地址路由。這也是為什么讀請求的Header里必須攜帶完整的目標地址——它是這一站一站路線的判斷依據(jù)。3.2 地址路由在Switch上的決策過程假設(shè)RC的端口1連著Switch而FPGA在Switch的下游口B。RC發(fā)出的MRd到達Switch的上游口后Switch內(nèi)部要做一次查表這個地址是不是我某個下游端口下設(shè)備的窗口這個表是怎么來的交換機內(nèi)部有多個橋Bridge每個下游端口對應一個PCIe橋。枚舉時軟件通過配置這些橋的Base/Limit寄存器告訴Switch“哪個下游口負責哪一段地址區(qū)間”。比如上游口收到目標地址0x8800_1000的包一查就知道要轉(zhuǎn)到下游口B因為FPGA的BAR0窗口覆蓋了這個地址。如果地址不在任何下游端口的窗口里Switch會把它交給上游口繼續(xù)往上走對RC來說就是回到更高層級的RC端口。如果一路都沒有設(shè)備認領(lǐng)RC會收到一個URUnsupported Request錯誤后面章節(jié)細說。這個“查表轉(zhuǎn)發(fā)”的過程和網(wǎng)絡交換機的MAC地址表非常像只是PCIe交換機轉(zhuǎn)發(fā)的依據(jù)是地址窗口而不是MAC地址。理解了這一點很多路由問題就變得很直觀。3.3 發(fā)送側(cè)的TLP沒被吃掉鏈路層和物理層做了什么MRd從RC的事務層“交給”數(shù)據(jù)鏈路層后事務層的使命就先暫停了。數(shù)據(jù)鏈路層給TLP加上一個序列號Sequence Number和LCRC校驗值然后存到重傳緩沖區(qū)里。發(fā)送過程中如果對端的鏈路層發(fā)現(xiàn)LCRC錯誤會回一個NACK發(fā)送方就從緩沖區(qū)里取出來重發(fā)如果收到ACK說明包已經(jīng)安全到達緩沖區(qū)里的副本就可以釋放。再下一層是物理層。物理層把包加上一些定界符編碼后變成一串比特流通過SerDes差分對高速發(fā)出去。這個過程涉及8b/10b或128b/130b編碼、均衡Equalization就是熱詞里常出現(xiàn)的pcie均衡概念、時鐘恢復等。這些話題是鏈路層/物理層的主角與本文主線無關(guān)就不展開了。有一個值得記住的點數(shù)據(jù)鏈路層只保證“包到了對端鏈路層”不感知TLP語義。它不知道這個包是讀請求還是寫數(shù)據(jù)也不知道目標是哪個EP。TLP只要過了LCRC校驗就原樣交給對端事務層由事務層來做真正的路由裁決。3.4 接收端EP的解析流程與BAR匹配MRd到達FPGA的PCIe硬核后事務層開始驗收。流程可以拆成幾步第一步判斷這個包是不是發(fā)給自己的。FPGA的PCIe IP核對地址路由要做一次BAR匹配地址0x8800_1000落在BAR00x8800_0000~0x8800_FFFF范圍內(nèi)匹配成功接收如果落在所有BAR之外事務層必須立即生成一個錯誤完成包UR送回給請求方絕不能默默丟棄。第二步檢查流控信用。FPGA內(nèi)部維護著接收緩沖區(qū)信用值如果MRd所需的非Posted信用不夠事務層會把這個包掛起等對端發(fā)來信用更新。這一步是防緩沖溢出的閘門。第三步把請求轉(zhuǎn)成內(nèi)部總線操作。FPGA一般會在PCIe硬核后面接一個AXI橋Xilinx/Intel的PCIe IP都這么做把MRd翻譯成AXI總線的讀地址通道請求。從地址偏移量和BAR基地址計算出內(nèi)部寄存器/內(nèi)存的偏移然后驅(qū)動內(nèi)部邏輯把數(shù)據(jù)準備好。這一步對FPGA開發(fā)來說是最容易出現(xiàn)問題的環(huán)節(jié)——PCIe協(xié)議本身沒問題但AXI橋的地址映射、讀響應時序、跨時鐘域處理都可能讓事務層永遠等不到數(shù)據(jù)。3.5 如果地址誰都不認UR和CAEP內(nèi)部訪問目標資源也可能失敗。比如地址映射到了EP內(nèi)部一段沒有實際存儲器的保留地址AXI端返回錯誤。這時PCIe事務層會生成一個**Completer AbortCA**完成包告訴請求方“我認了這個地址但我自己執(zhí)行失敗了”。UR和CA是兩種不同的錯誤語義UR是“沒設(shè)備認領(lǐng)這個請求”CA是“有設(shè)備認領(lǐng)但執(zhí)行失敗”。板卡調(diào)試時看到這兩種錯誤排查方向完全不同。UR優(yōu)先查地址映射、路由窗口、BAR配置CA優(yōu)先查EP內(nèi)部邏輯、AXI訪問狀態(tài)。4. Completion的回程請求的后半段才是最復雜的4.1 EP如何裝配一個CplDFPGA內(nèi)部讀邏輯把4字節(jié)數(shù)據(jù)取回來后會交給PCIe事務層由事務層生成一個**Completion with DataCplD**包。CplD的Header也是3DW關(guān)鍵字段如下字段說明Fmt/TypeCplD是010 01010表示3DW頭帶數(shù)據(jù)TC必須和發(fā)起請求的TC一致Completer ID填寫EP自己的BDF如04:00.0Status成功是000UR是001CA是010Tag必須原樣回填請求里的TagByte Count本次完成包攜帶的字節(jié)數(shù)Lower Address本次返回數(shù)據(jù)在請求起始地址中的低7位偏移注意一個命名坑Cpl Header里那個字段雖然叫“Requester ID”但對Completion來說它填寫的是Completer也就是EP自己的BDF。頭一次看協(xié)議的人很容易被這個字段名帶偏。這里要填你的門牌號不是RC的門牌號。CplD的載荷就是讀取到的數(shù)據(jù)按Length字段指示的DW數(shù)量搬運。一次MRd如果可以返回全部數(shù)據(jù)就一個CplD完成如果數(shù)據(jù)量太大EP可以拆成多個CplD每個帶有自己的Byte Count和Lower Address方便RC重組。4.2 ID路由Completion不靠地址回家CplD沒有地址字段所以它不能用地址路由。它是靠ID路由回家的Switch在收到CplD時讀取Header里的Requester ID也就是RC的BDF查ID路由表看這個ID屬于哪個端口。舉個例子如果RC的Requester ID是00:00.0而CplD從FPGA返回到達Switch的下游口BSwitch一查ID路由表發(fā)現(xiàn)00:00.0在上游方向就把包轉(zhuǎn)到上游口送到RC的端口1。RC的端口1再根據(jù)ID和內(nèi)部端口映射把CplD交給負責CPU讀請求的那個RC部件。這解釋了為什么Enumuration階段BDF分配如此重要BDF不只是“門牌號”它本身就是路由表的一部分。如果枚舉時某個設(shè)備的BDF分配異?;蛘唑?qū)動里讀到了虛假的Device ID那么后續(xù)的Completion路由就會跟著出錯。另一個關(guān)鍵點當系統(tǒng)里RC有多個端口時RC側(cè)自己也必須維護一個“ID→端口”的映射表否則CplD從哪個口回來、該交給哪個CPU核都有可能放錯位置。4.3 RC側(cè)的解包Tag索引與“在途請求表”CplD到達RC事務層后接下來就是匹配過程。RC內(nèi)部維護著一張在途請求表Outstanding Request Table每個未完成的讀請求占一個表項表項的索引就是Tag。RC拿到CplD后先檢查Tag查表找到對應請求再檢查Status和Byte Count把數(shù)據(jù)整理好轉(zhuǎn)成CPU總線能識別的讀返回數(shù)據(jù)。對于多CplD的讀請求比如256B的MRd拆成兩個128B的CplD返回RC要一直等齊所有CplD才能結(jié)束這個表項、釋放Tag。釋放Tag很重要Tag不釋放這個“槽位”就永遠占著后續(xù)新請求沒有Tag可用吞吐就會掉到地板。很多性能問題的根因就在“Tag池被耗盡”。所以排除吞吐問題的時候除了調(diào)MRRS/MPS記得看一眼在途請求深度有沒有打滿。4.4 拆包返回為什么一個讀請求可能拆成多個CplD同一個MRd請求EP可能發(fā)回多個CplD原因有幾種數(shù)據(jù)量超過MPSMax Payload Size。MPS規(guī)定了單個TLP最多攜帶多少字節(jié)載荷讀寫都受此約束。如果請求了256B而MPS只有128BEP必須拆成兩個CplD。EP內(nèi)部生成數(shù)據(jù)的時間不連續(xù)比如從慢速接口取數(shù)可以先返回一部分之后再返回剩余部分。設(shè)備支持“任意字節(jié)數(shù)完成”不是一下子返回全部這是允許的只要最終所有CplD的Byte Count合計等于請求長度。這些CplD可以亂序到達嗎可以。因為每個CplD都帶著Lower Address和Byte CountRC完全可以根據(jù)這兩個字段重組。這也是為什么協(xié)議里專門給CplD設(shè)計了這些字段而不是簡單地按順序堆數(shù)據(jù)。多個不同請求的CplD返回順序也可以和請求順序不一致。RC靠Tag區(qū)分是哪個請求靠Byte Count重組順序不需要對端回來得整整齊齊。4.5 錯誤完成的幾種面孔UR/CA/CRS速查Completion Status字段只有3位常見值如下Status值名稱含義000SC成功完成001UR不支持的請求地址無人認領(lǐng)010CA完成者中止EP自己執(zhí)行失敗011CRS配置請求重試狀態(tài)EP還沒準備好CRS比較特殊它只用于配置請求讀配置空間早期EP固件還在初始化時的情形。RC收到CRS后可能重試重試到超時后放棄。熱詞里提到的“pcie熱插拔功能”就和CRS有密切關(guān)系板卡剛插入、鏈路還在訓練、EP的配置邏輯還沒起來時CRS是保護EP不被過早訪問的機制。但對于內(nèi)存讀請求來說標準規(guī)定不允許返回CRS一般都是UR/CA。拿到一個錯誤完成包后RC事務層會把它記錄到AER錯誤狀態(tài)里如果使能了Advanced Error ReportingCPU則可能收到一個Machine Check或NMI。Linux下調(diào)試時dmesg里看到“PCIE Bus Error: severityUncorrected, Unsupported Request”基本就是UR。5. 看不見的交通燈Tag、流控與并發(fā)限制5.1 Tag是飛行中請求的身份證前面已經(jīng)反復強調(diào)Tag的作用這里把它系統(tǒng)化。Tag是一個8位編號RC每發(fā)一個新讀請求就占一個Tag。在請求得到全部完成包之前這個Tag不能復用。所以RC的并發(fā)度Outstanding Requests上限是256。注意Tag分為非Posted請求和Completion兩類信用空間。實際控制芯片中RC可能限制Tag池更小比如某些Root Complex只支持幾十個在途請求。這就是為什么DMA性能高不上去的瓶頸有時在CPU側(cè)而不是設(shè)備側(cè)。對于FPGA的EP設(shè)計來說Tag處理是個隱藏考點EP收到MRd時除了在CplD中回填Tag之外不需要為Tag做什么保留——RC才是Tag的所有者。但如果EP自己作為Requester發(fā)起DMA讀它就需要管理自己的Tag池了。5.2 流控信用額度維持的秩序流控Flow ControlFC是事務層另一個核心機制??梢园阉斫獬梢粭l雙向的“備菜額度”發(fā)送方每發(fā)一個TLP就要消耗接收方給它預留的一個倉位接收方處理完一個TLP后通過UpdateFC DLLP把額度返還。流控按事務類型獨立管理分三組PostedP、Non-PostedNP、CompletionCPL。每一組又分成Header信用和數(shù)據(jù)信用。MRd是Non-Posted請求消耗NP Header信用CplD是Completion消耗CPL Header和CPL Data信用。鏈接訓練完成后兩端通過InitFC1/InitFC2 DLLP交換信用上限之后正常收發(fā)運行時雙方都按額度來。信用一旦耗盡發(fā)送方必須等不能硬發(fā)。這就是為什么打高吞吐時會看到很多UpdateFC包來回飛——它們在補充“倉位”。流控死鎖是理論上的經(jīng)典問題假如RC發(fā)出大量請求把EP的信用耗盡而EP必須靠發(fā)送CplD才能騰出信用同時CplD又被RC的接收窗口堵住兩邊就互相等。PCIe從協(xié)議層面和驅(qū)動約束層面都做了設(shè)計防止這種死鎖工程師一般不用操心但調(diào)FPGA IP時如果看到“傳輸卡死在FC狀態(tài)”就要往這個方向想。5.3 Posted、Non-Posted與Completion是三條獨立車道PCIe事務按是否需要響應分成三類這是理解事務層行為框架的基礎(chǔ)Posted事務發(fā)完即走不需要對端回復。典型是Memory WriteMWr。因為不需要回確認Post的信用消耗小、效率高適合大流量寫數(shù)據(jù)。Non-Posted事務需要對端回復。典型是MRd和IO請求。Completion事務是Non-Posted的響應典型是Cpl/CplD。這三個類別在流控和排序上是獨立的。MWr不會被MRd阻塞在默認排序規(guī)則下posted請求可以越過前面更早的non-posted請求只要不發(fā)生一致性沖突。這聽起來違反直覺但這是PCIe為了不讓寫操作被慢速讀拖住而特意設(shè)計的。CplD也有排序規(guī)則比如它不能無限期被后續(xù)的Posted Write超越其細節(jié)在PCIe Base Spec的Ordering章節(jié)里定義得非常細。我把排序規(guī)則的核心說清楚保證的是數(shù)據(jù)一致性。一個設(shè)備發(fā)出MWr之后又發(fā)一個MRd如果MWr還沒到MRd先到對端讀到舊數(shù)據(jù)這顯然是錯的。協(xié)議通過給每一類事務定義“能否越過其他事務”的規(guī)則來避免這種情況。調(diào)試時遇到讀回臟數(shù)據(jù)的詭異問題別只查邏輯先把排序規(guī)則捋一遍。5.4 VC與TC給流量分專用的通道Virtual ChannelVC是流控的物理載體Traffic ClassTC是包的優(yōu)先級標簽。默認所有包都是TC0走VC0。TC0/VC0之外的VC需要顯式配置和初始化。為什么有VC因為PCIe想讓不同類型流量物理隔離。比如視頻流的高帶寬低時延數(shù)據(jù)可以和普通CPU讀寫走不同VC互不干擾。配置多VC要求每個VC做流控初始化、仲裁配置復雜度直線上升大多數(shù)系統(tǒng)只用VC0。對常見的主機CPU讀寫場景TC/VC只是背景知識。但如果是做交換機/Switch芯片的或者嵌入式環(huán)境要做確定性時延的VC就是必修課了。本文點到為止。6. 現(xiàn)場排查內(nèi)存讀異常怎么抓6.1 現(xiàn)象一讀回來全FF像設(shè)備不存在板卡調(diào)試最經(jīng)典的場景CPU去讀BAR空間讀回來全是0xFFFFFFFF或者直接報UR。排查思路按下述順序來先確認設(shè)備有沒有被枚舉成功lspci -vvv能不能看到設(shè)備BDF對不對確認BAR有沒有被分配地址讀配置空間里的BAR寄存器是不是非零值BAR0的值是否和你期望的地址段一致確認訪問地址是否落在BAR范圍內(nèi)用setpci直接讀BAR然后手動構(gòu)造一個落在BAR地址范圍內(nèi)的訪問。確認RC側(cè)有沒有對應的出站映射對帶自定義RC的嵌入式平臺這一步特別容易漏。如果在Linux下看到“Unsupported Request”UOS錯誤日志里通常能抓到端倪。用debugfs的aer或lspci -xxx看配置空間能讀到AER狀態(tài)寄存器里的錯誤類型。UR的根源九成在地址映射路徑不對才是重點。6.2 現(xiàn)象二EP收到請求但一直沒完成如果EP側(cè)邏輯分析儀/ILA里已經(jīng)看到MRd進來了地址也對但就是沒有CplD發(fā)回去問題基本出在三個方面EP內(nèi)部AXI側(cè)卡住讀請求轉(zhuǎn)成AXI后讀數(shù)據(jù)通道永遠沒有響應。檢查AXI的ready/handshake、檢查被讀寄存器/內(nèi)存的復位狀態(tài)。流控信用耗盡EP的Completion信用沒有初始化或者被大量CplD占滿。查InitFC寄存器的值看RC有沒有分配信用。Tag/狀態(tài)機死鎖EP的狀態(tài)機設(shè)計不良比如要求所有CplD必須按特定順序返回但RC不配合。這里有個實用的建議用Xilinx/Intel PCIe IP核時強烈建議在IP核的事務層入口拉出AXI接口進行觀測。把MRd變成一筆AXI讀請求的過程完全在AXI側(cè)可見問題定位速度能快幾倍。6.3 現(xiàn)象三Switch拓撲下路由失效系統(tǒng)里掛了Switch后問題模式會變多。典型的一種是直接掛在RC端口上的設(shè)備讀寫正常但Switch下游的設(shè)備讀不到。排查重點換到路由表上。Switch上游口的Bridge Base/Limit寄存器決定哪個地址范圍轉(zhuǎn)給下游ID路由表決定Completion回家方向。如果Switch固件或枚舉邏輯沒配好這些窗口Crossing的包就會走錯路。另一個常見問題是MPS/MRRS不一致。如果一個設(shè)備的MPS只有128B而RC發(fā)來的MRd長度是256BMRRS256BEP會因為“請求長度超過自己能處理的范圍”直接回UR或直接丟棄。檢查兩端的MPS/MRRS協(xié)商結(jié)果確保它們是一致的這是Switch環(huán)境下最容易忽略的坑。6.4 內(nèi)存讀故障速查表現(xiàn)象可能原因優(yōu)先排查項讀回全FF地址未映射/設(shè)備未枚舉lspci、配置空間BAR值UR錯誤完成地址路由失敗/請求類型不支持RC出站窗口、EP BAR匹配CA錯誤完成EP內(nèi)部訪問失敗AXI側(cè)邏輯、EP內(nèi)部地址空間讀超時無完成信用不足/內(nèi)部忙/死鎖FC寄存器、ILA觀測AXI讀性能極低Tag池太少/MRRS太小在途請求深度、MRRS/MPSSwitch下讀失敗路由窗口未配對Bridge Base/Limit寄存器6.5 給FPGA開發(fā)者和驅(qū)動工程師的調(diào)試建議如果你是FPGA工程師兩條經(jīng)驗最值得記住第一條把PCIe事務層的調(diào)試關(guān)口前移到AXI側(cè)。不要在物理層或鏈路層面糾結(jié)太久事務層做完BAR匹配后基本都會轉(zhuǎn)成AXI/Avalon接口。AXI上看到什么地址、什么長度、什么響應幾乎等價于協(xié)議層看到的TLP但調(diào)試起來直觀得多。ILA抓AXI總線比抓PCIe總線簡單這是無數(shù)項目驗證過的路徑。第二條Completion的構(gòu)造順序不要想當然。有些IP核允許CplD亂序返回有些IP核內(nèi)部強制順序處理。如果是自己寫事務層狀態(tài)機強烈建議先用最簡單的“順序處理、一次返回全部數(shù)據(jù)”模式跑通再考慮拆分和亂序優(yōu)化。先把正確性做出來性能是后面的事。驅(qū)動工程師則建議從Linux的lspci -vvv、setpci、/sys/bus/pci/devices/*/config這些基礎(chǔ)工具入手配合AER日志。遇到錯誤不要先懷疑協(xié)議棧先把地址、BAR、路由、MPS/MRRS四個維度查一遍能解決九成問題。寫在最后我最初學PCIe事務層時犯的最大錯誤是把注意力全部放在TLP類型和字段上背得很熟但完全不知道一個包從發(fā)出到返回中間每一步是怎么串起來的。后來開始跟著一個讀請求走完整條路——從CPU地址到RC查表、到Switch路由、到EP讀寫、到CplD返回、到RC靠Tag匹配——整個協(xié)議才真正在腦子里立體起來。這篇寫得比較長就是把這條路走完整、走清楚。下一篇打算講Memory Write的完整旅程或者反過來從EP發(fā)起DMA讀主機內(nèi)存的角度把角色互換講一遍。這兩個方向都值得仔細展開。如果你在實際調(diào)板時也踩過什么玄學坑比如MPS不匹配導致的詭異UR、Tag池打滿后的性能雪崩歡迎來交流。調(diào)試經(jīng)驗這東西多聊一次就少一個半夜對著邏輯分析儀發(fā)愣的人。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丝袜加勒比| 在线午夜成人无码视频| 一区二区亚州激情久婷婷欧美| 歐美性天天| 大香蕉伊然在亚洲91| 日本999精品视频| 劲爆欧美人妖三区91| 久久噜| 人妻蜜桃臀| 国产不卡的视频| 97中文字幕九区| 600国产精品视频| 日本精品五区| 51一区二区三区| 欧美极度丰满熟妇hd| 67914亚洲精品| 人妻出轨一区二区三区| 国产乱青青草久久| 亚洲熟女综合网| 在线综合 亚洲 欧美中文字幕| 欧美操人视频| 性爱视频久久| 麻豆成人av| 精品少妇高潮久久| 亚洲无码偷拍| 久久性爱视频| 欧美久久草熟女| 嗯嗯,好大,好爽,好骚| 精品97精品97| 风韵犹存大大大大香蕉| 飘花国产午夜精品不卡| 五月天激情小说网| 男人的天堂久久狠| 超碰在线一区二区三区| 日韩一区二区精彩视频| 天天舔天天| 91欧美综合在线| 性高潮久久久久久久久久久| 密乳视频在线| 日韩激情啪啪| 操b网站亚洲无码| 久久精品人妻一区二区三区| 天天网综合| 草草网站影院白丝内射| 青草青青久久久久久国产| 人人污日韩一区二区| 青青草视频久久久久| 2017大香蕉国产精品久久| 极品少妇久久久久| 成人无码在线视频网站| 九色视频91| 天天天乱色综合全| 97爱爱| 国产亚州高清国产拍精| 97超碰久久| 欧美日韩香蕉| 大香蕉青青9| 超清中文乱码字幕| 人人干人人操人人..com| 九九在线精品| 久久久成人精品| 97超碰大| 日韩性爱高清免费视频| 国内成人圈中文字幕无码视频| 一级性爱视频免费观看| 五月激情综合网| 亚州色图片在线色| 尹人免费观看视频在线| 小草精彩毛片| 国产高清自拍视频| 中文字幕乱在线伦视频中文字幕乱码在线 | 伊人久操| 97se综合| 日逼视频日本| 欧洲精品一区二区三区| 中国AAAAAA黄色片| 精品国产72| 亚欧美综合网| 天天综合91在线| 97欧美资源| 在线人人人人人人精品超| 亚洲男人天堂2016| 嫩草美女久久| 成人贴图日韩欧美| 精品天堂| 国产女上位好爽在线| 亚洲国产精品有声| 一本色道久久天天射天天干| 天天射天天操天天干天天吃2018| .精品人妻一区二区三| 超碰在线日韩一区| 欧美72网页| 天天舔日美女视频| 亚洲成人av色网| 福利视频一区二区微拍| 日韩另类色图| 自偷自拍的亚洲视频| 国产在线观看一区二区三区| 久久 精品| 男人的天堂三级| WWW.加勒比人妻一区不卡.com| 色色五月丁香| 天天日天天干天天整| 欧美夜夜草视频| 少妇的嫩逼图片| 日本不卡二三区| 亚洲伊人久久精品狠狠在线| 1024人妻| 天天做天天爽| 91蜜桃婷婷狠狠久久综合9色| 久久久无码av精| 国产日产精品久久快鸭的功能介绍| 骚女天天综合网| 熟妇一区,二区,三区。| 亚洲欧美在线综合| 毛片99-全集电影手机免费观看完整-B029AV | 无码国产精品午夜不卡(| 91久久免费视频互動交流| 一区二区视频在看| 久久黄黄黄| 96久久久久久久| 色婷婷av在线观看| 美女天天干| 日韩9区| 中文字幕女同在线| 搡老女人老91妇女熟女| 久久99草| 久久久久久免费电影| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 久久9亚洲| 婷婷五月天色色| 色色婷婷五月| 一区二区偷拍拍视频| 婷婷色网| 久久综合九九| 久久久不能久久久久| 爱干爱射网啊啊啊| 偷拍亚洲视频一区二区三区四区| 抽插亚洲无码| 岛国黄片网站| 俄罗斯一区二区视频在线观看| 亚洲 日本 国产 综合| 国产一区二区三区久久久精品| 天天干天天燥| 婷婷五月天激情四射| 亚洲情色婷婷五月天| 一区二区三区精品视频| 天天影视综合网欧美精品| 国产女上位好爽在线| 天天综合精品| 亚洲性图91| 97操碰| 五月天伊人网| 欧亚成人| 成人网欧美风情| 日本好吊色视频| 国产97视频| 亚洲中文字幕熟女| 97自拍视频在线| 射 色综合| 欧美日韩另类字幕中文| 视频不卡中文字幕| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 亚洲国产成人7777| 免费无码国产精品v片在线观看| 欧洲Au麻豆| 亚洲男人久久综合天堂| 嗯嗯啊啊啊好爽| 欧美成人免费在线观看| 成人无码影片视频在线| 色女99一级片在线观看| 丝袜狠狠草尤物 91| 久久免费9| 无遮挡一级毛片视频免费的| 9999亚洲电影| 99re免费| 婷婷天堂站| 91天美传媒精品| 91综合网站| 91人妻素女| 精品国产乱码久久久久久影片| 久久97超碰香蕉| 欧美在线91| 亚洲高清无码在线桃色| 亚洲影院小综合| 欧美天天| 91狠狠综合久久| 91嫩草欧美| 欧美 亚洲| 婷婷中文网| 亚洲AV无码久久精品蜜桃小说| 亚洲 欧美 日韩另类 麻豆| 中文字幕黄片在线| 国产嫩草精品A88AV| 精品乱码久久久久| 欧美在线永久天堂| 男人久久精品| 亚洲性爱成人| 亚洲麻豆18发?| 97精品97| 97视频在线视频| 亚洲九九视频在线观看| 青草精品视频日本久久久久网站在线| 亚洲综合一| 国产粉嫩蜜臀av一区二区三区| 五月丁香六月婷| 亚洲日韩97| AV在线性爱| 超碰97资源中文字幕| 欧美性爱第1 页| 女优视频第10页| 国语精品av| 91精品国产高清久久久久久,亚洲成人 | 四虎视频在线观看| α√在线| 亚洲第一男人天堂| 这里只有精品久久| 九九九九九九九九九国产精品 | 国产精品高清2021在线| 精品久久久久久久久久久久| 欧美日韩色综合网| 国产成人精品一区| 日韩欧美经典在线观看| 超碰精品97| 国产激情视频在线观看| 影音先锋每日最新资源在线观看| 啊啊啊啊嗯嗯嗯用力好爽 | 国产熟女高潮一区二区三区| 国产小视频91| 中欧人妻丝袜中文字幕 | 美中日韩无码| 日韩九九九| 亚洲综合小说另类图欧美视频激情小说色五月天 | 欧美日韩大香蕉| 亚洲情色1区| 亚洲日韩人妻中文字幕一区| 亚洲色入欧美| 日本特黄f c2| 顶级丝袜熟女一区二区三区| 九热久| 亚洲丝袜色图| 日韩熟女精一区二区三区不卡| 丁香五月天久久精品视频一区二区三区| 色哟哟 日韩精品| 91在线/欧洲| 色狠狠色| 欧美色www亚洲国产阿娇要播| 91爱看| 精品一区二区亚洲国产| av三级电影在线播放| 99啪啪视频| 曰本人妻人人澡人人夹| 东京热大香蕉| 精品无av| 亚拍在线| 久久久999网站| 在线综合色| 校园春色 欧美| 欧美72网页| 色综合色欲色综合色综合色综合| 久操91视频| 青青草中日韩在线| 久久久久久久久久久97| 人妻精品视频一区二区| 色牛aV| 玖玖无码超碰| 偷拍五区| 神马午夜久久久| 国产无马av| 无码高清少妇久久| 看日韩黄片| 欧美色图亚洲色,麻豆| 九九久久首页| 99热久| 亚洲精品国产专区在线观看| 丝袜AV一区二区三区| 久噜噜| 欧美 亚洲 制服 精品| 丰满人妻无码一区二区三区| 黄色免费一级在线毛片| 国产sv美女内射| 亚洲性综合| 亚洲中文字幕妇伦久久| 色99视频| 日本99久久| 18禁免费视频| 五月婷婷六月激情| 另类一区| 色成人Www精品永久观看| 粉嫩av平台| 欧美91在线| 91欧美经典| 欧美人妻熟女在线| 久草线上视频免费看| 久久久久久大| 亚州宗合另类| 五月丁香激情综合| 中文字幕 人妻不满 在线视频| 成年人性爱日韩| 国产一区二区三区免费视频在性观看| 91性高朝久久久久久久久| 少妇久久| 亚洲 无码 偷拍| 草草草视频在线免费看| 亚洲色天堂日韩中| 午夜超碰| 成·人免费午夜在线观看| 国产99热| 另类图片欧美激情综合| 人人操人人插 - 百度 - 百度| 麻豆三极片| 91被操| 97在线观看播放视频| 都市久久精品激情亚洲| 天天操夜夜操狠很操| 欧美伊人久久综合网| 一道α片欧美| 18禁免费视频| 丁香五月婷婷基地| 国产玖玖| 久久久久久性爱视频| 夜夜狼人妻| 99re9这里只有精品| 91久久18禁| 大香蕉欧美国产日韩高潮| 日日噜噜夜夜久久亚洲一区二区| 中亚黄色三级大片| 91白嫩| 亚洲91色| 999精品国产高清一区二区| 亚洲制服aⅴ中文字幕| 色综合av男人天堂| 另类天堂| 91天美传媒在线观看| 亚洲色棕合| 青草精品视频日本久久久久网站在线| 夜夜肏2021| 亚洲色图美腿丝袜| 成人贴图日韩欧美| 国产肏屁眼视频| 97亚洲国产| 精品对白久久不卡| 精品国产一区二区三区四区在线看 | 国产精品黄色三级av| 日韩精品亚洲专区在线影视| 激情99| 久久夜夜夜夜| 国产精品农村妇女精品| 四虎国产精品永久在线囯在线| 国产成人一级av88| 九九九网页| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 精品日韩中文在线| 六月激情网| 久久久穴999| 国产精品一区在线播放| 97综合久久| 日韩乱伦AⅤ| 岛国精品视频在线观看| 日韩国语字幕| av东京热男人的天堂| 欧美天天射| 色综合久久88色综合久久天天| 嗯嗯嗯好爽| 操逼无毒无码免费视频| 你懂的在线观看区国产| 中文字暮97| 久久伊人东京热| 亚洲字幕一区二区| 男女91| 大逼色网站| 免费一级精品啪啪视频| 中文乱码99| 亚洲色图图片| 激情五月激情综合网| 亚州色图欧美| 成人精品久久久午夜福利| 国产www色在线观看| 啊啊啊好湿久久| 熟女熟妇一区二区三四区| 国产成人无码啪| 欧美成不卡网| 中文字幕一区二区视频在线观看| 欧美做爰无码A片视频| 日韩丝袜高跟制服在线观看| 国产一级舔足在线观看| 天天日B狠狠操| 亚洲日精品| 肉嘟嘟www视频在线观看高清| 吉田爱美AV在线| 福利视频合集| 1956日韩精品| 亚洲欧美首页| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 熟妇的味道HD中文字幕| 福利风月五月天影院| AV女资源| 天天做天天爱天天爽| 99视频自拍区| 色情五月丁香| 骚女天天综合网| 人妻少妇视频在线播放| 99999国产精品| 天天干天天插| 欧美v日韩v亚洲v最新在线| 99碰碰| 台湾佬大香蕉| 久久天天摸| 色图综合网| 怡红院怡春院| 国产强奸91| 99后入| 欧美精品久久久久久久久88| 欧美日韩精品青青| 九九热在线视频| 精品高潮| 使劲用力艹少妇视频一区二区| 这里只有精品视频在线观看麻豆| 欧美日韩青操| 亚洲AV无码乱码在线观看性色| 中文字幕免费在线观看| 夜色五月天| 中文字幕天堂在线| 狠操91,com| 噜噜噜无码AV一级一级久久影院 | 亚洲少妇诱惑| 色嗨嗨在线| 美女黄色91| 亚洲一区二区三区久久 亚洲一区二区| 国产精品96| 久久久av爱| 日韩av在线播放不卡| 欧洲综合色| 欧美爆操91| 日韩免费看黄片| 久艹日日日| 色欲人妻一区二区在线| 在线另类| 婷婷去俺也去六月色| 一二视频神马久久传媒| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 99视频只有精品| 日本一级特级毛片视频| 欧美极品少妇| 色女99一级片在线观看| 激情综合婷婷| 尤物网址| 97国产人人| 黑人与人妻| 九九九九久久久| 再深点灬舒服灬太大了添视频 | 日本最新免费韩国1区2区视频播放| 国产精品一区二区手机看片| 超碰久在线天天做| 国产久久成人| 欧美欧美少妇| 97爱综合| 777琪琪午夜免费A片| 国产盗摄美女如厕大神作品在线观看| 蜜臀在线网站| 国产传媒午夜理伦精品| 好湿好紧好爽 视频| 天堂综合网| 东北女人高潮视频| 色九色久| 久操大香蕉手机视频在线看 | 欧洲色色| 成人av免费观看| 成人AV超碰免费在线| 日躁天天爽爽| 超碰97综合网| 蜜桃臀一区二区三区久久| 区一在线观看| 欧美在线色图| 熟妇最新先锋一二三区| 玖玖色综合| 九九色逼| 吖在线不卡一区二区国产剧情| 97av在线观看| 日躁天天爽爽| 台湾佬大香蕉| 美欧色综合| 偷拍欧美亚洲| 怡红院成人视频| 91美女国产在线| wuyechaopeng| 国产风韵犹存熟妇三区| 国产久久男人天堂| 超碰1997| 久草精品一区| 超碰在线综合97| 人妻熟女一区二区| 日日爽熟女| 熟妇无码视频三区| 九九九九精| 欧美91变态| 伊人影院日本| 久久久久久亚洲Av无码精| 中文字幕av亚洲精品| 日本成a人v网站在线观看| 精品黄色电影| 中文字幕美女91| 强奸乱亚洲| 另类av天堂| 夫妻AV网站| 伦理日韩国产久久| 国产成人精品亚洲日本| 日韩国产精品人妻无码久久久| 热久久无毒不卡| 91在线一起| 国产不卡中文字幕免费avi| 中文字幕性感少妇av| 男同专区一区二区三区在线| 麻豆AV一区二区天美传媒| 美女91网| 超碰在线一区二区| 一级毛片久久久久久久女人18| www.91理论| 92人人操人人| 啊好大好舒服| 精品一二三区女同| 亚洲欧美另类图片| 超碰久在线天天做| 亚洲高清综合网| 麻豆黄站| 99热| 国产免a费看黄片在线| 久久露脸国产老熟女| 欧美性天天影视| 91日产欧美| 夜夜国自区| 91精品无码久久久久久久| 国内毛片婷婷六月色| 天天淫人人妻日日色| 日本黄色裸日本黄色裸体| 亲子敌伦对白在线播放| 色欲人妻一区二区在线| 亚洲不卡不卡中文字幕不卡| 97 九色| 婷婷色五月激情| 婷婷午夜| 天天弄欧美| 99热在线观看| 极品白嫩福利在线| 超碰欧美97资源| 激情小说亚洲| 欧亚在线视频| 97视频在线视频| 欧美色网| 五月天综合网| 久久久久人| 天天谢天天干| 欧美老熟另类| 欧美人妻少妇| 岛国精品视频在线观看| 呦女网站| 国产一进一出视频网站| 亚洲天堂东京热| 啊啊啊骚| 欧美劲爆视频一区二区| 激情五月天校园春色网| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 麻豆一区二区AV天美| 91搞逼视频| 丰满翘臀美女影院视频| 97精品在线视频| 婷婷丁香五月天综合东京热| 欧美亚洲美少妇一区二区| 欧美翘臀视频网站一区二区三区| 九九色婷婷| 中文字幕伊人| 日本五十路熟女一区二区| 台湾肥佬网一区二区三区| 国内伊人久久久久久网站视频| 91粉嫩萝控精品福利网站_精品影音先锋国 | 一及黄久一点| 精品视频一区二区| 亚洲人成色9999精品久久| 欧美中日韩XXXX| 俺去也婷婷| 国产97在线播放| 亚洲精品亚洲人成人网| 日日骚av| 亚洲欧美精品一区天堂久久 | 日韩丝袜二区| 九99久久| 成全在线观看免费观看| wuyechaopeng| 人人射人人操人人摸| 99re6在线视频精品免费完整版安卓版| 在线无码视频| 97在线青| 日韩午夜啪啪视频| 国产一线二线三线av| 又大又白奶子| 欧美色999| 麻豆精品A片免费观看| 蜜臀AV秘一区翔田千里| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 天天综合站| 国产 三级自拍| 超碰色97| 久久大香蕉手机高清视频| 天美精品原创av片国产| 美欧老女人97| 色久桃花影院在线观看| 国产一区二区在线看| 婷婷午夜| 五月丁香六月综合缴清无码 | 黄色十八禁网站| 国产中文大片资源中文字幕 | 中文字幕天天天天天| 中字幕人妻一区二区三区| 囯产乱伦一区二区三女| 97免费在线观看视频| 91久热这里只有精品| 天堂а√在线最新版在线| 大香蕉92| 久久久久国产亚洲一区欧美色图日韩 | 9/A片 | 中文字幕在线免费观看| 久久久久久亚洲精品中文字幕人妻| 亚洲性爱电影| 18禁久久| 久久久久久久78| 国产精品自在线发布| 美女啊啊啊啊啊| 97在线欧洲| 狠狠综合| 人妻一区二区三区视频| 欧美日韩色| 打av高清| 日本三级韩国三级99| 一区二区免费电影久久| 久久精品导航| 自拍视频大全亚洲专媒视频/一区二区三区| 日本欧美亚洲高清在线看| 一区二区不卡视| 风骚少妇视频中文字幕| 蜜桃色色网站视频三区| 大伊香蕉在线视频免费| 97啪啪| 小电影欧美91| 青青草在线视频欧美| 国产精品成人在线| 日韩久久.一级黄色片| 97在线看| 青娱乐 青青青操 日逼| 日韩精品电影| 久九干| 在线观看一卡二卡| 国产小黄片在线免费观看| 人人操人人干xxx| 欧美自拍网| 玖玖大干人妻| 国产不卡中文字幕免费avi| 泰国AV在线观看| 女人被添高潮免费视频| 国产精品久久久久久久黄无码| 淫荡网址| 国产精品久久久| 97久久久久久久久久| 成人精品视频| 国产熟妇一区二区| 9 7超碰在线免费观看| 日韩精品区二区三区不卡| 国产精品一区二区黄片| 亚洲精品无码成人久久久99| 黄片免费视频2019| 1769成人国产精品视频| 97视频在线看| 男人精品区| 操人妻视频| 久久久啊啊啊| 97 色综合| 人爽不卡视频| 无码78| 九九九精品美女| 91精品人妻一区二区三区蜜桃| 色偷偷综合91久久噜噜| 一本一道久久综合久久| 夜夜夜夜爽| 亚洲色天堂九9| 人妻 欧美亚洲| 欧美色图片色哟哟| 欧美综合色| 色臀AV| 综合亚洲欧美| 亚洲无码日韩电影| 国语少妇精| 91熟女视频| aa片毛片| 熟女这里只有精品6| 岛国片在线播放| 天天操天天干一区二区| 亚欧成人综合影院| 92午夜免费福利视频| 欧美三级中文字幕hd| 超碰人人在线| 无码免费一区二区三区啪啪| 精品福利视频| 五月天久久婷婷亚洲 | 六九九九| 欧美暴力猛交| 激情五月天校园春色网| 丝袜美腿操av| 97免费在线观看| 蜜乳视频网站| 国产精品一二三在线看| 亚洲激情综合| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 日韩AV片| 91熟女综合| 91操人| 亚洲情欲| 另类TS人妖一区二区三区| 国产高清MV操逼视频| 精品人人插人人操| 欧美最婬乱婬爆婬性视频 | 97国产亚洲中文在线| 九99久久| 校园春色五月天| 91人妻做a观看视频| 精品国产精品一区二区| 日韩AV一区二区三区三州三州| 亚洲揄拍网| 久久线上视频免费看| 精品九九九| 国产一级作爱毛片| www.婷婷五月天| 污污污8888| 青青草综合在线| 日本一区视频在线观看| 久久老子无码午夜伦不卡| 久久久久久久久久久久久久久乱码| 乱久久久| 国语av狠狠色丁香婷婷综合激情| 人人看欧美性爱| 欧美熟爽综合| 成人热久久精品| 伊人骚琪琪亚洲天堂网站| 国产亚洲精品精AV.| 日本中文字幕在线电影| 99少妇精品视频| 国产外初女出血视频| 26uuu最新| 综合色99| 国产有码一区| 97超碰9| 精品国产久热在线观看| 78p欧美| 搡老女人老91妇女老熟女| 国产AV激情无码久久无码| 精品一区96| 大香蕉懂9| 久久久久亚洲Aⅴ无码| 在线 亚洲 网爆 自拍| 骚女天天综合网| 亚洲二区精品在线观看| 91亚州欧美| 亚州综合色| 亚洲丁香花色| 丝袜色综合| 国产欧美一级在线观看| 91色噜噜狠狠| 国产精品福利资源在线尤物| 凹凸视频特色日本特黄| 亚洲涩图欧美| 日韩综合无码色欲vv| 国产超碰在线一区| 色图综合网| 超碰79人人乐| 久久久久白虎| 亚洲色吧网| 香蕉精品二区二区| 99热伊人| 国产9熟妇视频网站| 91人人臊| 欧美精品亚洲精品日韩传电影| 久久毛卡| 97香焦色区| 精品视频一区二区| 五月丁香啪| www男人天堂| 六月丁香啪啪啪| 99热欧美| 综合性视频99| 户外裸露刺激视频第一区| 国产精品3| 近亲乱伦一区二区| 久草毛片| 成人综合久久精品色婷婷| 人伦四五区| 亚洲成人综合在线| 久久久久久久91| 丰满人妻一区二区三区免费,| 日韩精品-原创伙伴| 一区二区三区在线资源| 亚洲少妇在线影音| 免费?级毛片无码?∨蜜芽试看| 99黄页网站| 日本人妻伦在线中文字幕| 亚洲欧洲综合| 隔壁邻居波多野结衣中文字幕| 国产午夜视频| 一区二区三区视频国产免费| 久久精品成人一区二区三区蜜臀| 久久亚洲AV成人精品无码| 97操碰| 大香蕉97久久| 欧美探花网| 九一综合精品视品av| 日本性感人妻91| 色综合尤物| 欧美另类丝袜熟女| 国产大学生高潮在线播放| 78精品| 精品国产嫩穴视频| 国产女人极品高潮毛片| 色69大色97香蕉| 色嘟嘟人妻天堂网| 大香蕉视频一二三区| 久久久久久99999国产精品| 国产激情综合| 午夜福利一区二区影院| 欧亚日韩综合精品国产| 小少妇| 婷婷五月天激情四射| 欧美A√综合网| 成人日韩欧美| 国产综合在线视频网站| 精品无人区麻豆乱码1区2区图片| 婷婷激情四射| 一区操逼日比视频| 日日骚一区二区三区| 久草资源欧美在线视频| av无码精品久久久久| 亚洲在线| 91天天爽| 九九九九九九成人| 久久午夜伦| 国产一在线观看| 亚洲色婷婷久久久综合日本| 国产乱人妻精品入口| 欧美精品第3页| 琪琪精品免费一区二区三区| 欧美一区二区福利在线| 97av在线视频| 青青草伊人久久| 中文乱码字字幕在线第5页| 91熟女.com| 青青草原人妻| 黄网在线播放| 国产成人精品必看| 久久精品国产亚洲5555| 久久一二三四不卡 | 4虎在线观看| 亚洲天堂美臀在线| 亚洲网自拍| 99久在线精品99re8| 日本东京热加勒比久久| 精品女同一区| 日本精品免费一区二区三区四区| 久久XX| 一本大道不卡一二三区| 97视频播放| 日本黄色天堂| 骚逼一区二区| 日本超碰在线国产一区| 91狼人| 黑人操一区二区| 一级片视频啪啪| 午夜精品久久久| 人妻激情视频| 日夜尻逼网| 色五月AV在线| 青青草成人视频在线观看二区 | 久久久一区二区三区三州| 校园春色综合网| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 精品一二三区四视频| 麻豆天美久久91| 综合啪啪| 久久欧美性爱视频| 麻豆啪啪啪视频| 热99这里只有精品| 亚洲精品无码久久AV| 二男一女成人A片| se吧提供91精品国产91久久久久久 | 久久精视频美日韩在线视频| 久久成人午夜精品影院| 天天综合~91入口| 久久r精品| 九九久久一区二区三区| 中文伊人大香蕉视频| 91狠狠色丁香婷婷综合久久精品| 99视频精品| 日韩欧美tv一区二区在线观看| 亚洲欧美首页| 青青在线视频日韩欧美| AV色五月| 日韩无码AB| 久久色一区二区| 夜夜国产一区| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 中文操逼字幕| 性爱视频免费网址| 影音先锋日本乱伦| 久久久久久日韩| 操逼不卡中文字幕| 曰韩无码777| 99色综合| 亚洲第一页欧美| 2017大香蕉国产精品久久| 新视频sss国产| 福利五区| 九九九精品美女| 天天日天天操天天射河南省| 小说区 图片区色 综合区| 中文字幕日韩精品久久| 97爱免费插| 日韩AV色图| 少妇激情AV| 怡春院久久| 日本爽爽爽爽爽爽免费视频| 收看日本人日bb| 韩国午夜理伦三级好看| 深田咏美亚洲精品福利社| 婷婷丁香五月综合| 精品一区96| 欧美亚洲厕所精品偷拍91| 男人天堂网手机版婷婷| 欧美日韩色| 一个人免费视频观看在线WWW| 天天摸夜夜添无码小视频| 日韩欧美经典在线观看| 男人兔费天堂| 日韩9999| 青女偷拍网| 五月丁香黄色网| 91快色色色色色| 久草精品热视| 97超碰免费生活| 蜜桃av色偷偷av老熟女| 成人亚欧免费视频| 99热色精品| 国产精品在线一区二区| 伊人网高清| 秋霞影音一区二区三区| 日韩99神马视频播放片在线播放| 久久久久网站-538在线视频-欧美永久乱码| 中文字幕av一区二区三区人妻少妇| 久久尹人大香焦视| 国产福利小视频高清在线观看| 日本视频一区二区三区| 人妻精品综合中文字幕在线 | 欧美成不卡网| 久九九九九九九九热| www欧美91| 日美免费黄片| 区一二区日韩亚洲乱码av电影| 久久久久幕乱码| 艹精品| 91精品黄在线观看| 98福利在线视频| 日日干天天干夜夜爽| 成人性爱电影网| 亚洲性少妇| 中文字幕av一区二区三区人妻少妇 | 麻豆影音天美视频| 五十路熟女人妻一区二区在线观看| www.99中文字幕| 成人色女网| 天天操天天干美女网址导航| 国产自产自拍| 欧美日韩少妇色情| 中欧人妻丝袜中文字幕| 97人人模人人爽人人| 亚洲熟妇综合久久久久久| 欧美成熟性爱精品| 国产人妻精品久久久一区二区三区 | 自拍大香蕉乱插| 中文字幕天天操| 中文AV制服乱伦| 中文高清一区二区的| 99超碰网| 色色婷婷丁香| 蜜桃臀一区二区三区久久| AV网站高清无码在线观看| 蜜臀久久久国产| 精品日韩人妻精品一二三区| 天天淫人人妻日日色| 日韩色女精品| 国产操逼逼网| 最新9久久久9免费视频| 丁香九月 婷婷| 欧美亚洲AN| 91在线超高颜值国产| 大香蕉伊人网WWWn0n| 国产v亚洲v日韩v欧美v片另类| 色五月首页| 加勒比海人人操超碰在线| 香蕉综合网| 9精品久久久久| 欧美性爱五月天| 快播久久人人aV| 日本片日本片祼观看网站在线看中文版网页在线看 | 天天天天天天天天天天干美女| 国产精品一区二区后入| 91人妻精华帖| 久操视频免费观看| 国产呦精品系列在线观看| 日韩99999色| 亚洲无码超碰免费| 在线97在线| 亚洲最大成人a毛毛片| 久久骚| 手机在线人成免费视频| 97超碰公开| 大香蕉伊人久久| 91人妻少妇| 国产高清不卡视频| 国产高清吃奶免费视频网站| 天天色踪合| 丁香五月天堂| 日韩人妻无码不卡网站| 成人精品电影| 色香AV| 久久久久78| 婷婷久热| 欧美91变态| 色偷偷色偷偷欧美日韩| 强奸乱伦大香蕉网| 欧美 日韩第一性色| 成人资源中文字幕在线观看天天 | 国产精品一级二级在线| 婷婷亚洲天堂| 精品99999| 久久综合av| 久久黄黄| 不卡中文字幕aⅴ在线| 97视频新免费| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 久久人妻四季| 国产精品自拍xxxx| 超碰九7免费| 精产国品一区二三产品| 天天操天天舔| 国产精品美女视频诱惑| 成人精品一区二区三区| 99久久综合| 宅男影院久久久,99| 日本久久久精品电影| 天天摸天天插天天日| 久久精品日韩| 久久久久久久97| 色妇91| 大胆91| 亚洲成熟国产精品美女| 久久久久久久人妻丝袜| 亚洲天天影视综合网| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 欧美男人的天堂| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 欧美亚洲综合色| 波多野结衣被操50分钟免费视频 | 性高潮久久久| 99啪啪| 久色网| 粉嫩不卡一区二区性爱| 狠狠超| 无码九九九九| 美女毛片999| 黄片不用下载在线观看| 精品日韩中文在线| WWW.操逼.COM| 性生活性生大爱77AV国产| 中 文字幕一区二区三四 五 区日 日 骚 | 亚洲人91| 伊人综合色网| 亚洲成人美女无吗| 男人天堂欧美| 青操影院| 久草精品国产蜜臀| 亚洲麻豆精品二区三区| 看黄片视频免费| 91成人无码| 人妻精品一区一区三区蜜桃91| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美日韩性爱精品| 一区二区三区四区理论片| 欧美大香蕉97| 日韩成人大片一区二区| 成人久久久| 欧洲亚洲天堂精品| 狠狠狠狠狠干| 日韩一级特黄av毛片| 亚洲国产熟妇综合色专区| 求求你操操我| 久久精品一区二区三区不卡| 亚洲精品性爱片| 国产一区二区在线看| 最新av在线| 亚洲天天艹| 黄色小视频日本txt| 人人么人人操| 婷婷人妻激情| 亚欧中文字幕在线视频| 人人操人人狠狠操| www男人天堂| 高跟伊人julia ann| 亚州色图第三区| 久久久久国产一区二| 日韩av性爱在线播放| 日韩无码第3页| 九九九九免费视频| 日韩中字av一区| 91碰碰碰| 国产男女无套视频免费观看| 亚洲熟伦熟妇AV无码春色| www.91视频网| 欧美肥臀在线| 麻豆一区在线| 男人的天堂色偷偷青青草视频婷婷网| 精品少妇后入一区二区三区四区人妻巨乳 | 亚洲最新av无码成人精品区| 色婷婷狠狠| 97在线精品观看视频| 麻豆天美一区二区| 亚欧美综合| 婷婷另类小说| 色一情一乱一乱一区91Av| 嗯啊抽插大香蕉网页| 性爱网站一区二区| 中文字幕精品码亚洲| 91热| 久久久三区二区一区| 婷婷激情五月综合| 日韩丝袜高跟制服在线观看| 中文在线久久字幕| 精品国产一区二区久久| 五月婷婷综合在线| 亚洲五月丁香花狠狠干一区二区三区 | 欧美影院一区二区三区| 午夜噜噜噜| 漂亮人妻被强中文字幕hd| 国产精品毛片| 91精品久久久久久久久久| 人妻大相焦在线| 成人日本精品九区| 国产精品网站免费| 97爱亚洲综合色| 中文字幕十五区| 亚洲精品天天影视综合网| 亚州再线| 日日A∨| 东北操逼| 久久9免费视频| 91中出视频| 精品国产AV一区天美传媒|