久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Linux runtime PM:設備級功耗調(diào)度的核心機制與實戰(zhàn)指南

Linux runtime PM:設備級功耗調(diào)度的核心機制與實戰(zhàn)指南 1. runtime pm不是“省電開關”而是設備生命周期的精細調(diào)度器很多人第一次看到runtime pm這個詞下意識會把它理解成“Linux內(nèi)核里一個用來關掉設備電源的模塊”——就像家里拉閘斷電一樣簡單粗暴。這種理解在實操中會立刻碰壁你調(diào)用了pm_runtime_suspend()設備卻紋絲不動你設置了autosuspend_delay但設備該醒還是醒你反復echo auto power/controldmesg里卻只打印device busy。這不是驅(qū)動寫錯了也不是內(nèi)核版本太舊而是你從一開始就沒抓住 runtime pm 的本質(zhì)。它根本不是“開關”而是一套基于引用計數(shù)與狀態(tài)機的設備運行時生命周期協(xié)同調(diào)度機制。它的核心目標不是“讓設備斷電”而是“在設備真正空閑、且系統(tǒng)確認無任何組件正在使用它時才允許進入低功耗狀態(tài)一旦有新請求到來必須能以確定性時延快速恢復服務”。這個“確定性時延”和“協(xié)同確認”才是 runtime pm 區(qū)別于傳統(tǒng)system suspend整機休眠的關鍵分水嶺。舉個生活化的例子runtime pm 就像一棟寫字樓里的智能電梯調(diào)度系統(tǒng)。它不會在沒人按樓層鍵時就直接把所有電梯停運、斷電——那樣等你按下12樓按鈕就得等30秒電梯重啟。它做的是當某部電梯連續(xù)3分鐘沒被召喚、轎廂內(nèi)無人、且沒有預約任務時自動將其轉(zhuǎn)入“待機模式”電機休眠、照明調(diào)暗但保持控制系統(tǒng)在線一旦有人刷卡進廳、或遠程呼叫指令到達它能在1.2秒內(nèi)完成喚醒、平層、開門——整個過程對用戶完全透明。這個“待機-喚醒”的決策權不歸電梯自己而由大樓中央調(diào)度系統(tǒng)即內(nèi)核的 PM core統(tǒng)一協(xié)調(diào)依據(jù)的是每部電梯當前的“占用狀態(tài)報告”即usage count。在 Linux 內(nèi)核中這個“占用狀態(tài)報告”就是struct device里的power.usage_count字段。它不是布爾值忙/閑而是一個有符號整數(shù)每次調(diào)用pm_runtime_get_sync()就 1調(diào)用pm_runtime_put_sync()就 -1。只有當usage_count 0且滿足autosuspend_delay超時后PM core 才會嘗試下發(fā)suspend請求。而驅(qū)動必須在.suspend()回調(diào)里完成真正的硬件斷電操作并返回0表示成功若返回-EBUSY則說明設備此刻無法安全斷電比如 DMA 正在傳輸、FIFO 未清空PM core 會立即放棄本次 suspend 并重置計時器。提示usage_count是 runtime pm 的唯一真理。所有調(diào)試的第一步永遠是cat /sys/devices/.../power/usage_count。如果它不為 0設備就永遠不會 suspend如果它為 0 卻沒 suspend那一定是驅(qū)動的.suspend()返回了非零值或者autosuspend_delay設置得過大默認是 -1即禁用 autosuspend。這個機制徹底改變了嵌入式設備的功耗管理邏輯。過去驅(qū)動開發(fā)者要自己維護一套“空閑計時器手動調(diào)用clk_disable()regulator_disable()”的私有方案極易出錯且無法與系統(tǒng)級電源策略協(xié)同。runtime pm 把這套邏輯標準化、內(nèi)核化、可審計化——它讓功耗控制從“驅(qū)動私有行為”變成了“內(nèi)核統(tǒng)一調(diào)度的公共資源”。2. 驅(qū)動注冊階段的三道生死線probe 里的 pm_runtime_enable() 不是可選項很多驅(qū)動作者在probe()函數(shù)末尾隨手加上pm_runtime_enable(dev)以為這就完成了 runtime pm 的接入。結果一跑起來dmesg里全是runtime PM usage counter of ... is 0, but device is not suspended的警告設備始終處于active狀態(tài)。問題不在pm_runtime_enable()本身而在于它前面的三道“生死線”是否全部通過。這三道線缺一不可且順序嚴格。2.1 第一道線parent 設備的 runtime pm 必須已啟用pm_runtime_enable()的本質(zhì)是將當前設備加入內(nèi)核的 runtime pm 管理樹。但這個樹是有層級結構的——每個設備都有dev-parent。如果 parent 設備的 runtime pm 沒啟用即parent-power.runtime_status ! RPM_ACTIVE那么子設備即使usage_count 0PM core 也絕不會允許它 suspend。因為 suspend 子設備的前提是 parent 設備自身已處于低功耗狀態(tài)否則子設備斷電會導致 parent 的電源域異常。實測案例某 ARM SoC 上的 USB host controller 驅(qū)動在probe()中調(diào)用pm_runtime_enable()后其下的 USB device 始終無法 runtime suspend。排查發(fā)現(xiàn)host controller 的 parent 是platform bus上的usb_phy設備而usb_phy驅(qū)動壓根沒調(diào)用pm_runtime_enable()。修復方法很簡單在usb_phy的probe()里補上pm_runtime_enable()并確保其.suspend()能正確關閉 PHY 電源。之后USB device 的usage_count歸零后 500ms 內(nèi)即成功 suspend。2.2 第二道線power.wakeup 屬性必須顯式設置dev-power.wakeup是一個struct wakeup_source *類型指針默認為NULL。如果驅(qū)動不主動初始化它PM core 在設備 suspend 前會執(zhí)行device_wakeup_path()檢查——這個檢查會遍歷整個設備樹路徑尋找是否有wakeup_source已激活。由于dev-power.wakeup NULL檢查必然失敗導致pm_runtime_suspend()直接返回-EAGAIN設備永遠卡在RPM_ACTIVE。正確的做法是在probe()中緊隨pm_runtime_enable()之后調(diào)用dev-power.wakeup wakeup_source_register(dev, my-device-ws); if (!dev-power.wakeup) { dev_err(dev, Failed to register wakeup source\n); return -ENOMEM; }注意wakeup_source_register()的第二個參數(shù)是字符串標識符必須全局唯一。如果設備確實不需要被外部事件喚醒如 GPIO 中斷、RTC alarm可以設為NULL但必須顯式賦值不能留空。否則內(nèi)核會認為該設備“可能需要喚醒”但又找不到喚醒源陷入邏輯死鎖。2.3 第三道線autosuspend_delay_ms 的初始化時機dev-power.autosuspend_delay默認值是-1表示 autosuspend 功能被禁用。這意味著即使usage_count 0PM core 也不會自動觸發(fā) suspend除非你手動調(diào)用pm_runtime_autosuspend()或pm_runtime_suspend()。很多驅(qū)動作者習慣在probe()結束前設置pm_runtime_set_autosuspend_delay(dev, 500); // 500ms但這行代碼必須放在pm_runtime_enable()之后。因為pm_runtime_set_autosuspend_delay()內(nèi)部會檢查dev-power.runtime_status是否為RPM_ACTIVE如果不是比如剛 enable 時狀態(tài)還是RPM_SUSPENDED它會直接返回-EAGAINdelay 值根本不會生效。更穩(wěn)妥的做法是pm_runtime_enable(dev); // 確保設備初始狀態(tài)為 active pm_runtime_get_noresume(dev); pm_runtime_put_sync(dev); // 此時狀態(tài)已為 RPM_ACTIVE再設置 delay pm_runtime_set_autosuspend_delay(dev, 500);這三道線構成了 runtime pm 的“啟動門檻”。它們不是技術難點而是設計契約——內(nèi)核要求驅(qū)動必須明確聲明“我已準備好參與這套協(xié)同調(diào)度”而不是“我隨便試試看”。跳過任何一道設備就會淪為 runtime pm 系統(tǒng)里的“幽靈節(jié)點”power/control文件存在usage_count可讀但 suspend 永遠不會發(fā)生。我在調(diào)試某款工業(yè)相機驅(qū)動時就因漏掉了wakeup_source_register()花了整整兩天才定位到問題根源。教訓是pm_runtime_enable()不是終點而是起點它后面跟著的三行代碼才是決定設備能否真正“呼吸”的關鍵。3. suspend/resume 回調(diào)里的硬件真相為什么 .suspend() 必須返回 0 或 -EBUSY驅(qū)動開發(fā)者常有一個誤解.suspend()回調(diào)只是“通知我該關電了”所以隨便返回0就行。這種做法在測試環(huán)境可能暫時通過但在真實產(chǎn)品中會埋下嚴重隱患。runtime pm 的.suspend()和.resume()回調(diào)不是簡單的通知鉤子而是硬件狀態(tài)轉(zhuǎn)換的原子性契約。內(nèi)核 PM core 嚴格依賴這兩個回調(diào)的返回值來決定后續(xù)的調(diào)度動作。返回值錯誤輕則導致設備無法 suspend重則引發(fā)系統(tǒng)死鎖或硬件損壞。3.1 .suspend() 的返回值語義0 表示“已安全斷電”-EBUSY 表示“此刻無法斷電”當 PM core 調(diào)用驅(qū)動的.suspend()時它期望驅(qū)動完成以下三件事停止所有數(shù)據(jù)傳輸關閉 DMA 引擎、清空 FIFO、等待 TX/RX 完成保存關鍵寄存器狀態(tài)記錄當前配置如 clock divider、gain setting供 resume 時恢復切斷硬件供電或時鐘調(diào)用clk_disable_unprepare()、regulator_disable()、pinctrl_select_state()切換到 sleep state。只有當這三步全部成功完成后才能返回0。如果第1步失敗例如 DMA 正在忙無法強制停止就必須返回-EBUSY。此時 PM core 會立即放棄本次 suspend 嘗試并重置autosuspend_delay計時器等待下一次usage_count歸零。常見錯誤寫法static int my_device_suspend(struct device *dev) { // 錯誤沒有檢查 DMA 是否空閑直接 disable clock clk_disable_unprepare(my_clk); regulator_disable(my_reg); return 0; // 危險DMA 可能還在寫內(nèi)存 }正確寫法必須包含超時等待static int my_device_suspend(struct device *dev) { int timeout 100; // 100ms 超時 while (dma_is_busy() timeout--) { udelay(100); } if (dma_is_busy()) { dev_warn(dev, DMA still busy, cannot suspend\n); return -EBUSY; // 明確告知 PM core } // 此時 DMA 已空閑安全操作硬件 clk_disable_unprepare(my_clk); regulator_disable(my_reg); // 保存寄存器... return 0; }3.2 .resume() 的隱含契約必須在 10ms 內(nèi)完成喚醒.resume()的返回值語義與.suspend()不同它只應返回0成功或負錯誤碼如-EIO表示硬件故障。但它有一個硬性隱含要求從.resume()開始執(zhí)行到設備能響應第一個 I/O 請求的時間必須 ≤ 10ms。這是 runtime pm 的設計底線——如果喚醒太慢上層應用如音頻播放器會感知到卡頓或丟幀。這意味著.resume()里不能做任何阻塞操作? 不能調(diào)用msleep(20)? 不能等待 slow I2C bus 的 ACKI2C 通信必須用中斷或 DMA不能輪詢? 不能執(zhí)行復雜的寄存器初始化序列應提前預加載resume 時只做最小必要配置。實測數(shù)據(jù)某 SPI Flash 控制器驅(qū)動.resume()中包含一個 15ms 的usleep_range(10000, 15000)導致音頻播放時出現(xiàn)明顯爆音。移除該延時改用 polling timeout最大 1ms問題消失。3.3 狀態(tài)機視角RPM_SUSPENDED 不等于“硬件已斷電”內(nèi)核中dev-power.runtime_status有四個狀態(tài)RPM_ACTIVE、RPM_RESUMING、RPM_SUSPENDING、RPM_SUSPENDED。很多開發(fā)者認為RPM_SUSPENDED就代表“硬件已斷電”這是致命誤解。RPM_SUSPENDED只表示“PM core 認為設備已 suspend”但硬件實際狀態(tài)取決于驅(qū)動.suspend()的執(zhí)行結果。如果驅(qū)動.suspend()返回0PM core 會將狀態(tài)設為RPM_SUSPENDED如果返回-EBUSY狀態(tài)仍為RPM_ACTIVE。但如果驅(qū)動.suspend()返回0卻忘了調(diào)用regulator_disable()那么RPM_SUSPENDED狀態(tài)下硬件依然帶電——這會造成嚴重的漏電問題尤其在電池供電設備中。因此RPM_SUSPENDED是一個軟件狀態(tài)標記而非硬件事實。驗證硬件是否真斷電必須用萬用表測量 VDD 引腳電壓或用示波器觀察 clock signal。我在調(diào)試一款車載 TCU 模塊時發(fā)現(xiàn)power/runtime_status顯示suspended但電流表讀數(shù)仍是 8mA。最終定位到.suspend()返回了0但regulator_disable()被注釋掉了調(diào)試時遺留。這個案例深刻說明runtime pm 的可靠性最終取決于驅(qū)動代碼的嚴謹性而非內(nèi)核狀態(tài)機的完備性。4. 調(diào)試 runtime pm 的黃金四步法從 dmesg 到 trace-cmd 的全鏈路追蹤當 runtime pm 行為不符合預期設備該 suspend 卻不 suspend該 resume 卻卡住靠猜是沒用的。內(nèi)核提供了完整的調(diào)試工具鏈但必須按正確順序使用。我總結出一套“黃金四步法”覆蓋從宏觀狀態(tài)到微觀時序的完整排查路徑已在數(shù)十個嵌入式項目中驗證有效。4.1 第一步看/sys/devices/.../power/下的原始狀態(tài)文件宏觀快照這是最快速的初步診斷。進入對應設備的 sysfs 目錄如/sys/devices/platform/12c0000.i2c/i2c-1/1-0048/power/依次檢查文件正常值異常含義排查方向runtime_statussuspended或activeunknown表示pm_runtime_enable()未調(diào)用檢查驅(qū)動 probe 流程controlautoon表示 autosuspend 被禁用檢查pm_runtime_set_autosuspend_delay()是否生效usage_count0suspend 前0表示仍有組件持有引用grep -r pm_runtime_get drivers/查找誰沒配對putautosuspend500單位 ms-1表示 autosuspend 功能關閉檢查pm_runtime_set_autosuspend_delay()調(diào)用位置特別注意usage_count它是 runtime pm 的“心跳”。如果它長期 0說明某個 subsystem如 input core、mfd core在 probe 或 event handler 中調(diào)用了pm_runtime_get()卻忘記put。這時需結合stacktrace分析。4.2 第二步啟用CONFIG_PM_DEBUG并解析 dmesg事件日志在內(nèi)核配置中開啟CONFIG_PM_DEBUGy編譯后啟動。然后觸發(fā) suspend/resume如echo auto power/control再執(zhí)行dmesg | grep runtime。你會看到類似輸出[ 1234.567890] pm_runtime: device 12c0000.i2c: suspending [ 1234.567901] my_i2c_driver: suspend called, usage_count0 [ 1234.567912] my_i2c_driver: DMA idle, disabling clock... [ 1234.567923] pm_runtime: device 12c0000.i2c: suspended如果看到device busy或suspend failed說明.suspend()返回了非零值。此時需檢查驅(qū)動代碼中.suspend()的返回邏輯。注意dmesg日志是異步的可能丟失關鍵時序。它只能告訴你“發(fā)生了什么”不能告訴你“為什么發(fā)生”。4.3 第三步用trace-cmd抓取 PM event trace時序分析這是定位競態(tài)問題的終極武器。先啟用 trace# 啟用 runtime pm tracepoint trace-cmd record -e pm:runtime_pm_callback -e pm:runtime_pm_status # 觸發(fā) suspend/resume 操作 echo auto /sys/devices/platform/12c0000.i2c/power/control # 停止記錄 trace-cmd stop # 解析 trace trace-cmd report輸出會顯示精確到微秒的事件流myapp-1234 [001] .... 1234.567890: runtime_pm_callback: funcpm_runtime_suspend, dev12c0000.i2c, ret0 myapp-1234 [001] .... 1234.567895: runtime_pm_status: dev12c0000.i2c, statusRPM_SUSPENDING myapp-1234 [001] .... 1234.567900: runtime_pm_callback: funcmy_i2c_suspend, dev12c0000.i2c, ret0 myapp-1234 [001] .... 1234.567905: runtime_pm_status: dev12c0000.i2c, statusRPM_SUSPENDED如果發(fā)現(xiàn)runtime_pm_callback事件后沒有對應的runtime_pm_status事件說明.suspend()卡住了如死循環(huán)等待 DMA如果status從RPM_SUSPENDING變回RPM_ACTIVE說明.suspend()返回了-EBUSY。4.4 第四步用perf分析.suspend()函數(shù)耗時性能瓶頸如果.suspend()執(zhí)行時間過長10ms會導致 autosuspend 失敗。用perf抓取函數(shù)級耗時perf record -e cpu-clock -g -a -- sleep 10 # 觸發(fā) suspend echo auto /sys/devices/platform/12c0000.i2c/power/control perf script | grep my_i2c_suspend輸出會顯示.suspend()內(nèi)部各子函數(shù)的耗時占比。常見瓶頸點udelay()或msleep()調(diào)用I2C/SPI 總線輪詢等待復雜的寄存器讀寫序列。修復原則所有耗時操作必須異步化或移到.suspend_noirq()如果適用.suspend()本身應盡量精簡。這套四步法不是孤立的工具列表而是一個遞進的診斷流水線。第一步幫你鎖定問題域第二步定位事件節(jié)點第三步揭示時序真相第四步深挖性能根源。我在為某醫(yī)療監(jiān)護儀移植 Linux 時曾用此法在 3 小時內(nèi)定位到一個隱藏了半年的 bug.suspend()中一個未加鎖的spin_lock()導致在 SMP 系統(tǒng)上死鎖。沒有 trace-cmd 的時序圖這個問題幾乎不可能被發(fā)現(xiàn)。5. 實戰(zhàn)避坑指南那些文檔里不會寫的 runtime pm 經(jīng)驗陷阱文檔和教科書講原理但真實世界里的坑往往藏在細節(jié)的縫隙里。這些經(jīng)驗是我踩過十幾次坑、翻過上百次內(nèi)核源碼、和硬件工程師吵架無數(shù)次后總結出來的。它們不寫在Documentation/power/runtime_pm.txt里但每一個都足以讓你的項目延期一周。5.1 陷阱一pm_runtime_get_sync()在中斷上下文中的“偽安全”很多驅(qū)動在 IRQ handler 中調(diào)用pm_runtime_get_sync()來防止設備在中斷處理期間被 suspend。這看起來很合理但有個致命前提pm_runtime_get_sync()會嘗試 acquiredev-power.lock而這個 lock 是 sleepable mutex。在中斷上下文hardirq中調(diào)用它會導致 kernel panicscheduling while atomic。正確做法是在中斷 handler 中只調(diào)用pm_runtime_get_noresume()它不嘗試 resume只增加usage_count然后在下半部如 workqueue 或 tasklet中再調(diào)用pm_runtime_resume()。例如static irqreturn_t my_irq_handler(int irq, void *dev_id) { struct my_dev *pdev dev_id; // 僅增加引用計數(shù)不 resume pm_runtime_get_noresume(pdev-dev); schedule_work(pdev-irq_work); return IRQ_HANDLED; } static void my_irq_work(struct work_struct *work) { struct my_dev *pdev container_of(work, struct my_dev, irq_work); // 在進程上下文中 resume pm_runtime_resume(pdev-dev); // 處理中斷數(shù)據(jù)... pm_runtime_put(pdev-dev); }5.2 陷阱二autosuspend_delay的單位是毫秒但pm_runtime_set_autosuspend_delay()的參數(shù)是毫秒 * 1000不這是一個經(jīng)典誤解。pm_runtime_set_autosuspend_delay()的參數(shù)單位就是毫秒不是微秒。內(nèi)核內(nèi)部會將其乘以USEC_PER_MSEC1000轉(zhuǎn)為微秒存儲。但很多開發(fā)者看到struct dev_pm_info中autosuspend_delay字段類型是long就誤以為要傳微秒值結果設置500000本意是 500ms實際變成了 500 秒延遲。驗證方法設置后讀取cat /sys/devices/.../power/autosuspend輸出值就是你傳入的毫秒數(shù)。如果顯示500000說明你傳錯了。5.3 陷阱三pm_runtime_idle()不是“強制 idle”而是“發(fā)起 idle 請求”pm_runtime_idle()的作用是向 PM core 發(fā)送一個“設備現(xiàn)在空閑請考慮 suspend”的信號。它不會立即 suspend 設備而是觸發(fā)rpm_idle()函數(shù)該函數(shù)會檢查usage_count是否為 0以及autosuspend_delay是否超時。如果條件不滿足它什么也不做。很多開發(fā)者誤以為調(diào)用pm_runtime_idle()就能讓設備立刻 suspend于是把它放在close()系統(tǒng)調(diào)用末尾。結果發(fā)現(xiàn)設備遲遲不 suspend。正確做法是確保usage_count已歸零即所有get都已配對put然后調(diào)用pm_runtime_idle()讓 PM core 自行決策。5.4 陷阱四power/control文件的auto模式會覆蓋autosuspend_delay這是一個反直覺的設計。當你執(zhí)行echo auto power/control時內(nèi)核會將dev-power.disable_depth設為 0并啟動 autosuspend timer。但如果你之前設置了autosuspend_delay500這個值會被保留如果你沒設置過內(nèi)核會使用默認值通常是 3000ms。然而如果你執(zhí)行echo on power/control再執(zhí)行echo auto power/controlautosuspend_delay會被重置為默認值而不是你之前設置的值。解決方案在驅(qū)動probe()中設置autosuspend_delay后不要在用戶空間用echo auto來啟用而是用echo auto power/control一次即可。如果需要動態(tài)調(diào)整 delay用echo 1000 power/autosuspend而不是切換 control 模式。5.5 陷阱五RPM_ACTIVE狀態(tài)下pm_runtime_suspend()會失敗但pm_runtime_force_suspend()不會pm_runtime_suspend()是“禮貌請求”它會檢查usage_count和autosuspend_delay只有條件滿足才執(zhí)行。而pm_runtime_force_suspend()是“強制執(zhí)行”它會忽略usage_count直接調(diào)用驅(qū)動的.suspend()。這在系統(tǒng) shutdown 或 debug 場景很有用但絕不能在正常 runtime 流程中使用因為它破壞了引用計數(shù)契約可能導致設備在被使用時突然斷電。我在調(diào)試一個 PCIe 設備時曾用force_suspend快速驗證硬件斷電邏輯結果導致 host bridge 的 config space 訪問失敗系統(tǒng) panic。教訓是force_*API 是 debug 工具不是 production 代碼。這些陷阱沒有一個是內(nèi)核文檔明確警告的但每一個都曾在我的項目中造成過嚴重后果。它們的存在恰恰說明 runtime pm 不是一個“開箱即用”的黑盒而是一個需要深入理解其契約精神的精密協(xié)作系統(tǒng)。尊重它的規(guī)則比掌握它的 API 更重要。6. runtime pm 與 system suspend 的協(xié)同邊界何時該用哪個在嵌入式開發(fā)中一個常見困惑是runtime pm和system suspend即mem或disk狀態(tài)到底是什么關系能不能混用很多團隊試圖用 runtime pm 替代 system suspend結果發(fā)現(xiàn)整機功耗降不下來另一些團隊則完全不用 runtime pm只依賴 system suspend導致設備喚醒延遲高達 2 秒。問題的核心在于沒搞清兩者的設計邊界與協(xié)同邏輯。6.1 根本差異粒度、時延、觸發(fā)源維度runtime pmsystem suspend作用粒度單個設備device整個系統(tǒng)system典型時延sub-10msresume100ms ~ 2sresume觸發(fā)源設備 driver 的usage_count變化用戶空間echo mem /sys/power/state或內(nèi)核pm_suspend()電源域設備級電源域clock/regulator/pinmux系統(tǒng)級電源域VCC_MAIN, VCC_SOC, RTC battery狀態(tài)持久性RPM_SUSPENDED是易失的resume 后狀態(tài)重置PM_SUSPEND_MEM是持久的需 bootloader 協(xié)助恢復簡單說runtime pm是“設備呼吸”system suspend是“系統(tǒng)小憩”。前者讓單個設備在空閑時打個盹后者讓整個系統(tǒng)進入深度睡眠。6.2 協(xié)同邏輯system suspend 會“凍結” runtime pm當系統(tǒng)執(zhí)行echo mem /sys/power/state時內(nèi)核的suspend_prepare()會遍歷所有設備對每個啟用 runtime pm 的設備調(diào)用pm_runtime_force_suspend()。這意味著在 system suspend 進入PM_SUSPEND_MEM狀態(tài)前所有設備必須已處于RPM_SUSPENDED狀態(tài)。如果某個設備的.suspend()返回-EBUSY整個 system suspend 就會失敗dmesg里會出現(xiàn)PM: Some devices failed to suspend。因此runtime pm是system suspend的前置條件。一個設備的 runtime pm 不穩(wěn)定會直接拖垮整機休眠。我在為某款智能手表移植內(nèi)核時發(fā)現(xiàn)bluetooth子系統(tǒng)總在 suspend 時失敗。最終定位到btusb驅(qū)動的.suspend()中一個未加鎖的mutex_lock()導致在 suspend 流程中死鎖。修復 runtime pm 后system suspend 成功率從 30% 提升到 100%。6.3 實戰(zhàn)選擇指南一張決策表面對具體場景如何選擇場景推薦方案理由移動設備待機屏幕熄滅runtime pm system suspend屏幕、背光、觸摸屏用 runtime pm 快速關閉CPU、RAM 用 system suspend 深度休眠工業(yè) PLC 24小時運行僅 runtime pmsystem suspend 會中斷實時控制但傳感器、ADC 等外設可用 runtime pm 降低功耗車載 infotainment 系統(tǒng)runtime pm主 UI system suspend停車后行車中用 runtime pm 管理 GPU、audio codec停車后整機進入mem狀態(tài)IoT sensor node電池供電runtime pm絕對主力system suspend 的喚醒源有限RTC、GPIO而 runtime pm 可讓每個 sensor 獨立控制功耗最大化續(xù)航關鍵原則system suspend 解決“系統(tǒng)級長時靜默”runtime pm 解決“設備級短時空閑”。兩者不是替代關系而是分層協(xié)作關系。6.4 一個反模式用 runtime pm 模擬 system suspend曾有團隊為降低功耗讓所有設備的autosuspend_delay設為 100ms期望達到“整機快速休眠”效果。結果發(fā)現(xiàn)usage_count頻繁波動網(wǎng)絡包到達、timer tick設備不斷 suspend/resume功耗反而比 constant active 高 20%。這是因為 suspend/resume 本身有開銷cache flush、TLB invalidate、clock gating overhead。正確做法識別真正的“系統(tǒng)空閑期”如無用戶交互、無網(wǎng)絡 activity、CPU load 5%在此期間觸發(fā) system suspend其余時間用 runtime pm 管理單個設備。兩者結合才能實現(xiàn)功耗最優(yōu)。runtime pm 的價值不在于它多強大而在于它讓功耗管理從“粗粒度、高延遲、全局一刀切”走向了“細粒度、低延遲、按需精準調(diào)控”。它不是一個炫技的功能而是一個讓 Linux 真正適配電池供電、實時響應、高能效嵌入式場景的基礎設施。理解它不是為了寫一個 demo而是為了構建一個可靠、高效、可預測的功耗管理體系。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久9999妇女| 国产一区二区三三视频| 欧美精品999| 91 国产丝袜在线放观看| 黑人娇小av在线播放| 亚洲无码?第一页| 国产精品另类一区大香蕉| 黄色网址在线免费观看| 亚洲不雅视频1区二区| 性色中出| 麻豆人妻精品一区二区| 亚洲阿v天堂无码z2018| 翔田千里AV无码秘 三区| 久草在线| 超碰人人干天天射| 性91| 后入式999| 91色噜噜狠狠| 色综合99999| 国产青一二三| 激情综合五月| 日韩精品一区二区三区色欲| 日韩精品在线观看观看| 大伊香蕉在线视频免费| 99久久e免费热视| 这里只有精品久久| 91精品综合久久久久久五月丁香| 黄色区免费观看中文字幕| 亚洲超碰97| 久久超碰网| 熟女乱伦A| 无码人妻丰满热妇又大又粗| 精品在线观看视频在线| 男人的天堂2010| 999999精品| 中文字幕在线24| 黄色大片视频在线免费看| 搡老熟女免费视频| 国产亚洲深夜激情| 免费作爱一级视频| 精品国产一区二区三区四区在线看| 亚洲高清无码AAA久久久精品| 色9999日韩国产| 99视频在线| 亚洲无码 国产无码| 偷拍 欧美 日韩| 欧美综合区| 九九性视频| 精品人妻一区二区蜜桃视频| 亚洲国产精品无石码久久| 欧美99999| 欧美激情总合网| 超碰天天操你比| 96精品久久| 中文字幕黄色片| 国产精品一区在线播放| 百度百度日本操逼| 久9久| 白丝一区| 九九Av| 超碰2017| 日本新免费二区三区| 亚洲高清91| 国产日韩区| 污到发麻的视频 国产| 成人无遮挡毛片免费看| 91狠| 在线观看高清AV| 超碰社区97| 久久激情亚洲精品无码?V| 91N综合网在线| 一级片在线观看高清无码| 97就爱干| 18禁免费视频| 无码国产精品午夜不卡(| 丁香激情网| 囯产精品强| 激情色图| 亚州色图片在线色| 91精品国产91熟女| 久久久一区二区三区麻豆| 亚洲成人久久美女| 欲女人妻性色av| 三级特黄60分钟播放| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产精品视频播放| 91精品女厕偷拍视频| 综合五月天| 亚洲αv一区二区三区| 蜜臀久久99精品久久久| 久草成人影片| 人妻激情在线视频| 操逼精品视频| 日韩激情啪啪啪| 欧美一二三| 9Ⅰ超碰| 久久久久无码| 91在线页| 日本一级二级三级网站| 亚洲免费成人在线高清无码视频| 亚洲精品97| 亚洲色交| 日韩一级二级三级免费看完整版 | 国际精品久久久| 婷婷丁香五月激情啪啪| 亚洲 欧美 手机在线观看| 日日噜噜夜夜狠狠视频无| 国产一区二区三区白丝| 乱伦一区二区三区‘| 久久草草亚洲蜜桃臀| 精品96久久| 嗯啊不要啊在线 | 东北女人操逼| av绯色| 欧美亚洲第一页| 久久久91福利姬| 国产精品亚洲一级av第二区| 亚洲精品久| 操逼无码操逼| 亚洲最大的综合性av| 91熟女综合| 亚洲色资源| 国产天天骚| 久久精品午夜国产亚洲AV无码| 亚州Av天美传媒| 国产深夜福利| 男人的天堂在线有码| 日本999精品视频| 色5月婷婷| 日韩无码服务区| 伊人伊人LD| 亚洲素人综合| 国产400孕妇孕交群| 4虎在线观看| 天堂九九九九九九九九九| 亚洲欧美另类少妇精品| 欧美熟妇乱码在线一区| 玖玖爱在线视频免费观看| 亚洲国产ⅴ高清在线观看| 99re28在线观看| 尤物视频新赏网鲜网色诱网| 人人爽夜夜玩视频| rion磁力链接| 美国日韩黄片| 国产伦乱91| 97综合网| 日日夜夜精品| 爱我干综合| 91狠狠综合久久久久久| 亚洲综合性感在线| 97 国产一区| 99久久精品国产高潮| 亚洲欧洲日韩国产自在线| 天天肏夜夜肏| 国产美女91视频| 国产亚热在线久久| 黄色片A级一区二区三区| 亚洲色 国产 欧美 日韩| 91粉嫩萝控精品福利网站_精品影音先锋国 | 欧美性爱另类综合| 色女99一级片在线观看| 婷婷五月天激情四射| 思思视频免费看网站| 99re国产中文字幕| 精品一久久久| 欧美18 在线观看| 五月色网| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 久久九九97| 伊人久久在线视频观看| 熟女色图在线| 国产乱子伦一区二区三区免看| 九九色色| 天天日天天舔天天喷天天射| 操逼逼无码| 色欲久久久久综合网| 天天看综合网| 熟女五十路一区二区三| 日本在线15p| 少妇无码太爽| 亚洲天堂7777| 中文字幕欧美丝袜07资源| 欧美综合色站| 高清在线偷拍自拍视频| 91亚洲电影| 亚洲少妇免费视频\| 天天日天天色| 玖玖爱免费观看视频| 欧美高清第一页| 婷婷久草| 久久偷拍人| 九九亚洲| 日韩中文字幕二区| AV网站高清无码在线观看| 欧美操人| 国产欧美精选激情视频| 女人精品内射国产99| 九九九国产| 99久久9| 91亚洲影院综合| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 国产精品乱码久久久久| 中文熟女五十乱码在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 熟女色图在线| 亚洲人妻色图| 内射中国少妇高清视频免费视频| 99999精品视频| 天天插天天干| 骚货操死你| 1769成人国产精品视频| 手机看片91人妻| 天天射影院| 嗯嗯啊好大| AV天堂丝袜| 熟女天天干| 蜜臀久久99精品久久久久久成人小说| 国产精品国产自产高清AV| 日本中文字幕在线视频| 日韩 欧美 校园一区| www熟女乱伦com| 综合久| 丁香五月天久久精品视频一区二区三区| 中文字日本乱码| 中文字幕少妇色| 香蕉久久国产AV一区二区| 亚洲欧美一区二区网址| 天天懆天天日| 立川理惠无码一区二区| 日韩人体偷拍| 亚洲熟女乱综合一区二区三区 | 亚洲成人日韩小说| 中文字幕aⅴ在线视频| 日韩不卡av一二三| 亚洲精品丝袜| 男人的天堂久久| 午夜性刺激视频免费观看| 国产高清精品一区二区三区毛片| 殴美大黄片| 超碰激情808| 鸥美极品| 欧美亚洲素人制服精品| 好看的91视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 试看60秒| 国产二区三区免费视频| 欧美国产日韩高清在线| 试看福利| 超碰在线人妻中文字幕| 久久ww| 亚州熟妇精品| 日本性交操一区二区不卡系列| 操逼网免费无码视频| 美女大乳久久久久久久女人18| 亚洲熟女人妻中文字幕一区二区 | 躁躁日曰躁2020| 日韩性爱小视频| 无遮挡h肉动漫在线观看| 国产偷拍自拍在线视频| 日韩人妻精品久久久久| 91真人天天在线| 黄色免费网页无码| 国产91精品在线免费| 欧美情色贴图| 成人贴图日韩欧美| 成人无码影片视频在线| 高清不卡国产| 欧美另类色图片| 一本久久精品中文字| 啊啊在线| 97干在线视频| 91精品人妻| 啊啊啊啊视频免费| 国产无码高清操逼视频| 中文久久一区| 亚洲精品中文字幕一区在线视频 | 亚洲欧美在线观看2021 | 啊啊啊啊好大好硬啊啊啊啊啊 | 超AV色女| 8x福利精品第一福利视频导航| 久久超碰大香蕉| 手机在线中文字幕国产| 久艹免费| 91强在线播放| 熟女精品一区二区三区| 欧美精品精品一区二区| 人妻激情在线视频| 婷婷五月天av| 高潮的A片激情扒开一区| 情色图区| 精品人妻一区二区乱码一区二区| 亚洲国产成人精品无码专区| 狠狠爱综合网| AV在线播放网址| 97超久碰| 视频二区美腿丝袜制服人妻欧美| 色婷婷六月丁香七月婷婷| 91亚洲丝袜熟女| 在线观看A啊啊啊| 男人的天堂2010| 十八禁黄色成人网站观看| 亚洲色悠悠久久88| 亚洲天堂人妻熟妇视频| 亚洲的天堂网| 97九色人妻| 色综合大香蕉| 婷婷操视频| 欧美影院一区二区三区| 天堂v无码免费视频| 日韩啪啪视频| 少妇淫妇久久久久久久| 91天天综合网,天天综合网| 尹人大香蕉视频在线| 99久久无色码| 蜜桃久久精品一区二区三区| 玖玖综合网| 国产精品久久久久999| 91暧暧| 黄色污污污污污污网站| 99热亚洲天堂| 7月婷婷综合| 91九九九小逼| 东京热熟女亚洲视频网站| 午夜后入| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 大伊香蕉在线视频免费| 日韩一区二区高清在线观看的| 韩国成人精品久久久免费看| 精品久久久高清无码| 日本午夜操逼| 67194国产| 久久久久久久 九九九九九九九| 91ise欧美| 亚州色国| 91综合网站| 日本高清视频xxxx| 美女自卫慰黄网站免费| 一区二区日韩欧美久久| 国产乱子伦一区二区三区免看| 五月天欧美色图| 97视频在线播放| 午夜福利无毒不卡| 丁香五月激情五月| 天天日天天屌天天操| 91老司机视频| 久操不卡视频| 亚洲综合骚逼| 色哟哟AⅤ| 亚洲欧美日韩不卡人妻| 亚洲有码 欧美精品| 婷婷丁香六月| 色噜噜综合网| 日本三级中国三级99人妇网站| 欧美日韩大香蕉| 大香蕉AV在线| 高清无码91| 手机看片1025| 四虎影视欧美| 亚洲午夜免费狠狠干| 三久久久四久久久久| 亚洲、日韩、综合、另类| 狠狠操狠狠燥| 久久超碰免费的| 97色色婷婷| 狠狠操夜夜| 91亚洲色图| 欧洲站一级二级三级h| 国产精品乱码久久久久久久久久久久| 成人片在线播放| 亚洲蜜桃V妇女| 日本免费中文字幕在线| 免费岛国一级片| 国产免费内射视频| 久夜操| 九七毛片九九毛片| 欧洲与亚洲欧美精品中文字幕| 天天91~综合入口| 日本污ww视频网站| 久久99午夜精品一区人妻| 一本色道久久天天射天天干| 亚洲第一页第二页激情| 一区在线精品中文字幕| 欧美在线91| 啊啊啊啊好多水| 亚洲欧美变态| 日韩91网| 在线免费观看高清无码视频| 国产午夜福利电影免费在线观看 | 日本操逼视频免费| 亚洲欧美成人网站AAA| 外国91| 日本女人久久久| 少妇无码999| 风韵犹存大大大大香蕉| 中文字幕97| 亚洲欧美国产中文视频| 日韩熟女操逼| 黄色一区二区秘书性感| 久久九九国产精品| 亚洲天堂久久| 久久一区无码| 综合九九| 国产999精品久久久| 激情欧美97| 麻豆三极片| 少妇高潮流水av免费| 国产久久成人| 久久婷婷热| 欧美精品成人亚洲| 人妻精品一区二区全免费| 超碰97最新人妻| 97综合久第一页| 91bbbbbb| 午夜激情成人在线观看| 超碰成人国产| 野狼激情网| 丰满少妇高潮无码| 疯操AV| 夜夜欢天天干| 欧美高清18A片| 成人乱码一区二区三少妇| 色香色欲天天综合网天天来吧| 亚洲综合中文字幕有码 | 天美传媒精品久久视频| 国产精品96| 久区视频| 国产精品麻豆成人av| 国产亚洲精品玖玖玖在线观看| 伊人激情| 亚洲瓯美色图| 午夜噜噜噜| 肏逼视频日本| 人妻中文字幕日韩电影| 一牛影视久久久一区二区三区| 亚欧中文字幕在线视频| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 大香蕉免费乱伦视频| 欧美一级A片在线看视频性色| 九久9热| 蜜桃在线观看一区二区三区| 九九九九一级| 操逼无码操逼| 四虎影库国产精品免费| 日韩亚洲97| 超碰在线91| 中日亚韩免费视频| 97国产色综合| 亚洲区小说| 精品毛片av一区二区| 色欲久久综合| 伊人精品国产| JIZZJIZZ亚洲女人被躁| 国产成人亚洲精品自产在线 | 精品国产一区二区三区香蕉欧美| 五月婷婷性爱| 曰本特级特黄特色黄色A级网站高清在线免费看| 亚洲欧美日韩激情不卡| 欧美人妻精品一区二区| 九九九网页| 抽插亚洲无码| 新婚人妻扶着粗大强行坐下| 97色欧州| 中日韩一区二区三区欧美| 中文字幕 人妻不满 在线视频| 吉田爱美AV在线| 凹凸 69堂 在线播放| 操逼1区| 艾草av| 97干色| 中文字幕一区av| 久久禁| 婷婷深爱五月| 久久久久96| 国产日韩在线播放av| 日韩在线视频1234| 久久一二三四| 亚洲欧美精品91| 天堂亚洲欧美| 日本在线一二| 97视频免费| 国产超碰人人操| 国产97在线播放| 亞洲久久直播| 亚洲综合射| 殴美在线AⅤ| 热热色色综合| 大香蕉免费乱伦视频| 婷婷伊人綜合中文字幕| 97干色| 国产人妻精品久久久一区二区三区| 国产伊人精品在线| 九九视品黄色| 国产在线观看一区二区三区| 校园春色综合色| 亚洲第一精品在线视频 | 天天操天天射天天日| 蜜屁Av| 狠狠中文字幕| 97 国产精品| 蜜乳av首页| 91亚洲人| 久草在| 91狠狠综合久久| 亚洲天堂久久久久久粉红视频| 久插综合| 国产97视频免费观看| 欧美偷拍| 97超碰天天爱天天爱| 国产女人和拘做爰视频 | 加勒比av网| 国产免费一区| 美女啊啊啊啊啊啊| 国产成人无码高清| 91九九九小逼| 伊人网av| 9久精品视频在线观看| 少妇蹲下买菜露大唇0| 97日亚洲欧美| 极品色社| www男人天堂| 亚洲一本色道中文无码aV天美| 欧美黑人猛交春色影视大全| 91模特在线观看| 国产第12页| 自拍盗摄一区| 亚洲欧美成人网站AAA| 人妻熟女午夜精品在线| 欧美亚洲情色| 97色视频在线| 日本免费一级AAA大片器| 日韩欧美丝袜诱惑| 26uuu性| 91黑丝操| 亚洲色图大香| 99久久精品欧美国产| 欧美熟妇乱码在线一区| 国产精品探花色| 一本大道久| 刺激性视频黄页| 色综合久久av| 97色在线视频| 成人在线午夜视频一区| 一起草AV| 国产精品麻豆成人AV艾秋| 国产日韩欧美亚洲精品95| 天天天天做夜夜夜夜做| 日韩中文字幕在线视频观看| 日本Suv精品一区二区| 青娱乐导航AV| 强奸a片网| 福利视频香蕉免费一区二区在线| 欧美视频激情久久久久久| 被体育老师抱着c到高潮| 美女高潮视频91| 色婷婷一区二区三区久久午夜 | www.色吧5.com| 偷拍亚洲视频一区二区三区四区| 岛国毛片手机在线观看| 丰满少妇精品一区二区| 亚洲欧美91√| 天天综合,91综合永久| 国产真实野战在线视频| 九九九九热| 丝袜 中出 制服 人妻 美腿 中文字幕| 色香阁在线| 中文字幕免费看大片| 手机午夜电影神马久久| 天天躁日日躁狠狠躁| 久久久久久久97| 五十路熟女人妻一区二区在线观看| 国产不卡的视频 | 女上位精品在线| 亚洲性图91| 激情五月天校园春色网| 麻豆 亚洲 97| 天天射天天色成人| 久久激情视频| 91少妇人妻| 精品国产Av无码久久久亚洲| 国产无码精品成人| 亚欧毛片基地国产毛片基地| 隔壁邻居波多野结衣中文字幕| 欧美激情激情xxxx欧美专区| 欧美色青| 国产 三级自拍| 激情丁香五月婷婷| 久久亚洲不卡一区二区三区| 欧美伦乱| 九九综合九九综合| 日韩综合无码一区久久92| 午夜成人爽爽爽爽A片李冰冰| 一二三区操逼国产91| 精品无码秘 人妻一区二区 | 日韩人妻无码不卡网站| 一起草三级AV电影在线观看| 成人av福利在线观看| 欧美一区二区福利在线| 色久综合| 男人的天堂无码| 天天做天天爱夜夜爽毛片试看| 在线啊啊啊啊| 色哟哟1区2区| 欧美91在线| 国产麻豆一级精品视频| 97日视频| 黄色大片视频在线免费看| 青青操狠狠撩| 欧美一区二区三区成人性生活| 日本性爱视频一级| 天天做天天爱| 国产精品一区二区三| 激情干在线| 一区二区三区成人| 国产精品干干干| 性爱AV天堂| 人人看人人爰人人操| 精品久久久av| 亚洲中文字幕在现观看| www鬼畜国产男人的天堂| 91中出视频| 五月天大香蕉| 加勒比综合网| 欧美狠狠操| 久久精品国产亚洲AV嘿嘿| 国产乱码精品久久久久久| 欧美亚洲一级在线观看| 青青草成人视频在线观看二区| 亚洲影院无码在线| 中文字幕少妇色| 夜夜爽夜夜爽| 牛牛久久国产精品视频一二三 | 青草青青久久久久久国产| 美女久久久久久久久久久| 亚洲18禁| 一区二区影院| 日本亚洲嫩草影院啪啪| 精品人妻二区三区| 国产亚洲日本精品在线| 亚洲天堂男| 午夜福利在线视频1000| 免费啪啪啪网站18岁| 97在线免费看视频| 日韩精品9999| 久久99综合| 欧美1区二区三区公司| 骚妻少妇精品性色无码四色A V| 狠狠狠狠狠| 少妇xx精品| 天天影视色香欲综合网小说| 日韩八十路老熟女| 91在线丝袜| 亚洲成人免费电影| 秋霞免费AV| 国产精品不卡高清在线观看| AV女资源| 欧美十八禁网站| 久久久性爱| 安徽熟妇视频| 精品国产一区二区三区av在线资源| 两女互慰AV高潮喷水在线观看| 九九九国产| 亚洲成人色情五月天丁香花| 91jk色拍| 亚洲欧美国产va在线| 久久亚洲熟妇在线视频| 人夜夜精品网站香蕉嫩草| 欧美色图人妻| 超碰吊日色| 欧美美女视频| 色九久| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 在线观看亚洲成人精品| 青青草依人大香蕉| 国产精品伦理| 午夜操一操| 91搡老女人老妇女老熟女歌词翻译| 日韩精品-原创伙伴| 99999精品| 豆花视频操逼网址| 亚洲强奸乱伦影视网| 中文字幕精品区先锋资源| 激情视屏国产乱伦强奸| 久热免费视频| 97超碰天天爱天天爱| 超碰日韩美妻| 91操熟女视频| 五码视频在线观看| 欧美性爱在线无码| www老逼91| 精品中文一区二区| 免费草草草草草视频| 欧洲综合色| 国产精品蜜臀久久久久无码AV| 404操逼福利视频| 精品美女人人干| 加勒比综合九九99视频在线播放| 国产一区在线观看无码AV| 久久夜夜夜| 神马久久久久久| 日本一区二区成人在线| 久久九九网| 色九九九九| 超碰地址久久| 亚洲二区精品在线观看| 精品无码久久久| 亚拍在线| 性爱Av免费| 麻豆AV96熟妇人妻| 亚洲 欧美 手机在线观看| 国产999精品久久久久久| 操淫穴亚洲五月丁香| 麻豆三极片| 精品妇操一区二区三区| 99啪啪| 美女久久久| 大香樵伊人网| 九九九免费视频| 欧洲天天在线| 亚洲男人在线观看天堂| 日韩操逼性鲍| 好吊色综合| 日韩在线一区二区| 国产性爱乱伦AV| 清清一区二区三区四区不卡视频| 欧美综合色| 思思性爱| 日日摸天天爽夜夜欢| 香蕉99秘 精品一区丁香| 91欧洲国产成人久久精品网站| 日韩草久视频| 欧美精品精品一区二区| 91丝袜在线观看视频在线观看| 激情久久av一区av二区av| 东京热av影院| 97国产亚洲中文在线| 欧美日韩*字幕一区| 亚洲色入欧美| 五月丁香| 日本操大逼| 婷婷激情丁香| 国产亚洲精品美女| 亚洲色图91欧美日韩| 蜜乳AV免费观看| 9999久久久久| 青娱乐亚洲热| 九九香蕉网| 国产精品爱欲| 花花AV导航| 91欧美丨精品丨入口| 99久久久| 8050无码八戒| 爱妃国产亚洲视频中文字幕| 久久精品国产亚洲粉嫩| 久久久久96| 国产欧美美女免费观看视频| 久久av一级av少妇av高潮| 久9综合在线| 91黑丝美女| 九九亚洲| 91熟女熟妇视频网站| 蜜臀操逼黄色视频操的好爽| av绯色| 国产精品人人爽人人做可爱福利| 日韩成人无码| 100啪啪视频大全| 国产高清自拍视频| 精品人妻一二三| 亚洲中文字幕熟女| 男女啪啪啪18禁网站| 亚洲欧美另类激情小说| 日韩一区二区高清在线观看的| 日熟女| 在线综合色| 国产做?爰片久久毛片?片美国| 思思热影视| 一级性爱aaaa| 欧美日韩超碰在线| 91欧美偷拍| 日韩亚洲97| 麻豆亚洲AV成人无码久久精品| 精品人妻中文字幕高清| 久久久久久久伊人精品| 婷婷中文网| 人、人、摸,人、人、草| 91超级碰碰碰| 九一亚洲国产免费| 久污| 人人搞人人插人人操| 免费观看国产小粉嫩喷水精品午| 免费伦费视频在线观看| 国产18精品亚洲精品| 91九九| 欧美韩国你懂得在线 | 久9综合在线| 久久这里只精品免费福利| 亚洲情色1区| 亚洲黄色AV电影| 国产精品久久久久9999小说| 日韩福利电影网| 欧美黄色大香蕉一区二区| 中文字幕精品丝袜| 97国产精品一区| 人妻少妇被猛烈进入中| 在线 亚洲 网爆 自拍| 亚洲精品熟妇1区2区3区。| 啪啪AV导航| 亚洲欧美综合色| 欧美裸体美女日麻屄| 亚洲国产尤物yw在线观看| 97WW精品| 欧美青青草视频| 曰本人妻人人澡人人夹| 欧美在线l亚洲| 久久中文字幕一区不卡| 久久久9品一区二区三区| 96麻豆精品一区二区三区| 91丨九色丨国产打屁股| 五月天AV资源| 91国产精品在线看| 国产精品点击进入在线影院高清| 青青草在线成人视频| 在线视频97| 99国产天美| 国产高清成人免费视频| 情色av电影| 日韩激情电影中文字幕| 一区二区三区四区久久视1| 国产绿奴视频在线观看| 超碰在线日韩一区| 最近的最新的中文字幕视频| 九九九偷拍| 丁香六月婷婷综合| 四虎精品永久在线观看| 97人人夜夜精品视频| 色婷婷香蕉| 人人看人人摸人人色| 欧美三级偷拍| 亚洲熟女一区| 中文字幕精品一区二区精品| 一二三四视频中文字幕在线看| 天天躁日日躁AAA片李宗瑞| 中文一区二区| 国产无马在线| 青青草原人妻| 91色插| 91狼人| 91国产丝袜美女| 国产第25页在线观看| 在线综合 亚洲 欧美中文字幕| 偷拍精品一区二区三区| 26uuu国产| 国产一线二线三线av| 很很热性爱视频| 日本道人妻久久久在线不卡色视频| 国产人妖视频一区在线观看| 国产动漫操逼视频| 综合一区二区影视| 内射小黄片| 91少妇香蕉久久精品| 国产精品女生av| 很狠操| 一区二区三区 日韩欧美| 91天射| 丰满人妻av一区二区三区| 亚州欧美综合| 久久综合婷婷| 国产精品96| 久久精品一区| 成人a级高清视频在线观看| 91天天爱| 亚洲成a人在线观看久| avav青青草久久夜| 亚洲激情AV| 国产高清自拍视频| 久久国产精品,久久国产| 日本色色视频网站| 久热99999| 免费观看欧美日韩操逼视频| 亚洲色图亚洲| 大香蕉之青青草原| 亚洲国产一区二区三区四区国产| 超碰97 线线 在现| 啊啊啊不要啊啊受不了了视频在线 | 久久久久久久久久久久久久久性生活视频 | 一区二区三区在线日韩影院观看| 女人爽到高潮潮喷18禁网站| 96精品久久久久久久久久| 久久成年精品| 爆操无码| 欧美色就是色| 97jingpin| 9久综合网| 大香蕉强奸乱伦| 中韩中文字幕在线观看| 国内黄色精品| 精品久久久久久中文| 大香蕉淫人网| 97爱b| 混色激情av| 久久久专区| AAA久久| 午夜福利1区2区3区| 啊啊啊啊好疼视频| 99热这里只有精| av在线不卡一区二区三区| 国产区在线| 久久色一区二区| 九九内射在线| 一起草高清无码| 精品无码一区二区三区| 日本护士高潮| 先锋激情∨在线视频播放| 欧州激情视频在线一区二区| 日本理论在线| 成人蜜乳小视频网站| 99国产精品自在自在| 91最新综合| 狠狠综合| 国产精品亚洲免费| 日韩操逼性鲍| 操逼操2| 情色图区| 久久精品高清无码一区| 亚洲天堂女优在线| 色色色综合| 操B在线观看| 大黄片做爱的大的| AAAA欧美日韩| 91精品国产91综合久久蜜臀| 亚洲双插| 中文字幕国产| 男人天堂 天天射| 99色日| 欧美视频激情久久久久久| 射 色综合| 大香蕉123| 97干在线视频| 久久五月丁香| 日本岛国黄色网址| 五月丁香六月婷| 欧美日韩国产高清在线一二三区 | 亚洲精品丝袜-不卡成人免费……| 黑人精品成人一区二区三区| 中文字幕日韩人妻视频| 国产精品原创巨作?v网站| 中文字幕一区二区三区50路| 97碰| 大香蕉欧美| 中文AV制服乱伦| 久肏视频字幕| 国产sv美女内射| 黄骗免费网站| 9久精品| 亚洲春色一区二区三区| 一区二区三区不卡视频| 欧美天天弄| 91黑人狂躁丰满熟妇| 伊人国产成人av网站| 亚洲天天操| 亚洲一区中文精品| 强奸抽插av| 国产AV激情无码久久无码| 天堂8在线新版官网| 粉嫩在线一区二区懂色| 性爱视频久久| 久久久999日本大片| 日本一区二区三区精品| 欧美狠狠操| 欧美高潮| 亚洲色图8| 欧美日韩中文视频播放| 五月天久久人妻| 欧洲精品二区| 可以免费看黄片的视频| 高跟丝袜AV专区国产| 精品一二三区久久AAA片| 这里只有精品视频| 国产夜夜艹| 亚洲精品白丝| 亚洲熟女一区二区| 国产精品不卡av免费在线观看| 五月婷婷丁香六月丁香| 啪一啪免费视频| 超91综合网| 天天日天天射天天干| 91热色| 加勒比综合| 2019久久久久久久久福利| 干婷婷综合网| 欧美亚洲丝袜美女电影| 色爱欲亚洲| 日本免费二区三区| 狠狠久久手机视频精品| 国产福利在线视频网站| 亚洲色鬼| 欧美亚洲自拍另类人妻| 韩国黄片aaaa| 久久极品一区二区| 97网址97| 欧美性爽xyxOOOO| 操逼操网| 裸模AV女优| 蜜区区视频79| 中国国产精品一区视频| 国产超碰在线| 热久久国产精品视频大陆精品| 少妇天堂| 亚洲 自拍偷拍 欧美| 久久熟女人| 校园春色欧美| 成人性爱AV在线免费观看| 韩日精品四区| 无码人妻系列少妇| 91精品无码久久久久久久| 国产福利小视频高清在线观看| 大香蕉在线视频15| 欧美综合色综合| 一级片在线观看高清无码| 99热色这里只有精品| 久偷拍欧美日韩三区| 日本成人在线不卡一区二区三区| 成人性爱美曰韩| 台湾大香蕉99热| 超碰97男女| 成人性爱电影网| 91精品久久久久久77777| 亚洲精品国产精品成人| 五月丁香久久| 不卡六六在线91| 偷拍自拍在线视频观看| 天天天天做夜夜夜夜做| 九九九久久久| 成人 日韩欧美一区| 美女91av| 久久社区一区二区三区| 亚洲熟女乱熟乱熟妇综合网二区| 精品午夜福利| renqi久久久久久久久久久久| 乱色老一区二区三区的观看方式| 亚洲无码?第一页| 97精品视频免费| 综合另类| 欧美欲色| 精品一级毛片在线观看| 日韩pv中文| 中文操逼字幕| 久操黄色视频| 男女一进一出视频久久| 日韩精品 资源| 亚洲色图91| 亚州色站 日韩电影| 国产一级高清免费观看| 亚洲熟妇图片| 91黑人狂躁丰满熟妇| 7月婷婷综合| 免费一级性爱久久| 桃色六月天| 韩国三级一线观看久| 天天综合网1| 免费黄色片。| 欧洲性人爱视频| 人妻人人操| 九九九久久久W精品| 激情文学网伊人| 蜜臀中文字幕| 日韩成人午夜精品久久高潮| 日本三级一区二区 在线| 亚洲AV无码久久精品蜜桃小说| 日本不卡高清视频| 国产精品乱码久久久久久| 国内精品伊人久久久久影院会| 国产熟女一区二区| 成人情色一区二区| 欧美福利视频啊啊啊啊| 91 综合 色| 粉嫩在线一区二区懂色| 97超碰超碰| 日日夜夜骚| 亚洲操逼视频网站| 久久男人天堂| 日日橹狠狠爱欧美超碰| 秋霞曰韩R级| 大香蕉欧美| 国产中文福利| 色香蕉影院| 综合网91| 99热日| 黄色大片一区二区密桃丝袜| 人妻二区| 国产91丝袜 在线播放| av大香蕉网站| 在线免费观看日韩一区| 九九热精品| 中文高清一区二区的| 国产91啪| 九九久久玖玖| 久久婷婷亚洲欧| AA丁香综合激情| 91人妻精华帖| 日韩欧美中文字幕搭讪巨乳美人妻视频| 久久欧美1卡2卡3| 女人喷水视频在线观看| 大香蕉欧美| 伊人午夜福利视频| 欧美日韩免费专区在线| 操逼日韩无码| 明星性猛交ⅹxxx乱大交| 中日韩久久久免费看| 亚洲欧洲无码97久久精品| 亚洲精品成人激情在线| 中文字幕国产| 试看60秒 爽| 国产第二页| 欧美少妇第一页| 蜜臀久久一区二区| 91天堂色男人的天堂| 久久精品 六十路 熟女 欧美| 婷婷五月天无码 | 日本天堂在线播放| 久九九九九九九热| 一起草AV| 一级性爱视频免费观看 | 性爱视频久久| 正在播放国产精品一区| 91美女视频| 玖玖综合网| 校园春色家庭伦理欧美激情| 欧美在线啊啊啊| 亚洲aw毛茸茸在线| 狠狠爱综合| 亚欧国产无码精品在线| 日韩丰满熟妇| a片 xxxx受爽视频| 伊人加勒比| 亚洲熟女综合网| 亚洲色综网| 职场同事知名国产国产精品久久欧美日韩 | 中文字幕美女91| 肥佬影院91| 天堂性色| 久久久99999久网站| 婷婷情色五月天| 久草精品国产蜜臀| 久久国产精品一级二级三级| 人妻AV 中文字幕的| 久久性爱视频| 亚洲成?V人片在线观看福利| 屁屁影院一区二区三区国产| 亚洲高清国产理伦片| 91色人妻| 欧美性爱第一区| 欧美人与性动交a美精品| 丰满美女一级毛片在线播放| 日韩一级性爱无码| 1级黄色夫妻对换性交免费看| 精品超碰中文在线| 69超碰综合| 精品久久久久9999| 中文字幕av色| 大香蕉欧美伊|