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

ARTICLE DETAIL

資訊詳情

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

一次PCIe內(nèi)存讀的完整旅程:深入解析事務(wù)層MRd與CPLD機(jī)制

一次PCIe內(nèi)存讀的完整旅程:深入解析事務(wù)層MRd與CPLD機(jī)制 有沒(méi)有過(guò)這種經(jīng)歷lspci -vv明明列出了一個(gè) PCIe 設(shè)備BAR 地址也分配了軟件去讀寄存器卻返回全0xFF或者干脆卡在readl里遲遲不返回最后上報(bào)一個(gè)總線錯(cuò)誤。很多人第一反應(yīng)是驅(qū)動(dòng)寫錯(cuò)了、中斷沒(méi)配好卻忽略了 PCIe 事務(wù)層協(xié)議里最基礎(chǔ)的一環(huán)——內(nèi)存讀請(qǐng)求和完成響應(yīng)是不是真的對(duì)上了。這次就用一次內(nèi)存讀的完整旅程把 PCIe 事務(wù)層協(xié)議里最關(guān)鍵的部分逐段拆開(kāi)看完之后再去排這一類問(wèn)題思路會(huì)清晰很多。這篇文章的主場(chǎng)景是 CPU 發(fā)起一次對(duì)設(shè)備映射地址的 32 位 MMIO 讀。一次讀在 PCIe 世界里從來(lái)不只是一個(gè)方向的動(dòng)作先要發(fā)一個(gè)內(nèi)存讀請(qǐng)求Memory Read Request, MRd設(shè)備收到后還必須回一個(gè)完成報(bào)文Completion with Data, CPLD。這中間涉及 TLP 構(gòu)造、流控信用、地址路由、標(biāo)簽匹配、完成拆分、錯(cuò)誤狀態(tài)等一系列機(jī)制。適合正在做 PCIe 驅(qū)動(dòng)開(kāi)發(fā)、FPGA PCIe 接口調(diào)試、或者剛開(kāi)始讀 PCIe 協(xié)議但被規(guī)范文檔繞暈的工程師參考。1. 先畫一條路徑一次內(nèi)存讀在 PCIe 里到底要經(jīng)過(guò)哪些環(huán)節(jié)1.1 為什么用“讀”來(lái)拆事務(wù)層而不是“寫”PCIe 的寫事務(wù)是“單程票”。Posted 報(bào)文發(fā)出去就完事不需要對(duì)方回執(zhí)而讀事務(wù)天然是“一問(wèn)一答”請(qǐng)求發(fā)出后請(qǐng)求方必須等待完成報(bào)文回來(lái)整個(gè)往返過(guò)程才會(huì)結(jié)束。正是這個(gè)“回答”機(jī)制把事務(wù)層的報(bào)文類型、路由方式、標(biāo)簽管理、流控信用、錯(cuò)誤狀態(tài)全都帶了出來(lái)。打個(gè)比方寫事務(wù)就像寄出一個(gè)包裹單號(hào)只是方便你事后查讀事務(wù)則是寄出一張查詢單要求對(duì)方蓋個(gè)回執(zhí)再寄回來(lái)?;貓?zhí)如果丟了、慢了、寄錯(cuò)了人立刻就能體現(xiàn)出異常。所以把一次讀吃透寫、消息、配置讀寫這些事務(wù)的規(guī)則基本也能順勢(shì)理解一大半。1.2 一次讀的完整旅程可以拆成七個(gè)站點(diǎn)不用畫流程圖我用文字把這次讀的經(jīng)過(guò)列出來(lái)后面所有內(nèi)容都是圍繞這條鏈路展開(kāi)的CPU/驅(qū)動(dòng)程序訪問(wèn)一段已映射的 MMIO 地址這個(gè)地址在 Root Complex 里被識(shí)別為 PCIe 域。Root Complex 的事務(wù)層生成一個(gè)內(nèi)存讀請(qǐng)求 TLP也就是 MRd。如果拓?fù)淅镉?SwitchTLP 按目標(biāo)地址被路由到對(duì)應(yīng)的下游端口。端點(diǎn)接收 TLP先由數(shù)據(jù)鏈路層做完整性校驗(yàn)再交給事務(wù)層解析。端點(diǎn)根據(jù)地址命中自己的 BAR 空間把內(nèi)部寄存器或存儲(chǔ)器的數(shù)據(jù)讀出來(lái)。端點(diǎn)構(gòu)造完成報(bào)文 CPLD攜帶數(shù)據(jù)和狀態(tài)返回。Root Complex 根據(jù)請(qǐng)求者 ID 和 Tag 匹配完成最終把數(shù)據(jù)交給 CPU 或系統(tǒng)內(nèi)存。這七個(gè)站點(diǎn)是典型場(chǎng)景實(shí)際拓?fù)淇赡軟](méi)有 Switch直接從 Root Port 到設(shè)備那第 3 步和第 6 步的路由判斷就更簡(jiǎn)單但核心機(jī)制完全一樣。我用一個(gè)表格把每個(gè)站點(diǎn)涉及的關(guān)鍵知識(shí)點(diǎn)先擺出來(lái)階段主要?jiǎng)幼魃婕笆聞?wù)層知識(shí)點(diǎn)Root Complex 發(fā)起地址翻譯、TLP 構(gòu)造BAR、請(qǐng)求頭部、TagSwitch 下行按地址路由地址路由表、內(nèi)存窗口端點(diǎn)接收校驗(yàn)并解析請(qǐng)求LCRC、事務(wù)層接收邏輯端點(diǎn)數(shù)據(jù)源BAR 命中并讀取內(nèi)部寄存器/RAM 映射端點(diǎn)應(yīng)答構(gòu)造 CPLD完成頭、狀態(tài)、拆分規(guī)則Switch 回程按 ID 路由Completer IDRoot Complex 匹配完成隊(duì)列配對(duì)Requester ID Tag1.3 MMIO 讀和 DMA 讀是兩條不同方向的路很多朋友看到“內(nèi)存讀”會(huì)條件反射想到 DMA也就是端點(diǎn)設(shè)備主動(dòng)去讀系統(tǒng)內(nèi)存。這確實(shí)是 PCIe 里最常見(jiàn)的業(yè)務(wù)之一但和本文主講的 MMIO 讀方向正好相反。對(duì)比項(xiàng)MMIO 讀DMA 讀發(fā)起方Root ComplexEndpoint讀取對(duì)象端點(diǎn)的 BAR 空間主機(jī)側(cè)系統(tǒng)內(nèi)存請(qǐng)求頭里的地址含義目標(biāo)設(shè)備內(nèi)部地址主機(jī)物理內(nèi)存地址完成方向Endpoint - Root ComplexRoot Complex - Endpoint常見(jiàn)故障點(diǎn)BAR 沒(méi)使能、設(shè)備不回完成Bus Master Enable 沒(méi)開(kāi)、IOMMU 映射錯(cuò)誤DMA 讀的核心 TLP 機(jī)制和 MMIO 讀其實(shí)完全同源只是“問(wèn)路”的方向反了過(guò)來(lái)。把 MMIO 讀這條鏈路徹底搞懂DMA 讀的請(qǐng)求和完成關(guān)系也可以直接遷移過(guò)去。2. 事務(wù)層的“快遞單”TLP 頭部到底寫了什么2.1 TLP 在 PCIe 分層里的位置PCIe 事務(wù)層的核心產(chǎn)物就是 TLP。事務(wù)層負(fù)責(zé)把 CPU 側(cè)的內(nèi)存訪問(wèn)翻譯成標(biāo)準(zhǔn)報(bào)文在接收側(cè)又把報(bào)文恢復(fù)成內(nèi)存操作。TLP 往下走的時(shí)候數(shù)據(jù)鏈路層會(huì)在前面加一個(gè)序列號(hào)、在末尾加 LCRC物理層再負(fù)責(zé)編碼和高速串行傳送。在這一堆處理中事務(wù)層才是真正有“業(yè)務(wù)邏輯”的地方鏈路層只是保證搬運(yùn)不丟不壞物理層解決傳輸介質(zhì)問(wèn)題。理解這一點(diǎn)很有用平時(shí)用協(xié)議分析儀或者 FPGA 里的 TLP tracer 抓到的數(shù)據(jù)本質(zhì)上都是把物理層符號(hào)解碼、把鏈路層序號(hào)和 CRC 剝掉以后得到的事務(wù)層內(nèi)容。只要你會(huì)看 TLP就等于拿到了真正的主線劇透。2.2 內(nèi)存讀請(qǐng)求頭部字段逐項(xiàng)拆解一個(gè) 32 位地址的 MMIO 讀請(qǐng)求通常使用 3DW 的 TLP 頭部。我按實(shí)際意義把關(guān)鍵字段列出來(lái)字段說(shuō)明一次 32 位讀的典型取值Fmt / Type報(bào)文格式和類型Memory ReadMRd3DW 頭Length本次要讀的總長(zhǎng)度單位 DW1即讀取 4 字節(jié)Requester ID請(qǐng)求發(fā)起方的 BDF如 00:01.0Tag請(qǐng)求編號(hào)用于配對(duì)由發(fā)起方分配的未用號(hào)Last DW BE / First DW BE首尾 DW 內(nèi)哪些字節(jié)有效全有效時(shí)是 0xF / 0xFAddress目標(biāo)地址BAR 基址加偏移TC / Attr / EP / TD服務(wù)質(zhì)量與完整性屬性常規(guī)讀通常為 0Length字段要特別注意對(duì)于讀請(qǐng)求TLP 內(nèi)部并不攜帶數(shù)據(jù)Length 代表的是“希望對(duì)方返回多少 DW”。這和寫請(qǐng)求完全不一樣寫請(qǐng)求是Length個(gè) DW 的數(shù)據(jù)實(shí)際跟著請(qǐng)求走。地址超過(guò) 32 位時(shí)頭部會(huì)變成 4DW地址字段占 64 位。日常很多設(shè)備的 BAR 被系統(tǒng)分配在低 32 位地址空間所以 3DW 頭部出現(xiàn)得最多但在 64 位系統(tǒng)里設(shè)備資源也可能被分配到高地址這時(shí)不能用老眼光去看報(bào)文。First/Last DW BE這組字段容易被人忽略。軟件用readl讀 4 字節(jié)時(shí)這兩個(gè)字段都是0xF表示 4 個(gè)字節(jié)全要。但有些驅(qū)動(dòng)會(huì)用readw或readb操作同一個(gè)地址那時(shí) Byte Enable 就只對(duì)應(yīng)相應(yīng)字節(jié)有效。設(shè)備側(cè)如果不按 Byte Enable 處理就很容易出現(xiàn)“讀回來(lái)總是整字但驅(qū)動(dòng)讀半字時(shí)數(shù)據(jù)錯(cuò)位”的問(wèn)題。2.3 完成報(bào)文 CPLD 的頭部和請(qǐng)求頭有何不同完成報(bào)文是讀請(qǐng)求的響應(yīng)頭部結(jié)構(gòu)有明顯差別。它不再有目標(biāo)地址取而代之的是完成方自己的信息字段說(shuō)明本例典型值Fmt / Type帶數(shù)據(jù)的完成CPLDCompleter ID完成方的 BDF目標(biāo)端點(diǎn)的 BDFRequester ID發(fā)起方 BDF必須和請(qǐng)求頭一致Tag原請(qǐng)求的編號(hào)必須原樣返回Status完成狀態(tài)0成功1UR2CAByte Count本次完成包含多少數(shù)據(jù)字節(jié)等于請(qǐng)求的 Length * 4Lower Address完成數(shù)據(jù)在地址空間的起始信息請(qǐng)求地址低 bit 對(duì)齊后的值Data讀出的有效載荷寄存器里的 4 字節(jié)值這里最關(guān)鍵的一點(diǎn)完成報(bào)文靠Requester ID Tag找到對(duì)應(yīng)的請(qǐng)求而不是靠地址。也就是說(shuō)請(qǐng)求頭攜帶了“到哪里去讀”的地址完成頭則只帶了“回給誰(shuí)”的身份證。后面講回程路由時(shí)這個(gè)機(jī)制會(huì)越來(lái)越重要。3. 出站之旅請(qǐng)求怎么從根端口跑到目標(biāo)設(shè)備3.1 CPU 的 MMIO 訪問(wèn)如何變成 PCIe 報(bào)文一次readl從 CPU 視角看是簡(jiǎn)單的訪存指令但硬件背后很復(fù)雜。系統(tǒng)在枚舉階段已經(jīng)為每個(gè)設(shè)備 BAR 分配了一段物理地址CPU 訪問(wèn)這段地址時(shí)Host Bridge / Root Complex 會(huì)識(shí)別出它屬于 PCIe 域隨后開(kāi)始構(gòu)造 TLP。這個(gè)過(guò)程通常由 RC 硬件自動(dòng)完成不需要驅(qū)動(dòng)介入。驅(qū)動(dòng)拿到ioremap以后的虛擬地址寫下去或者讀出來(lái)RC 會(huì)把 CPU 指令里的地址和長(zhǎng)度翻譯成 3DW 或 4DW 的 MRd。如果目標(biāo)地址小于 4GBRC 通常用 3DW 頭如果落在 64 位地址空間則使用 4DW 頭。這里最值得注意的一點(diǎn)CPU 指令位寬不完全決定 TLP 頭部格式?jīng)Q定因素是目標(biāo)地址范圍和平臺(tái)實(shí)現(xiàn)。所以在排查“讀寄存器數(shù)據(jù)不對(duì)”時(shí)第一步永遠(yuǎn)先確認(rèn) BAR 分配是否正確。PCIe 枚舉過(guò)程里 BIOS 或 OS 會(huì)把 BAR 寫成某一可用地址如果 BAR 里完全沒(méi)有使能內(nèi)存空間位或者地址窗口還沒(méi)建立RC 就沒(méi)法把 CPU 地址和任何設(shè)備對(duì)上自然也無(wú)法構(gòu)造有效的讀請(qǐng)求。3.2 發(fā)送前必須做流控事務(wù)層不是想發(fā)就發(fā)PCIe 的流控機(jī)制和很多總線不一樣。它不靠接收方發(fā)“忙”信號(hào)而是基于信用量Credit。每個(gè)虛擬通道里分了三類信用Posted、Non-Posted、Completion每一類又區(qū)分 Header 和 Data。內(nèi)存讀請(qǐng)求屬于 Non-Posted 類型需要消耗一個(gè) NP Header Credit。由于讀請(qǐng)求本身不攜帶數(shù)據(jù)體所以不需要消耗 NP Data Credit。發(fā)送方的事務(wù)層在把 TLP 交給數(shù)據(jù)鏈路層之前會(huì)檢查對(duì)應(yīng)的 Credit 是否足夠不夠就先等待。這個(gè)機(jī)制特別像酒店辦理入住時(shí)的預(yù)授權(quán)你得先把額度占住后面退房再結(jié)算。接收方收到 TLP 并消化之后會(huì)向發(fā)送方歸還 Credit雙方才能繼續(xù)“轉(zhuǎn)賬”。工程上有一個(gè)很隱蔽的坑當(dāng)接收方?jīng)]有及時(shí)歸還 Credit或者 Credit 初始化時(shí)配置成 0發(fā)送方就會(huì)一直等表現(xiàn)是“請(qǐng)求發(fā)出去了但鏈路上什么都看不到”。這種問(wèn)題在普通軟件調(diào)不見(jiàn)非得上 TLP 抓包才能定位。3.3 Switch 怎么知道該把讀請(qǐng)求轉(zhuǎn)到哪個(gè)下游端口當(dāng)拓?fù)渲杏?PCIe Switch 時(shí)RC 發(fā)出的內(nèi)存讀請(qǐng)求先到達(dá) Switch 的上游端口。Switch 需要根據(jù)地址信息決定往哪個(gè)下游端口轉(zhuǎn)。這個(gè)決定不靠廣播而是靠枚舉階段建立的內(nèi)存窗口。每個(gè)下游端口在配置空間里會(huì)記錄一組 Memory Base 和 Memory Limit本質(zhì)就是一張地址路由表。Switch 拿到 MRd 之后取出請(qǐng)求頭里的地址和各個(gè)下游端口的窗口比對(duì)命中就往對(duì)應(yīng)端口轉(zhuǎn)發(fā)沒(méi)有命中就返回一個(gè) Unsupported Request 完成或者直接丟棄。這和以太網(wǎng)的泛洪轉(zhuǎn)發(fā)完全不同PCIe 的內(nèi)存讀不會(huì)“全員廣播”每跳都必須有唯一判定。這也是 PCIe 拓?fù)湓綇?fù)雜對(duì)地址窗口配置要求越高的原因。3.4 穿過(guò)鏈路層和物理層時(shí)發(fā)生了什么事務(wù)層把 TLP 構(gòu)造好之后數(shù)據(jù)鏈路層會(huì)給它加 2 字節(jié)的序列號(hào)并在尾部算一份 LCRC。接收端檢查這些信息如果發(fā)現(xiàn) CRC 不對(duì)會(huì)通過(guò)鏈路層重傳機(jī)制要求發(fā)送方重發(fā)。物理層則負(fù)責(zé)把數(shù)據(jù)變成串行信號(hào)送到線上期間還有均衡、擾碼、編碼等操作。對(duì)事務(wù)層討論來(lái)說(shuō)這一層只是“可靠的搬運(yùn)工”。但是排障時(shí)要知道鏈路層如果頻繁丟包重傳最終也會(huì)表現(xiàn)為事務(wù)層“請(qǐng)求發(fā)出去了但一直等不到完成”容易被誤判成設(shè)備故障。這時(shí)候需要用lspci -vvv看鏈路帶寬和鏈路狀態(tài)確認(rèn)物理鏈路是否穩(wěn)定。4. 端點(diǎn)收到讀請(qǐng)求以后在干什么4.1 接收側(cè)的順序先拆包再判斷是不是自己的菜端點(diǎn)從線上收到數(shù)據(jù)后物理層先還原出符號(hào)數(shù)據(jù)鏈路層檢查序列號(hào)和 LCRC確認(rèn)無(wú)誤后才把 TLP 提交給事務(wù)層。事務(wù)層接收模塊要做的第一件事是根據(jù)Fmt/Type判斷報(bào)文的類別和方向如果是內(nèi)存讀請(qǐng)求再取出地址和 BAR 空間做匹配。這里有個(gè)容易被驅(qū)動(dòng)程序忽略的點(diǎn)接收側(cè)必須負(fù)責(zé)歸還 Credit。設(shè)備和 RC 一樣會(huì)在內(nèi)部實(shí)現(xiàn)一個(gè)信用接收端口收到 TLP 后按規(guī)則釋放緩沖。如果設(shè)備固件或邏輯設(shè)計(jì)有缺陷收了一個(gè)報(bào)文后 Credit 沒(méi)歸還發(fā)送方就會(huì)慢慢卡住直到所有 Credit 耗盡。我調(diào)試 FPGA 板卡時(shí)遇到過(guò)幾次“開(kāi)始還能正常讀跑了幾百次以后就徹底沒(méi)響應(yīng)”的情況最后都是 Credit 管理狀態(tài)機(jī)寫錯(cuò)了。4.2 BAR 命中以后數(shù)據(jù)源從哪里來(lái)對(duì)端點(diǎn)的內(nèi)部實(shí)現(xiàn)來(lái)說(shuō)BAR 就像一扇門。門打開(kāi)了以后內(nèi)部地址偏移決定訪問(wèn)哪個(gè)寄存器或哪塊 RAM。FPGA 實(shí)現(xiàn) PCIe 時(shí)最常見(jiàn)的做法是把 BAR 空間映射到一組 CSR 寄存器、Block RAM、或者 DMA 描述符區(qū)域。內(nèi)存讀請(qǐng)求攜帶的地址會(huì)被內(nèi)部譯碼成寄存器地址或 RAM 地址再經(jīng)過(guò)組合邏輯把數(shù)據(jù)取出來(lái)。這里有一個(gè)特別值得提醒的細(xì)節(jié)事務(wù)層協(xié)議保證不了數(shù)據(jù)是“新鮮”的保證的只是數(shù)據(jù)能取回。如果設(shè)備內(nèi)部讀取邏輯沒(méi)有做同步比如寄存器還沒(méi)被上游模塊刷新讀請(qǐng)求來(lái)了就直接返回舊數(shù)據(jù)軟件是感知不到的只會(huì)發(fā)現(xiàn)“為什么我寫進(jìn)去的值讀出來(lái)不對(duì)”。這種問(wèn)題通常要靠補(bǔ)同步邏輯或者加入讀時(shí)鐘域處理來(lái)解決。4.3 構(gòu)造完成報(bào)文時(shí)要遵守的拆分規(guī)則端點(diǎn)讀取到數(shù)據(jù)后并不是想怎么回就怎么回。PCIe 協(xié)議對(duì)讀完成有兩個(gè)硬性約束第一個(gè)約束是 Max Payload SizeMPS。如果一次讀請(qǐng)求的 Length 很大而完成者的 MPS 只有 128 字節(jié)它就不能把 256 字節(jié)的數(shù)據(jù)一次性塞進(jìn)一個(gè) CPLD而是要拆成多個(gè)完成報(bào)文。第二個(gè)約束是 Read Completion BoundaryRCB。RCB 定義了完成報(bào)文拆分時(shí)必須對(duì)齊的地址邊界。RC 的完成者可以通過(guò)配置空間把 RCB 選為 64B 或 128B非 RC 的完成者固定是 64B。這也是為什么同一個(gè)設(shè)備在有些平臺(tái)上表現(xiàn)特別好換一個(gè) Root Complex 以后大塊讀性能就掉下來(lái)——很可能是 RCB 策略變了。每個(gè)拆分出來(lái)的 CPLD 都帶有自己的Lower Address和Byte Count請(qǐng)求方拿到這些完成報(bào)文后會(huì)按地址和 Tag 重組數(shù)據(jù)。編寫驅(qū)動(dòng)時(shí)不要假設(shè)第一個(gè)返回的 CPLD 一定包含最前面一段數(shù)據(jù)協(xié)議允許完成者按自己的拆包策略返回所以軟件端如果要處理多完成的情況必須按頭部信息重新拼裝。5. 回程邏輯完成報(bào)文憑什么能找到“原路返回”的路5.1 完成靠 ID 路由不是靠地址路由這是事務(wù)層協(xié)議里最容易被誤解的部分。內(nèi)存讀請(qǐng)求往下走用地址路由大家都好理解但完成報(bào)文頭部沒(méi)有目標(biāo)地址它拿什么路由答案是靠Completer ID和Requester ID。完成報(bào)文從端點(diǎn)發(fā)出時(shí)Completer ID就是端點(diǎn)自己的 BDFRequester ID是當(dāng)初請(qǐng)求方的 BFD。Switch 收到完成報(bào)文后根據(jù) ID 判斷應(yīng)該往上游端口還是下游端口轉(zhuǎn)最終一路轉(zhuǎn)到根端口??梢赃@樣理解地址路由是“按收貨地址送貨”ID 路由則是“按客戶編號(hào)找寄件人”??爝f單上寫了客戶編號(hào)分揀站看一眼編號(hào)就知道這個(gè)回執(zhí)該回到哪去和寄件時(shí)寫的收貨地址沒(méi)有直接關(guān)系。最關(guān)鍵的一點(diǎn)是完成報(bào)文只會(huì)被 Requester ID 對(duì)應(yīng)的那個(gè)請(qǐng)求方接收并處理其他設(shè)備即使看到也直接忽略不能劫持更不能當(dāng)作廣播消息去處理。5.2 Tag 空間不足會(huì)讓讀請(qǐng)求“堵車”PCIe 允許一個(gè)請(qǐng)求方同時(shí)掛多個(gè)未完成的讀請(qǐng)求不要求發(fā)一個(gè)等一個(gè)。每個(gè)未完成請(qǐng)求都要占用一個(gè) Tag。Tag 就像餐飲店排隊(duì)叫號(hào)號(hào)發(fā)完了后面的人只能等。標(biāo)準(zhǔn)里 Tag 字段是 8 位因此理論上最多可以有 256 個(gè)未完成請(qǐng)求。但實(shí)際實(shí)現(xiàn)未必用滿很多老設(shè)備默認(rèn)只支持一小部分 Tag需要通過(guò)配置空間的 Extended Tag 能力開(kāi)啟更多 Tag 位。鏈路兩側(cè)必須都支持并正確配置否則請(qǐng)求方很快就會(huì)把 Tag 耗盡表現(xiàn)為“新請(qǐng)求發(fā)不出去讀吞吐上不去”。軟件層面還有一個(gè)常見(jiàn)誤區(qū)CPU 順序代碼執(zhí)行readl時(shí)RC 內(nèi)部很可能會(huì)串行處理這些 MMIO 讀不會(huì)自動(dòng)把多個(gè) Tag 用滿。不要指望一個(gè) for 循環(huán)里的幾百次readl就能自動(dòng)產(chǎn)生幾百個(gè)并行 outstanding 請(qǐng)求。優(yōu)化大塊讀性能要依賴 DMA 或者 CPU 端的 non-blocking read 機(jī)制不能拿順序讀來(lái)硬剛。5.3 狀態(tài)字段里的 UR、CA 和讀超時(shí)完成報(bào)文的狀態(tài)字段有三種常見(jiàn)編碼需要牢記0表示成功完成1表示 Unsupported RequestUR2表示 Completer AbortCA。當(dāng)設(shè)備收到了一個(gè)無(wú)法識(shí)別的請(qǐng)求比如地址沒(méi)命中任何 BAR它可以返回 UR當(dāng)設(shè)備內(nèi)部功能無(wú)法完成操作比如模塊被復(fù)位或者正在初始化它可以返回 CA。這類錯(cuò)誤完成最后會(huì)通過(guò) RC 轉(zhuǎn)化為軟件可見(jiàn)的總線錯(cuò)誤或者記錄在 AER 寄存器里。驅(qū)動(dòng)如果只看到“讀寄存器超時(shí)”或“總線錯(cuò)誤”卻不深入看完成狀態(tài)很容易把問(wèn)題歸到硬件不穩(wěn)定上去實(shí)際上協(xié)議已經(jīng)給出了非常明確的錯(cuò)誤類型。如果請(qǐng)求發(fā)出后完成報(bào)文一直不回來(lái)就會(huì)進(jìn)入 Completion Timeout。RC 的 Device Control 2 配置空間里可以設(shè)置超時(shí)值不同平臺(tái)默認(rèn)值可能很不相同。更隱蔽的情況是設(shè)備鏈路過(guò)早進(jìn)入低功耗狀態(tài)比如 L1 或熱插拔之后設(shè)備還沒(méi)有完成重新初始化讀請(qǐng)求發(fā)出后卡很久才超時(shí)。這時(shí)需要先看鏈路狀態(tài)而不是盯著驅(qū)動(dòng)代碼。6. 內(nèi)存讀排障實(shí)錄幾個(gè)最常見(jiàn)的深坑6.1 讀寄存器總是得到全 (0xFF) 或全 0看到全 (0xFF) 時(shí)先冷靜不要直接判斷“設(shè)備壞了”。按這個(gè)順序排查用setpci查看 Command 寄存器確認(rèn) Memory Space Enable 是否置 1。用lspci -vvv查看 BAR 值確定地址分配合法且沒(méi)有被其他資源覆蓋。用setpci手動(dòng)讀 BAR確認(rèn)硬件返回的不是0xFFFFFFFF。排除設(shè)備內(nèi)部存在偏移未實(shí)現(xiàn)導(dǎo)致端點(diǎn)返回 FF 的預(yù)期行為。全0的現(xiàn)象通常比全FF更麻煩。全FF大概率是地址沒(méi)命中或信號(hào)懸空全0往往是設(shè)備軟核邏輯直接返回了固定值不是協(xié)議層面的問(wèn)題。這兩種都要結(jié)合設(shè)備手冊(cè)確認(rèn)每個(gè)偏移位的默認(rèn)值。6.2 readl 卡死或者直接總線錯(cuò)誤先查完成路徑readl卡住、進(jìn)而觸發(fā)系統(tǒng) bus error本質(zhì)是 CPU 等了太久仍然沒(méi)有等到 CPLD。按照協(xié)議定位時(shí)注意區(qū)分兩種場(chǎng)景MMIO 讀場(chǎng)景下EP 不需要開(kāi)啟 Bus Master Enable 也能回應(yīng) RC 的讀請(qǐng)求因?yàn)樵撜?qǐng)求由 RC 發(fā)起。此時(shí)如果無(wú)響應(yīng)優(yōu)先檢查端點(diǎn)是否真的收到了 TLP、內(nèi)部譯碼是否命中、完成邏輯是否正常。DMA 讀場(chǎng)景則反過(guò)來(lái)EP 主動(dòng)讀系統(tǒng)內(nèi)存前提是 EP 的 Bus Master Enable 必須打開(kāi)還要有正確的 IOMMU/SMMU 映射。很多 DMA 讀異常根因都是 DMA 映射沒(méi)建立或 BME 沒(méi)置位。如果 TLP 已經(jīng)發(fā)出但一直收不到完成建議直接用帶 TLP tracer 的調(diào)試工具抓一次。確認(rèn) MRd 有沒(méi)有出 RCCPLD 有沒(méi)有從 EP 回來(lái)。如果只看到 MRd 沒(méi)有 CPLD問(wèn)題基本鎖定在端點(diǎn)側(cè)如果 CPLD 已發(fā)出但 RC 沒(méi)匹配上則要考慮 Tag 是否被占用、ID 路由是否正確、完成隊(duì)列是否滿了。6.3 大塊讀性能上不去多半是 MPS 和 RCB 的鍋有時(shí)測(cè)量 PCIe 讀帶寬發(fā)現(xiàn)遠(yuǎn)低于鏈路速率但不是鏈路沒(méi)訓(xùn)練好而是事務(wù)層參數(shù)不合適。最常見(jiàn)兩個(gè)因素第一Max Payload Size 太小。如果 MPS 只有 128B一次 256B 的讀請(qǐng)求會(huì)被拆成多個(gè)完成報(bào)文返回頭部開(kāi)銷占比和事務(wù)數(shù)都會(huì)增加吞吐自然上不去。第二RCB 設(shè)置不合理。RCB 影響完成報(bào)文能否在更寬的邊界上對(duì)齊非 RC 設(shè)備固定 64BRC 側(cè)可以通過(guò)配置選擇 64B 或 128B。用lspci -vvv可以快速看到 MaxPayload 和 RCB 配置。注意鏈路兩側(cè)的 MPS 必須協(xié)商出一個(gè)共同值如果一端支持 256B另一端只到 128B最后按最小側(cè)對(duì)齊。這個(gè)時(shí)候不是換根線或者調(diào)驅(qū)動(dòng)能解決的要看設(shè)備固件和 RC 的配置協(xié)商。癥狀重點(diǎn)檢查項(xiàng)常見(jiàn)根因讀返回全 FFBAR、Command、偏移映射內(nèi)存空間未使能或地址沒(méi)命中讀卡死/超時(shí)TLP 抓包、完成隊(duì)列端點(diǎn)未回完成、Credit 未歸還DMA 讀失敗BME、IOMMU 映射總線主控未打開(kāi)或地址翻譯錯(cuò)誤讀性能低MPS、RCBPayload 過(guò)小或拆分邊界限制最后分享一個(gè)我自己的習(xí)慣真要把 PCIe 事務(wù)層搞透與其背一大堆寄存器名不如實(shí)打?qū)嵶ヒ唤M MMIO 讀的 TLP。在 Linux 里對(duì)某個(gè) BAR 地址執(zhí)行一次devmem同時(shí)在總線上抓包把 MRd 請(qǐng)求頭和 CPLD 完成頭按本文表格逐個(gè)字段展開(kāi)對(duì)比一個(gè)往返看下來(lái)比看十篇文檔都管用。曾經(jīng)有一回我在 FPGA 板卡上故意把一段 BAR 映射內(nèi)部的寄存器做成慢速讀取但沒(méi)有在 RTL 里做讀同步結(jié)果 CPU 讀到的總是上一次的舊數(shù)據(jù)最后就是通過(guò)對(duì)比 TLP 的完成順序發(fā)現(xiàn)的問(wèn)題。如果你也在做 PCIe EP 的設(shè)計(jì)這類事務(wù)層的細(xì)節(jié)早晚會(huì)找上門。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
偷拍偷窥与盗摄视频专区| 国产精品农村妇女| 人妻丝袜日本| 1024手机看片欧美日韩| 美女被艹尤物视频| 欧美性爱日韩高清| 亚洲国产中文字幕| 欧美性战999| 国产午夜无码片在线观看影视| 亚洲国产中文字幕| 中文字幕高清20页视频 | 日本国产成人亚洲精品无码| 97天堂| 国产午夜福利视频在线| 99操碰| 91在线精品一区二区三区| 极品久久久久久久久久久久久久| 视频二区美腿丝袜制服人妻欧美| 亚洲国产欧美另类自拍| 国产剧情在线| 97精品视频在线播放| 国产久久久9999| 亚洲αv一区二区三区| 99精品人妻| 天天操人人操骚逼网站| 99热精品青草在线| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 在线观看亚洲专区| 91AV入口| 日本黄色精品专区网站| 91女色| 香港日本韩国人妇99www.wccm20| 中文字幕55555| 人人操人人狠狠操| 中国国国产一级特黄毛片| 91 丝袜在线播放| 久久精品人妻一区| 亚洲高清视频在线免费观看| 夫妻日逼| 亚洲欧美伦综合| 青青草国产一区二区三区| 99久久久久| 午夜乱轮操逼视频免费看| 久久这里只有精品9| 强奸熟女一区二区三区 | 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产精品免费久久久久久久久久| 欧美精品一二三| 免费农村成人少妇人妻Aa一区二区视频 | 五月天综合| 久久av成人无码免费| 草草电影院| www国产无码| 9Ⅰ超碰| 校园春色亚洲色图| 99热一区二区三区四区| 91成人无码| 日本大香蕉综合网红本杳社区| 国产一区二区三区,在线观看观看| 色九月综合| 麻豆天美国美国产| 亚洲天堂情色| 亚洲综合69| 麻豆AV一区二区| 日本丝袜美腿人妻九九| 亚洲天天影视色综合| 激情四射五月天| 在线黄色污污网站| 男人的天堂三级| 久久99久久99精品天美传媒棢·纸:. | 日本大香蕉| 午夜天堂精品久久| 欧美性综合| 夜夜嗨免费视频| 日本幼女18+| 一本久道久久综合狠狠爱一密臀精| 凌辱美少妇久久aV| 伊人国产成人av网站| 国产91av在线播放| 久久9视频| 日韩av女优在线免费一区| 校园春色制服丝袜中文字亚洲| 亚洲AV乱码专区国产噜噜亚洲| 亚洲精品欧洲精品| #NAME?| 久热精品在线国产| 色999;丁香五月| 色婷婷av在线观看| 日韩ab网| 蜜臀久久99精品久久久久久无删减 | 欧美男人天堂| 26uuu国产日韩综合在线观看| 色色福利| 热天堂一区二区| 欧美日韩大陆黑人少妇99| 欧美色图小说综合| 免费av高清无码| 天天天天天天天天天天干美女| 激情AV| 亚洲欧美九九九| 日日日日做夜夜夜夜做无码97| 中文字幕一区二区无码成人| 国产精品嫩草久久久久| 丝袜喷水在线| 97爱综合| 嗯嗯啊中文字幕| 91美女視頻| 啊啊啊好大好深| {男男暴菊gay无套网站| 日本久久99| 伊人伊人LD| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 亚洲深夜福利| 一区二区三区精品久久| 国产农村妇女精品1区二区| 超碰久久.com| 黄片www.| 99精品丰满人妻无码| 九月伊人中文字幕| 婷婷成人五月天| 无码人妻丰满熟妇区毛片| 日韩性爱小视频| 亚洲丁香花色| 香蕉黄色一级视频| 青青草吊丝| 国产日韩久久| 日本人妻一区二区| 美女久久久| 人妻AV在线| 午夜操操操| 国产无码一二三区| 天天噜| 日本精品一区二区中文字幕| 97在线播放| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产成人久久精品蜜臀| 欧美白嫩女HD| 久久草草亚洲蜜桃臀| 中文字幕一区av| 大香蕉淫人| 精品成人av一区二区三区在线| 97超碰人操| 天天躁日日躁xxxxx| 吉川爱美98堂在线| 亚洲图片激情综合另类| 熟妇人妻一区二区三在线| 亚洲另类小说卡通动漫| 熟女91网| 中文高清一区二区的| a'v在线资源| 九九视品黄色| 91香蕉视频在线观看免费| 蜜臀人妻少妇久久在线观看| 国语av最新自产拍在线观看| 91成人亚洲色图| 日本在线视频导航| 日韩欧美日韩| 91天射| WWW黄片COM| 久久熟女精品不卡一区| 92福利社视频| 亚洲天堂AV在线播放| 伊人少妇久久久| 欧美的性爱网站免费| 60秒试看最爽10分钟网站| 国产精品盗摄 偷窥盗摄| 伊人久久亚洲中文字幕不卡| 欧美一区二区日韩传媒搭讪精品| 亚洲色吧网| 欧美综合777| 欧美精品999| 国产91福利小视频在线观看| 亚洲色图欧美色图在线播放| 午夜啊啊啊| 色噜噜精品一区二区三| 日日夜夜免费| 欧美乱妇狂野欧美在线视频| 久久xx| 精品国产av一区二区三区四区入口| 久久綜合很很很| 国产免费一区二区在线A片视频| 少妇九九九九| 91日产欧美| 一区二区偷拍拍视频| 中文字幕日韩人妻视频| 日韩啊V| 国产精品电| 亚洲不卡AV在线| 日韩黄片视频试看| 国产免费黄色一级大片| julia国产在线| 欧洲天天在线| 操操碰| 亚洲精品国产熟女久久久久久| 超碰97综合在线| 久久夜精品一区二区三区| 久久人妻办公室视频| 日韩精品一区二区日韩| 97碰| 极品销魂美女一区二区 | 日本一区二区三区精品| 九九热九九| 国产绿奴视频在线观看| 日韩熟女乱伦中出| 老司机深夜18禁污污网站| 黑人在线91| 亚洲综合有码| 国产精品一区二区密臀| 久草看看看| 精品9999| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产91av在线播放| 国产精品成人AV片免费看网站| 国产深喉| 超碰导航97| 国产suv精品一区二六| 宗合情欲网| 精品久久在线区一区| 91爱综合| 91女网站| 久草资源在线视频官方总站日韩丝袜美腿| 精品久久久久久亚洲| 歐美性天天| 精品妇女一区二区三区| 啊啊啊操一区| 91偷拍欧美亚洲| 97硬碰| 91久久久视| 久久骚少妇| 精品小视频在线| 中文字幕55555| 久久熟妇五十路一区| 丁香五月综合| 玖玖爱综合| 少妇被玩视频二三区| 北京专精特新企业招聘信息| 久久人妻四季| 很很很很操| 久久久免费懂色| 97天天插| 后入式免费视频| 中文字幕欧美日韩三级| 中文字幕日韩人妻视频一区二区三区 | 偷拍偷窥与盗摄视频专区| 中日韩一区二区三区欧美| 大二网站亚洲| 欧美视频一区二区在线| 综合网色| 男人的天堂在线| 久久精品国产97欧美精品亚洲| 久热精品在线| 尤物网站91| 在线观看无码三级少妇| 丰满高潮18xxxx| 91九九| 国产性感在线观看| 色哟哟精品1精品2| 尤物av网站免费在线播放| 97天天日| 在线中文字幕极品av| 成功精品影院| 色婷婷久久综合超碰| 日本最新1区2区3区| 蜜臀99精品国产高清在线观看| 亚洲中文字幕在现观看| 色乱二区| 区一在线观看| 久久久久女教师免费一区| 亚洲激情片| 国产综合网站在线播放 | 99热精品青草在线| 日韩猛交| 亚洲一本色道中文无码aV天美| 玖玖视频在线资源一区二区三区| 亚州熟妇精品| 97精品视频| 久久精视频美日韩在线视频| 国模不卡一本二本三电影| 亚洲人妻久久久| 综合亚洲欧美精品日韩?v| 亚洲综合色婷婷| 九热大香蕉| 亚洲深夜福利| 日本人妻中文字幕精品| 爱欲AV| 天天噜| 激情五月天色色网| 韩日自拍| 日本色色视频网站| 午夜天天碰综合视频| 日本黄色天堂| 中文字幕亚洲热播人妻| 精品区9| 欧亚韩国999| 一区二区三区黄片免费观看| 91夜夜蜜桃臀1区2区3区| 亚洲色欲一区二区三区| 色综合久| 91黄站| 日韩欧美中文日韩欧美色| 色五月天AV| 丰满人妻一区二区三区四区| 狠狠色丁香| 中出91视频| 亚洲国产麻豆一区二区三区| 天天舔天天日天天射| 日韩有码 一区二区三区| 人人人人人人少妇| 1769成人国产精品视频| 成人精品视频一区二区| 操一操摸一摸| 婷婷五月天久久精品视频一区二区三区| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 91 亚洲情侣偷拍 久久| 丁香六月激情| 97中文字幕一区| 五月天玖玖资源站| 天堂综合网| 天天日天天色| 少妇被c 黄 免费观看| 热久久91婷婷| 五月婷婷六月丁香网址| 九九九九免费视频| 五月婷婷久久综合| 欧美美女视频| 青青草色情网站视频| 欧美爱三级日韩久久| 老司机久久| 郑州宾馆老熟女露脸啪啪| 国产风韵犹存熟妇三区| 九九aV| 国产传媒一区二区三区| 国产精品交换一区二区| 日韩特一级久久| 久精品无码av一区二免费国产在线观看 | 日本精品一区二区不卡| 自拍盗摄一区| 夜夜天天噜狠狠爱2021| 激情文学小说一区二区| 人妻熟女字幕一区二区| 亚洲天堂在线怕怕视频| 老鸭窝日丰县女人| 国产精品交换一区二区| 嫩呦国产一区二区三区AV| 久久久久婷婷精品av电影| 五月天久久久| 久久成人国产精品| 亚洲精品电影| 狠综合网| 手机不卡视频不卡在线一二三区| 国产精品无码在线| 欧美在线播放| 欧美日韩美女精品久草一区二区三区 | 久热69九色熟妇97| 欧美性巨大╳╳╳╳╳高跟鞋| 亚洲同性aV综合| 1区2区3区中文字幕日韩| 青娱乐国产精品| 日比av无码| 青青草视频导航官网| 熟女被操视频网址| 亚洲国产欧美另类自拍| 九九九九九九视频免费| 粉嫩av一区二区三区四季| 玖玖97综合| 日本精品中文字幕视频| 久草这里只有精品| 一卡二卡三卡| 日韩av电影网站| 亚洲棕合电彰| 久久久艹艹艹| 九九色色| A级毛片在线看免费| 亚洲黄片免费在线播放| 久久久91| 激情视频图片| 亚洲区限制级 99| 欧美少妇第一页| 狠狠操狠狠| 久久三| 变态乱伦伪娘灌肠一区二区| 尤物网站91| 欧美综合第一页| 老鸭窝日丰县女人| 久久草视频污视频| 国产免费久久精品99re韩国| 91天堂视频| 泰国AV在线观看| 五月丁香色综合| 美女国产一区二区久久| 四虎影视永久在线免费| 777AV电影| 天天看夜夜看日日干| 偷拍盗拍亚洲色图图片| 中文字幕三四五区| 99999精品| 亚洲图片91| 91美| 国产91影院| 精品欧美老熟女一二区| 91一区二区三区蜜桃| 久久免费少妇| 国产精品96| 97视频在线| 一级黄色性爱裸体视频| 国产又黄又粗的视频| 国产精品嫩草影院午夜两性| 91老女人| 伊人天天久久动态图| 欧美91精品国产自产| 人人么人人操| 人人操人人操草草| 九九激情网| 最新欧美色网| 成人日韩中文字幕| 国产成人AV麻豆| 免费久久9999| 亚洲精品国产拍免费91在线| 欧美色青| 日韩精品中文字幕一| 亚洲中文字母在线播放| 五月婷婷六月丁香| 中文97国产| 天天综合网~91综合网| 亚洲激情综合另类| 岛国福利在线精品播放| 亚洲AV成人无码久久精品播放| 色五月首页| 天天操天天射青青草| 欧美激情一区二区| 日本熟妇自慰性高潮一区二区三区| 一区二区三区精品视频| 97天天摸天天碰| 亚洲码和欧洲精品激情系列| 日本一久是| 最新9久久久9免费视频| 免费在线看黄片av| 成人八戒网站| 91狠狠综合久久久久久| 欧美日日人人天天| 欧美精品成人一区二区在线观看| 国产福利在线视频网站| 91蜜臀在线久久久久| 久久熟女久| 超碰97日韩| 色天使亚洲综合在线观看| www.yw尤物| 中文字幕人妻色偷偷久久皮 | 久久曰曰| 少妇内射www在线观看视频| 国产精品4p在线观看| 超碰九区| 浪人综合网| 校园春色之综合网| 欧美日韩系列| 涩涩涩综合| 99成人| 激情小说亚洲图片| 国语精品对白| 丝袜熟女一区二区三区| 99只有精品| a片在线播放| 天天干天天爽| 噜噜噜噜天天狠狠| 国产性爱在线视频一区二区| 九九玖玖精品| 久久久一区二区三区四区五区| 日本一区二区成人在线| 久久久久久九九九九-美女久久久久久久-成人AV | 欧美综合色综合| 欧美大波激情xxxx| 欧美黑人XXXⅩ高潮交| 蜜桃臀久久| 综合久久久久久久综合网| 日韩素人无码一区二区三区三州| 粉嫩AV一区二区夜夜| 顶级丝袜熟女一区二区三区| 久久99草| 91快色色色色色| 国产肏屁眼视频| 国内毛片热久久思思热| 综精品久久久aaaa| 秋霞色色影院| 成人AV素股で擦久久| 亚洲图片欧美色| 精品精品精品| 色综合av综合久久| 熟妇亚洲一区二区三区| 亚洲熟伦熟妇AV无码春色| 日本三级久| 国产精品操| 婷婷三区| 午夜亚洲国产理论秋霞| 日本蜜桃| 色噜噜人妻丝袜a∨先锋影 | 亚洲欧美setu| 国产一区二区精品久久99| 超碰97玖玖爱| 国产高清免费不卡av| 粉嫩AV一区夜夜嗨| 强免费黄色网址| 91n处女在线观看| 九九AV| aa片毛片| 九九九九九九成人| 亚洲春色一区二区三区| 97亚洲资源| 无码WWW免费视频网站| 国产精品乱码久久久久久久| 97色碰| 国产美女高潮| 偷拍综合亚洲| 一品道视频一区二区三区| 清纯唯美亚洲| 国精综合一二三区影视| 久久99综合| 中文字幕乱在线伦视频中文字幕乱码在线 | 天堂中文资源在线bt| 亚洲风情综合网| 调教熟妇 久久久久久| 国产偷拍网站| 人妻少妇精品无码专区二区密桃| 久久精精区一区二区一蜜桃一区二区| 午夜性生活av免费在线看| 天操老女人| 久久99网站| 国内偷拍精品一区二区| 欧美爱国产综合、| 欧美人妻二区三区| 欧美刺激色黄片免费看| 岛国免费视频在线| 自拍啪啪视频| 日韩国产十八禁| 亚洲欧美日韩综合在线尤物 | 久久人妻一区二区三区高清| 九九热男人天堂| 欧美熟妇成人一区二区| 亚州,欧美在线| 青青草啪啪网| 欧美成人亚洲精品| 久久久久骚| 色狠狠色| 亚洲操人| 亚欧性爱在线无码| 亚洲图片欧洲图片aⅴ| 三上悠亚在线毛片91| 九色 蝌蚪 熟女自 | 在线视频 亚洲精品| 亚洲乱熟女一区二区| 97色欧州| 清纯唯美激情四射| 人妻AV 中文字幕的| 另类一区| 国产亚洲日本精品在线| 一二三四视频中文字幕在线看| 亚洲熟女精品| 美女的肌被草喷水视频| 丁香激情五月天| 国产乱码精品一区二区三区四川| 亚洲另类欧美精品| 欧美一级黄色免费专区| 加勒比伊人| 91亚洲网站| 男人的天堂VA| 久久国产精品m码| 蜜桃午夜视频一区二区| 夜夜免费视频| 无码人妻精品一区二区三区九九 | 欧美性特| 亚洲成?V人片在线观看福利| 狼狼色丁香久久婷婷综合五月| 91色交| 日韩欧美性爱电影在线观看| 91综合色| 久久九色| 亚洲男人久久综合天堂| 综合久久久久久久久91| 内射夫妻三片| 爽极品影院| 欧美经典一区二区三区| 日韩一级成人毛片免费观看| 热99这里有精品综合久久| 日本一二区不卡| 亚洲色宗合| 视频一区二区免费在线| 黄色电影在线播放综合网站| 精品无码欧美三级| 一区不卡在线观看av| 久久久久亚洲AV无码专区少妇| 天天干干天天干干| 欧美日韩国产色图在线| 日韩中文欧美| 久久精彩视频9| 男人的天堂欧美| 顶级少妇BT天堂| 啊啊啊不要啊啊受不了了视频在线| 中文字幕97色| 亚洲,欧美,综合网| 神马九九| 日本精品无码三级网站| 我爱大香蕉| 九九久久一区二区三区| 综合97亚洲| 美女天天干| 资源新线在线天堂| 乱伦色图网址是多少| 久久性爱网站| 亚殴在线| 狠操91,com| 欧美色图电影| 人人看人人爰人人操| 人人看人人摸人人色| 视频二区美腿丝袜制服人妻欧美| 天天看人人操屄犊摸阴| 后入式福利| 日本黄大片在线观看视频| 日韩色欲久久一二三四区| 99无码视频| 精品乱码久久久久| 蜜臀久久久99久久久久 | 夜夜欢天天干| 亚洲一区二区三区播放在线| 精品久久久久久亚洲| 福利风月五月天影院| 精吧天堂| 91av熟女人妻| 亚洲中文字幕av| 麻豆 亚洲 97| 午夜舔阴达高潮视频免费看| 国产亚洲日韩在线三区黑人| 亚洲天堂男人在线| 久久9999 | 91国精产品| 97色碰| 在线观看日韩av不卡| 亚洲综合113页| 国产久久久久久| 麻豆啪啪啪视频| 亚洲中文字幕日产无码久久| 三上悠亚在线毛片91| 亚洲熟女中文字幕在线| 日日做夜狠狠爱欧美黑人| 清纯唯美综合| 人成午夜免费大片| 97免费视频在线观看视频| 国产无码久久高清| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 天天综合精品| 97久久精品不卡| 天天操天天干一区二区| 丝袜喷水在线| 久久大黄片| 成人网站 免费观看| 日韩欧美麻豆大片| 大香蕉欧美| 色五月亚洲| 97操综合| 欧美aa一级片| 亚洲色悠悠久久88| 国产av强奸美女| 东北老女人的激情视频| 亚洲另类欧美精品| 美女裸体麻豆天美蜜桃91| 日韩欧美性爱电影在线观看| 色av中文字| 大学生美女口爆| 亚洲国产精品久久久久婷婷青年| 日日爱99| 91亚洲不卡一区| 国产精品午夜AV完会免费| 久热伊人99re| 97无码视频在线播放| 欧美97在线观看| 人人插人人摸人人| 久草免费在线视频| 久久av色| 日本在线不卡v二区| 无毛精品| 99视频只有精品| 蜜臀久久99精品久久久久久成人小说 | 岛国视频一二三区| 老鸭窝日丰县女人| 综合色99| 一区二区三| 97中文字幕色| AV免费在线播放一区| 欧美洲精品一级| 婷婷99狠狠| 最新日本中文字幕| 99精品久久久久久| 国产成人网| 国产精品分类在线观看| 综合一区二区影视| 激情综合网激情五月天| 国产午夜精品理论片一二三区区| www.AV有限公司一区| 国产一区二区欧美日本| 97超碰欧美精品| 久久亚洲不卡一区二区三区| 乱伦av.com| 亚洲黄色AV电影| 超碰在线人妻不卡| 女人被添高潮免费视频| 男女性无套 免费九一| 丝袜喷水在线| 日欧操屄视频| 亚洲精品xxx| 国产精品不卡高清在线观看| 日本ZZ高免费A级视频| 欧美性爱一区| 久久久久国产亚洲一区欧美色图日韩| 懂色AV蜜臀无码精品APP | 蜜桃久久久久久久| 欧美日韩国内不卡| 国产一级高清免费观看| 久久人妻一区二区三区高清| 青苹果影院男人的天堂| 91丨九色丨国产丨人妻在线 | 日本三级日本三级三级人妇四虎| 国语av最新自产拍在线观看| 蜜臀一二三区| 91在线色| 久久亚洲av成人无码国产| 搡老女人老91二区| Aa东京男人的天堂| 躁躁日曰躁2020| 天美传媒国产原创中文字幕亚洲欧美另类 | 成人五月天丁香激情综合| 亚州精品人妻一二三区| 北京美女一区二区| 久操视频免费在线观看| 久久久com| 无码WWW免费视频网站| 久久婷婷电影网| 午夜操一视频一区| 超碰97首页| 操b网站亚洲无码| 久久国产精品一级二级三级| 婬女免费一二三区A片| 欧美日韩国产三级黄色| 丁香色狠狠色综合久久小说| 日日不卡av| 久久久精| 日韩大香蕉精品在线视频| 黄色不卡视频| 国产精品毛片| 亚洲图片色图欧美另类| 亚洲人成网www| 久久春色| 精品人妻一区二区免费蜜桃| 国产精品久久久视频| 97久久久久久久精| 嗯啊啊啊轻点视频 | 亚洲一区二区三区AV无码| 操逼操逼逼操操逼91| 国产精品香蕉热久久新品| 国产小黄片在线免费观看| 国产一区在线免费播放| 99色色网| 黑丝91视频| 欧美夜夜骑视频| 国内精品久9| 免费视频一二三区| 日韩免费三级黄片电影| 久久国产热视频97电影| 极品白嫩美女白浆成人福利在线看| 中文字幕在线免费观看视频| 一道本久久棕合爱| 精品97精品97| 亚州精品人妻一二三区| 屁股久久久久久| 在线观看无码三级少妇| 日韩AV一起草| 厕所偷拍在线| 日日妻色网| 久久东京热久久| 91精品微拍福利| 另类专区在线观看| 人妻一区二区三区| 中文字幕二区| 国产高清午夜成人在线观看| 十八禁成人网站在线观看| 天天干天天干天天| 热久日综合| henhen91| 国产精品久久久久中文字幕| 亚洲天堂电影精品一区| 成熟熟女国产精品一区二区| 久久黄人人爽视频| 国产野战露脸在线播放| 天天干少妇| 偷拍五区| 欧美精品69性爱| 中文字幕 国产区| 国精综合一二三区影视| 大香久久| 亚洲高清无码AAA久久久精品| 神马视频久久久久久| 亚洲诱惑天堂 | 最新中文字幕精品在线| 毛片视频白嫩| 国产免费内射视频| 把腿张开老子CAO烂你| 精品国产网站| 精品97久久| 国产97视频免费观看| 亚洲色9| 丰满人妻-区二区三区| 欧美性爱十八禁| 色九九九九| 精品无码秘 人妻一区二区 | 亚洲日韩天堂| 九热视频| 97人人色| 在线看免费无码AV天堂的| 欧美91网站| 五月婷婷丁香六月丁香| 欧美性后入| 永久免费观看的毛片的网站| www.zbzhongsen.com| 欧美色自拍| 色黄色美女大长腿午夜视频| 综合网欧| 囯戸精品高潮呻吟旡码| 午夜呻吟欧美| 日本熟妇浓毛hdsex| 亚码激情| 国产v亚洲v日韩v欧美v片另类| 91啪啪视频| 欧美第五页| 六十路日本| 国产激情在线| 69精品人人人人| 亚洲第一页色网| 色色激情| 亚洲91色| 亚洲一区二区三区麻豆传媒| 国产又黄又粗又猛大片| 美女黄页| 秋霞一级鲁丝片A片| 另类av天堂| 午夜无遮挡男女啪啪视频| 欧美日韩一干二干| 伊人亚洲国产一成人久久精品,久久| 日韩中文字幕宗合在线| 国产久久av| 日本不卡中文| 日本在线一二| 亚洲国产精品久久AV| www老逼91| 蜜乳视频网站| 亚洲自拍欧美色综合| 免费簧片在线观看| 99热在线只有精品| 亚洲日本韩国极品一区二区| 国产精品麻豆成人av| 色大香蕉97N| 国语对白在线播放视频| www.91视频网| 中文字幕88av在线| 国人欧美精品一区二区| 九t超碰| 蜜桃传媒一区二区亚洲| 日韩免费在线视频观看| 人妻精品一区一区三区蜜桃91| 丁香五月性| 日韩欧无码一区二区三区免费不卡| 超碰1024久久| 91干熟女| 天天射天天操天天干天天吃2018| 欧美日韩青操| 色婷婷视频| 国产又黄又粗的视频| 亚欧美色| 精品人妻中文字幕高清| 狠狠2050在线观看| 日韩精品99999| 一区操逼| 日韩本不卡视频在线观看| 中文一区二区婷婷视频| 国语国产操逼伊人AV网| 欧美翘臀视频网站一区二区三区| 97色欧州| 中文字幕在线日亚州9| 天堂69亚洲精品中文字| 欧美日本视频一区| 肥臀熟女福利视频一区二区| 777奇米影视777四色| 伊人国产成人av网站| 怡红院网站在线视频| 嗯嗯啊啊操死我| 丁香九月激情| 国产精品黄色三级av| 中文字幕一区二区三区50路| 国产久久久久影院老熟女| 婷婷色一区| 色牛牛AV| 亚洲国产一区二区入口| 蜜桃久久一区二区| 天天天操天天天爱| 91成人在线| 蜜桃成人1区2区3区| 亚洲情色中文字幕一区| 午夜人人操| 凹凸精品熟女在线观看| 一级免费精品| 亚洲熟女乱综合一区二区三区| 后X久久| 超碰AV在线| 日本精品无码三级网站| 久久亚洲AV无码专区首页| 丝袜美腿丝袜| 久久6热精品99视频| 爱干爱射网啊啊啊| 夜夜爽爽爽| 亚洲AV永久无码一区仙野| 国产精品区在线12p| 中文字幕99999| 综合五月天| 97精品视频在线播放| 97操在线| 91五月天| 国产精品不卡一区二区三区| 欧美图片色综合| 天天肏美女| 91亚洲人电影| 青青草视频这里只有精品| 婷婷五月天影院| 欧美一区二区三区日韩| www黄片免费看com| 午夜福利免费福利视频| 日韩图区 偷拍| 在线岛| 性爱Av免费| 欧美大香蕉同搞| 久久黄色性爱视频| 中文字幕一区电影在线观看| av在线不卡一区二区三区| 国产女人和拘做爰视频 | 麻豆色约约| 精品久久久一本一道| 骚日日av| 蜜臀99久久国产| 亚洲高清欧美总合| 97天天操| 国产精品懂色tv影视免费观看| 天美91| 亚州熟女乱伦| 国产精品一区av在线| 一级性爱啪啪视频| 啪一啪免费视频| 日本在线激情一区二区三区| 激情婷婷五月天| 狠狠躁AV| 亚洲色图欧美另类在线| 色悠久久久av| 国产精品一区二区密臀| 国产91 丝袜在线播放00-百度| 91春色| 超碰无码加勒比| 日韩AC| 九色 人妻 大香蕉| 神马久久久久久久久久久久| 精品二999| 噜噜噜噜天天狠狠| 天天操夜夜操| 成年人黄色小视频网站| 91干熟女| 久久9精品视频| 少妇专区一二三四五| 亚洲天堂一二| 激情文学88| 极品尤物自安慰| 男人天堂一区二区| 粉嫩少妇自慰在线| 少妇高潮九九九九九九九| 视频不卡中文字幕| 精品欧美А∨无码黑人大荫蒂 | 97超碰影音| 中文字幕丰满人妻日本| 十八岁啪啪视频免费看| 狠狠综合网| 蜜桃久久久久久久久久久久| 亚洲深夜福利| 波多野结衣一级视频| 91丨九色丨东北熟女| 精品无人区麻豆乱码久久久| 黄站在线免费观看| 日本性感人妻91| 日韩乱伦视频| 一区二区三区日韩欧美 | 成人八戒网站| 在线观看十八禁| 久草成人影片| 1000部熟女视频在线观看| 午夜精品探花| 欧色综合| 91人人操| 中文字幕av乱伦| 1二区9| 另类天堂| 99精品久久| 日韩中文字幕宗合在线| 啊啊啊在线观看| 99视频自拍| 大屁股国产在线视频| 伊人网免费视频| 一起草av| 啊啊啊啊啊舒服| 在线观看高清AV| 人妻一区二区三区| 一区二区三区高清| 在线观看精品国产免费| 乱老熟女一区二区三区| 国产精品白领在线观看 | 精品亚洲| 色婷婷激情| 国产视频97| 久久久精品无码亚免费| 久久鲁夜| 一级做a爰片性色毛片久久| 亚洲人成网www| aV中文麻| 婷婷丁香成人| 噜噜噜噜天天狠狠| 97摸视频| 99热国产精品| 91成人精品在线播放| 青草视频人妻在线观看| 日日插夜夜| 亚洲揄拍网| 人人操人人操人人人操| 热久久九九热| 一级做a爰片性色毛片久久| 毛片视频白嫩| 婷婷色色五月天福利| 91女网站| 99精品国产户外露出| 亚洲AV免费在线观看| 人妻精品视频一区二区三区| 青娱乐 成人娱乐在线| 无码不卡亚洲成?人片| 人妻一区二区三区| www.99色| 久久久久久久久久久999| 国产一级特黄大片处女| 色哟哟1区2区| 久久无码电影| 999久久久久久久久| 婷婷午夜| 69天堂| 啊啊啊啊在线观看网址| 人人 操人人 操人人| 五月开心久久AV官网| 色情五月丁香| 日韩免费人妻色情网站| 国产精品播放| 美女啊啊啊啊pc| {男男暴菊gay无套网站| 日本精品免费一区二区三区四区| 天堂俺去俺来也www久久婷婷| 粉嫩久久久久| 日本道久久综合色色| 欧美熟妇精品黑人巨大91| 中文字幕一区 二区三四五 区日 日骚| 超碰欧美| 久久久专区| 亚洲成?V人片在线观看福利| 精品人妻少妇| 久久色激情一区二区三区| 日本欧美韩国国产在线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲欧洲久久天堂| 國產尤物AV尤物在線觀看| 夜夜嗨一区二区三区直播内容| 天天干2019| 欧美精品xxxwww| 人人妻人人爽| 日本最新免费韩国1区2区视频播放| 无码人妻丰满热妇又大又粗| 91久久婷婷| 日本蜜桃| 99热这里只有精品9| 欧洲欧美视频一区二区| 九九九九热只有精品| 久久夜嗨| 久热这里| 小视频玖玖| 欧美天天综合网版| 丝袜av一区二区三区| 久久怡红院| 一区二区三区黄片免费观看| 国产精品一区二区三区四区五区| 九九九九九九成人| 免费精品99| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 中文字幕欧美丝袜07资源| 欧美v日韩v亚洲v最新在线| 精品九九淫乱男| 特污免视频| 亚洲二区精品在线观看| 性夜影院爽黄A爽免费动漫| 国产成人啪一区二区| 九九九久千久久激情蜜桃在线看 | 国产中文日韩欧美一区二区三区人妻丝袜美腿| 丁香五月婷婷基地| 精品一区二区三区蜜桃臀赵总| 97久久国产| 亚洲素人综合| 国产极品久久久| 亚洲高潮少妇| 看日韩操逼| 国产操伦| 国产精品国产亚洲区艳妇糸列| 久久久999国产精品| 欧日韩在线观看| 色老汉色| 久久99黄色卞西瓜| 大香蕉乱伦视频网| 嗯啊抽插大香蕉网页| 在线播放成人高清免费视频| 青草精品视频日本久久久久网站在线| 98超碰日本| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 婷婷月色| 色5月婷婷| 日韩性爱高清免费视频| 久久精品高清AV| 秋霞成人一级在线观看| 91AV入口| 亚洲影院无码在线| 色婷婷国产精品一区在线观看| 密臀在线一区尤物| 久久精品操| 色婷婷日韩精品一区二区三区| 久久久国产精品亚洲精品| 动漫区日韩区欧美区| 女人一区| 久久999久| 国产精品久久久777| 欧美少妇第一页| 爱爱动态试试看6 0秒| 动漫片子网站3黄| 青青草视频久久久久| 久久亚洲不卡一区二区三区| 中文字幕视频2区| 啊啊啊好湿久久| 精品97精品97| 亚洲成人色情五月天丁香花| 97天天操天天干| 97精品国产精品免费观看| 很很很很操| 中文无线日韩一区| 丝袜美腿91| 精品97久久| 中文字幕一区二区视频在线观看 | 日韩中文欧美| 3571色综合一区二区二区| 超碰资源亚洲97| 婷婷五月天久久精品视频一区二区三区 |