日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux soft lockup分析

發布時間:2025/7/14 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux soft lockup分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關鍵詞:watchdog、soft lockup、percpu thread、lockdep等。

?

近日遇到一個soft lockup問題,打印類似“[ 56.032356] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [cat:153]“。

這是lockup檢測機制在起作用,lockup檢測機制包括soft lockup detector和hard lockup detector。

借機分析下soft lockup機制以及什么情況下導致soft watchdog異常、對watchdog的配置、如何定位異常點。

這里跳過hard lockup detector的分析。

1. soft lockup機制分析

lockup_detector_init()函數首先獲取sample_period以及watchdog_cpumask,然后根據情況創建線程,啟動喂狗程序;創建hrtimer啟動看門狗。

然后有兩個重點一個是創建內核線程的API以及struct smp_hotplug_thread結構體。

void __init lockup_detector_init(void) {set_sample_period();----------------------------------------獲取變量sample_period,為watchdog_thresh*2/5,即4秒喂一次狗。 ...cpumask_copy(&watchdog_cpumask, cpu_possible_mask); if (watchdog_enabled)watchdog_enable_all_cpus(); }static int watchdog_enable_all_cpus(void) {int err = 0;if (!watchdog_running) {----------------------------------如果當前watchdog_running沒有再運行,那么為每個CPU創建一個watchdog/x線程,這些線程每隔sample_period時間喂一次狗。watchdog_threads時watchdog/x線程的主要輸入參數,watchdog_cpumask規定了為哪些CPU創建線程。err = smpboot_register_percpu_thread_cpumask(&watchdog_threads,&watchdog_cpumask);if (err)pr_err("Failed to create watchdog threads, disabled\n");elsewatchdog_running = 1;} else { err = update_watchdog_all_cpus();if (err) {watchdog_disable_all_cpus();pr_err("Failed to update lockup detectors, disabled\n");}}if (err)watchdog_enabled = 0;return err; }static void watchdog_disable_all_cpus(void) {if (watchdog_running) {watchdog_running = 0;smpboot_unregister_percpu_thread(&watchdog_threads);} }static int update_watchdog_all_cpus(void) {int ret;ret = watchdog_park_threads();if (ret)return ret;watchdog_unpark_threads();return 0; }static int watchdog_park_threads(void) {int cpu, ret = 0;atomic_set(&watchdog_park_in_progress, 1);for_each_watchdog_cpu(cpu) {ret = kthread_park(per_cpu(softlockup_watchdog, cpu));---------------------------設置struct kthread->flags的KTHREAD_SHOULD_PARK位,在watchdog/x線程中會調用unpark成員函數進行處理。if (ret)break;}atomic_set(&watchdog_park_in_progress, 0);return ret; }static void watchdog_unpark_threads(void) {int cpu;for_each_watchdog_cpu(cpu)kthread_unpark(per_cpu(softlockup_watchdog, cpu));-------------------------------清空struct kthread->flags的KTHREAD_SHOULD_PARK位,在watchdog/x線程中會調用park成員函數。 }

?

1.1 watchdog_threads結構體介紹

在介紹如何創建watchdog/x線程之前,有必要先介紹一些struct smp_hotplug_thread線程。

struct smp_hotplug_thread {struct task_struct __percpu **store;--------------------------存放percpu strcut task_strcut指針的指針。struct list_head list;int (*thread_should_run)(unsigned int cpu);-------檢查是否應該運行watchdog/x線程。void (*thread_fn)(unsigned int cpu);--------------watchdog/x線程的主函數。void (*create)(unsigned int cpu);void (*setup)(unsigned int cpu);------------------在運行watchdog/x線程之前的準備工作。void (*cleanup)(unsigned int cpu, bool online);---在退出watchdog/x線程之后的清楚工作。void (*park)(unsigned int cpu);-------------------當CPU offline時,需要臨時停止。void (*unpark)(unsigned int cpu);-----------------當CPU變成online時,進行準備工作。cpumask_var_t cpumask;--------------------------------允許哪些CPU online。bool selfparking;const char *thread_comm;------------------------------watchdog/x線程名稱。 };

?watchdog_threads是soft lockup監控線程的實體,基于此創建?watchdog/x線程。

static struct smp_hotplug_thread watchdog_threads = {.store = &softlockup_watchdog,.thread_should_run = watchdog_should_run,.thread_fn = watchdog,.thread_comm = "watchdog/%u",.setup = watchdog_enable,.cleanup = watchdog_cleanup,.park = watchdog_disable,.unpark = watchdog_enable, };static void watchdog_enable(unsigned int cpu) {struct hrtimer *hrtimer = raw_cpu_ptr(&watchdog_hrtimer);/* kick off the timer for the hardlockup detector */hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);hrtimer->function = watchdog_timer_fn;------------------------------------------創建一個hrtimer,超時函數為watchdog_timer_fn,這里面會檢查watchdog_touch_ts變量是否超過20秒沒有被更新。如果是,則有soft lockup。/* Enable the perf event */watchdog_nmi_enable(cpu);/* done here because hrtimer_start can only pin to smp_processor_id() */hrtimer_start(hrtimer, ns_to_ktime(sample_period),HRTIMER_MODE_REL_PINNED);---------------------------------------------啟動一個超時為sample_period(4秒)的hrtimer,HRTIMER_MODE_REL_PINNED表示此hrtimer和當前CPU綁定。/* initialize timestamp */watchdog_set_prio(SCHED_FIFO, MAX_RT_PRIO - 1);---------------------------------設置當前線程為實時FIFO,并且優先級為實時99.這個優先級表示高于所有的非實時線程,但是實時優先級最低的。__touch_watchdog();-------------------------------------------------------------更新watchdog_touch_ts變量,相當于喂狗操作。 }static void watchdog_set_prio(unsigned int policy, unsigned int prio) {struct sched_param param = { .sched_priority = prio };sched_setscheduler(current, policy, &param); }/* Commands for resetting the watchdog */ static void __touch_watchdog(void) {__this_cpu_write(watchdog_touch_ts, get_timestamp());----------------------------喂狗的操作就是更新watchdog_touch_ts變量,也即當前時間戳。 }static void watchdog_disable(unsigned int cpu)-------------------------------------相當于watchdog_enable()反操作,將線程恢復為普通線程;取消hrtimer。 {struct hrtimer *hrtimer = raw_cpu_ptr(&watchdog_hrtimer);watchdog_set_prio(SCHED_NORMAL, 0);hrtimer_cancel(hrtimer);/* disable the perf event */watchdog_nmi_disable(cpu); }static void watchdog_cleanup(unsigned int cpu, bool online) {watchdog_disable(cpu); } static int watchdog_should_run(unsigned int cpu) {return __this_cpu_read(hrtimer_interrupts) !=__this_cpu_read(soft_lockup_hrtimer_cnt);------------------------------------hrtimer_interrupts記錄了產生hrtimer的次數;在watchdog()中,將hrtimer_interrupts賦給soft_lockup_hrtimer_cnt。兩者相等表示沒有hrtimer產生,不需要運行watchdog/x線程;相反不等,則需要watchdog/x線程運行。 } static void watchdog(unsigned int cpu) {__this_cpu_write(soft_lockup_hrtimer_cnt,__this_cpu_read(hrtimer_interrupts));-----------------------------------更新soft_lockup_hrtimer_cnt,在watch_should_run()中就返回false,表示線程不需要運行,即不需要喂狗。__touch_watchdog();--------------------------------------------------------------雖然就是一句話,但是卻很重要的喂狗操作。 if (!(watchdog_enabled & NMI_WATCHDOG_ENABLED))watchdog_nmi_disable(cpu); }

?

1.2 創建喂狗線程watchdog/x

在分析了watchdog_threads之后,再來看看如何創建watchdog/x線程。?

int smpboot_register_percpu_thread_cpumask(struct smp_hotplug_thread *plug_thread,const struct cpumask *cpumask) {unsigned int cpu;int ret = 0;if (!alloc_cpumask_var(&plug_thread->cpumask, GFP_KERNEL))return -ENOMEM;cpumask_copy(plug_thread->cpumask, cpumask);get_online_cpus();mutex_lock(&smpboot_threads_lock);for_each_online_cpu(cpu) {------------------------------------------------遍歷所有online CPU,為每個CPU創建一個percpu的watchdog/x線程。ret = __smpboot_create_thread(plug_thread, cpu);if (ret) {smpboot_destroy_threads(plug_thread);-----------------------------創建失敗則釋放相關資源。free_cpumask_var(plug_thread->cpumask);goto out;}if (cpumask_test_cpu(cpu, cpumask))smpboot_unpark_thread(plug_thread, cpu);--------------------------如果當前CPU不在cpumask中,則清空KTHREAD_SHOULD_PARK,進而調用watchdog_therads的umpark成員函數。}list_add(&plug_thread->list, &hotplug_threads); out:mutex_unlock(&smpboot_threads_lock);put_online_cpus();return ret; }static int __smpboot_create_thread(struct smp_hotplug_thread *ht, unsigned int cpu) {struct task_struct *tsk = *per_cpu_ptr(ht->store, cpu);struct smpboot_thread_data *td;if (tsk)return 0;td = kzalloc_node(sizeof(*td), GFP_KERNEL, cpu_to_node(cpu));if (!td)return -ENOMEM;td->cpu = cpu;td->ht = ht;tsk =kthread_create_on_cpu(smpboot_thread_fn, td, cpu,ht->thread_comm);-----------------------------------------在指定CPU上創建watchdog/x線程,處理函數為smpboot_thread_fn()。if (IS_ERR(tsk)) {kfree(td);return PTR_ERR(tsk);}/** Park the thread so that it could start right on the CPU* when it is available.*/kthread_park(tsk);--------------------------------------------------------在CPU上立即啟動watchdog/x線程。get_task_struct(tsk);-----------------------------------------------------增加對線程的引用計數。*per_cpu_ptr(ht->store, cpu) = tsk;---------------------------------------store存放線程結構體指針的指針。if (ht->create) { if (!wait_task_inactive(tsk, TASK_PARKED))WARN_ON(1);elseht->create(cpu);}return 0; } static int smpboot_thread_fn(void *data) {struct smpboot_thread_data *td = data;struct smp_hotplug_thread *ht = td->ht;while (1) {set_current_state(TASK_INTERRUPTIBLE);preempt_disable();if (kthread_should_stop()) {----------------------------------------如果可以終止線程,調用cleanup,退出線程。__set_current_state(TASK_RUNNING);preempt_enable();/* cleanup must mirror setup */if (ht->cleanup && td->status != HP_THREAD_NONE)ht->cleanup(td->cpu, cpu_online(td->cpu));kfree(td);return 0;}if (kthread_should_park()) {----------------------------------------如果KTHREAD_SHOULD_PARK置位,調用park()暫停進程執行。__set_current_state(TASK_RUNNING);preempt_enable();if (ht->park && td->status == HP_THREAD_ACTIVE) {BUG_ON(td->cpu != smp_processor_id());ht->park(td->cpu);td->status = HP_THREAD_PARKED;}kthread_parkme();/* We might have been woken for stop */continue;}BUG_ON(td->cpu != smp_processor_id());/* Check for state change setup */switch (td->status) {case HP_THREAD_NONE:-----------------------------------------------相當于第一次運行,調用setup()進行初始化操作。__set_current_state(TASK_RUNNING);preempt_enable();if (ht->setup)ht->setup(td->cpu);td->status = HP_THREAD_ACTIVE;continue;case HP_THREAD_PARKED:---------------------------------------------從parked狀態恢復。__set_current_state(TASK_RUNNING);preempt_enable();if (ht->unpark)ht->unpark(td->cpu);td->status = HP_THREAD_ACTIVE;continue;}if (!ht->thread_should_run(td->cpu)) {-----------------------------如果不需要進程運行,schedule()主動放棄CPU給其他線程使用。preempt_enable_no_resched();schedule();} else {__set_current_state(TASK_RUNNING);preempt_enable();ht->thread_fn(td->cpu);----------------------------------------調用struct smpboot_thread_fn->thread_fn及watchdog(),進行喂狗操作。}} }void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)----將創建的內核線程移除操作。 {get_online_cpus();mutex_lock(&smpboot_threads_lock);list_del(&plug_thread->list);smpboot_destroy_threads(plug_thread);mutex_unlock(&smpboot_threads_lock);put_online_cpus();free_cpumask_var(plug_thread->cpumask); }static void smpboot_destroy_threads(struct smp_hotplug_thread *ht) {unsigned int cpu;/* We need to destroy also the parked threads of offline cpus */for_each_possible_cpu(cpu) {struct task_struct *tsk = *per_cpu_ptr(ht->store, cpu);if (tsk) {kthread_stop(tsk);put_task_struct(tsk);*per_cpu_ptr(ht->store, cpu) = NULL;}} }

?

1.3 hrtimer看門狗

?在分析了喂狗線程watchdog/x之后,再來分析看門狗是如何實現的?

看門狗是通過啟動一個周期為4秒的hrtimer來實現的,這個hrtimer和CPU綁定,使用的變量都是percpu的。確保每個CPU之間不相互干擾。

每次hrtimer超時,都會喚醒watchdog/x線程,并進行一次喂狗操作。

因為hrtimer超時函數在軟中斷中調用,在中斷產生后會比線程優先得到執行。

所以在watchdog/x線程沒有得到執行的情況下,通過is_softlockup()來判斷看門狗是否超過20秒沒有得到喂狗。

static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) {unsigned long touch_ts = __this_cpu_read(watchdog_touch_ts);struct pt_regs *regs = get_irq_regs();int duration;int softlockup_all_cpu_backtrace = sysctl_softlockup_all_cpu_backtrace;if (atomic_read(&watchdog_park_in_progress) != 0)return HRTIMER_NORESTART;/* kick the hardlockup detector */watchdog_interrupt_count();------------------------------------------------------------------沒產生一次中斷,hrtimer_interrupts計數加1.hrtimer_interrupts記錄了產生hrtimer的次數。/* kick the softlockup detector */wake_up_process(__this_cpu_read(softlockup_watchdog));---------------------------------------喚醒watchdog/x線程,進行喂狗操作。/* .. and repeat */hrtimer_forward_now(hrtimer, ns_to_ktime(sample_period));------------------------------------重新設置超時點,形成周期性時鐘。 ... duration = is_softlockup(touch_ts);----------------------------------------------------------返回非0表示,看門狗超時。if (unlikely(duration)) {--------------------------------------------------------------------看門狗超時情況的處理。 if (kvm_check_and_clear_guest_paused())return HRTIMER_RESTART;/* only warn once */if (__this_cpu_read(soft_watchdog_warn) == true) { if (__this_cpu_read(softlockup_task_ptr_saved) !=current) {__this_cpu_write(soft_watchdog_warn, false);__touch_watchdog();}return HRTIMER_RESTART;}if (softlockup_all_cpu_backtrace) { if (test_and_set_bit(0, &soft_lockup_nmi_warn)) {/* Someone else will report us. Let's give up */__this_cpu_write(soft_watchdog_warn, true);return HRTIMER_RESTART;}}pr_emerg("BUG: soft lockup - CPU#%d stuck for %us! [%s:%d]\n",smp_processor_id(), duration,current->comm, task_pid_nr(current));-------------------------------------------------打印哪個CPU被卡死duration秒,以及死在哪個進程。__this_cpu_write(softlockup_task_ptr_saved, current);print_modules();print_irqtrace_events(current);-----------------------------------------------------------顯示開關中斷、軟中斷信息,禁止中斷和軟中斷也是造成soft lockup的一個原因。if (regs)---------------------------------------------------------------------------------有寄存器顯示寄存器信息,同時顯示棧信息。show_regs(regs);elsedump_stack();if (softlockup_all_cpu_backtrace) { trigger_allbutself_cpu_backtrace();clear_bit(0, &soft_lockup_nmi_warn);/* Barrier to sync with other cpus */smp_mb__after_atomic();}add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);if (softlockup_panic)---------------------------------------------------------------------如果定義softlockup_panic則進入panic()。panic("softlockup: hung tasks");__this_cpu_write(soft_watchdog_warn, true);} else__this_cpu_write(soft_watchdog_warn, false);return HRTIMER_RESTART; }

? static void watchdog_interrupt_count(void)
? {
? ? ? __this_cpu_inc(hrtimer_interrupts);
? }

static int is_softlockup(unsigned long touch_ts) {unsigned long now = get_timestamp();if ((watchdog_enabled & SOFT_WATCHDOG_ENABLED) && watchdog_thresh){/* Warn about unreasonable delays. */if (time_after(now, touch_ts + get_softlockup_thresh()))return now - touch_ts;}return 0; }

?

2. 對watchdog的設置

?對watchdog行為的設置有兩個途徑:通過命令行傳入參數和通過proc設置。

2.1 通過命令行設置

通過命令行傳入參數,可以對soft lockup進行開關設置、超時過后是否panic等等行為。

static int __init softlockup_panic_setup(char *str) {softlockup_panic = simple_strtoul(str, NULL, 0);return 1; } __setup("softlockup_panic=", softlockup_panic_setup);static int __init nowatchdog_setup(char *str) {watchdog_enabled = 0;return 1; } __setup("nowatchdog", nowatchdog_setup);static int __init nosoftlockup_setup(char *str) {watchdog_enabled &= ~SOFT_WATCHDOG_ENABLED;return 1; } __setup("nosoftlockup", nosoftlockup_setup);#ifdef CONFIG_SMP static int __init softlockup_all_cpu_backtrace_setup(char *str) {sysctl_softlockup_all_cpu_backtrace =!!simple_strtol(str, NULL, 0);return 1; } __setup("softlockup_all_cpu_backtrace=", softlockup_all_cpu_backtrace_setup); static int __init hardlockup_all_cpu_backtrace_setup(char *str) {sysctl_hardlockup_all_cpu_backtrace =!!simple_strtol(str, NULL, 0);return 1; } __setup("hardlockup_all_cpu_backtrace=", hardlockup_all_cpu_backtrace_setup); #endif

?

2.2 通過sysfs節點調節watchdog

?watchdog相關的配置還可以通過proc文件系統進行配置。

/proc/sys/kernel/nmi_watchdog-------------------------hard lockup開關,proc_nmi_watchdog()。 /proc/sys/kernel/soft_watchdog------------------------soft lockup開關,proc_soft_watchdog()。 /proc/sys/kernel/watchdog-----------------------------watchdog總開關,proc_watchdog()。 /proc/sys/kernel/watchdog_cpumask---------------------watchdog cpumaks,proc_watchdog_cpumask()。 /proc/sys/kernel/watchdog_thresh----------------------watchdog超時閾值設置,proc_watchdog_thresh()。

?

3. 定位soft lockup異常

引起soft lockup的原因一般是死循環或者死鎖, 死循環可以通過棧回溯找到問題點;死鎖問題需要打開內核的lockdep功能。

打開內核的lockdep功能可以參考《Linux死鎖檢測-Lockdep》。

下面看一個while(1)引起的soft lockup異常分析:

[ 5656.032325] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [cat:157]-----------------------CPU、進程等信息粗略定位。 [ 5656.039314] Modules linked in: [ 5656.042386] [ 5656.042386] CURRENT PROCESS: [ 5656.042386] [ 5656.048229] COMM=cat PID=157 [ 5656.051117] TEXT=00008000-000c5a68 DATA=000c6f1c-000c7175 BSS=000c7175-000c8000 [ 5656.058432] USER-STACK=7fc1ee50 KERNEL-STACK=bd0b7080 [ 5656.058432] [ 5656.065069] PC: 0x8032a1b2 (clk_summary_show+0x62/0xb4)--------------------------------------------PC指向出問題的點,更加精確的定位。 [ 5656.070302] LR: 0x8032a186 (clk_summary_show+0x36/0xb4) [ 5656.075531] SP: 0xbd8b1b74... [ 5656.217622] Call Trace:-----------------------------------------------------------------------------------------通過Call Trace,可以了解如何做到PC指向的問題點的。來龍去脈一目了然。 [<80155c5e>] seq_read+0xc2/0x46c [<802826ac>] full_proxy_read+0x58/0x98 [<8013239c>] do_readv_writev+0x31c/0x384 [<80132458>] vfs_readv+0x54/0x8c [<80160b52>] default_file_splice_read+0x166/0x2b0 [<801606ee>] do_splice_to+0x76/0xb0 [<801607de>] splice_direct_to_actor+0xb6/0x21c [<801609c2>] do_splice_direct+0x7e/0xa8 [<80132a5a>] do_sendfile+0x21a/0x45c [<80133776>] SyS_sendfile64+0xf6/0xfc [<80046186>] csky_systemcall+0x96/0xe0

?

轉載于:https://www.cnblogs.com/arnoldlu/p/10338850.html

總結

以上是生活随笔為你收集整理的Linux soft lockup分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

日韩av不卡播放 | 成人午夜电影久久影院 | 98精品国产自产在线观看 | 一区二区三区韩国免费中文网站 | 9色在线视频 | 成人在线黄色 | 欧美作爱视频 | 成人黄色av网站 | 亚洲成人精品在线观看 | 国产小视频在线免费观看视频 | 国产永久免费观看 | 国产精品门事件 | 91网免费观看| 伊人久操 | 久久亚洲综合色 | 九九九热精品免费视频观看 | 涩涩色亚洲一区 | 丁香影院在线 | 久久久免费视频播放 | 亚洲视频久久久久 | 四虎最新入口 | 天天艹天天 | 中国一级片视频 | 超碰激情在线 | 在线观看日韩精品视频 | 色天堂在线视频 | 国产天天爽 | 成人羞羞视频在线观看免费 | 国产伦精品一区二区三区无广告 | 久久国产精品免费看 | 日韩久久电影 | 高清久久久久久 | 久久久九九 | 午夜骚影| 国产成人精品999在线观看 | 日韩深夜在线观看 | 国产麻豆成人传媒免费观看 | 91av久久| 91av精品 | 婷婷激情欧美 | 开心激情五月网 | 亚洲激情影院 | 精精国产xxxx视频在线播放 | 久久国产精品影视 | 国产xxxx做受性欧美88 | 精品人人爽 | 亚洲一区二区三区在线看 | 国产精品久久99精品毛片三a | 日韩在线观看第一页 | 国产福利91精品一区 | 在线观看亚洲专区 | 美女性爽视频国产免费app | 国产精品久久在线观看 | 91九色精品国产 | 91夜夜夜 | 91原创在线观看 | 激情婷婷在线观看 | 国产日韩欧美在线一区 | 五月天婷婷在线观看视频 | 日本午夜在线亚洲.国产 | 西西444www大胆高清视频 | 涩涩网站免费 | 久草免费在线视频 | 欧美国产日韩一区二区三区 | 草久在线观看视频 | 99re8这里有精品热视频免费 | 久草网站在线观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 91九色蝌蚪视频在线 | 久久久久免费电影 | 国产成人精品综合久久久久99 | 狠狠操狠狠干2017 | 成人免费电影 | 国产黄色大片免费看 | 亚州av成人 | 不卡av在线免费观看 | 97网在线观看 | 亚洲精品在线视频播放 | 亚洲综合小说电影qvod | 欧美了一区在线观看 | 欧美激情综合色综合啪啪五月 | 欧美日韩不卡在线观看 | 日本黄网站 | 日韩激情在线视频 | 日韩电影在线观看中文字幕 | 欧美日韩在线观看视频 | 国产精品男女啪啪 | 99看视频在线观看 | 成人国产精品久久久春色 | 中文字幕在线观看资源 | 欧美性做爰猛烈叫床潮 | 成人黄色大片 | 一本一本久久a久久精品牛牛影视 | 欧美视频一区二 | 国产99久久99热这里精品5 | 在线视频 影院 | www.色五月| 9999在线视频| 免费国产黄线在线观看视频 | 婷婷色狠狠 | 亚洲成人黄色在线观看 | 日日摸日日| 国产一级特黄毛片在线毛片 | 日本福利视频在线 | 91爱看片 | 视频91| 欧美色婷婷 | 国产免费视频一区二区裸体 | 美女久久一区 | 亚洲成av人电影 | 亚洲区精品| 国产精品成人在线观看 | 久久婷婷精品视频 | 黄色视屏在线免费观看 | 色综合天天综合 | 蜜臀久久99精品久久久无需会员 | 亚洲一区二区天堂 | 高清精品久久 | 91免费视频网站在线观看 | 欧美日韩国产精品一区 | 精品91视频 | 97超碰香蕉 | av最新资源 | 久久综合九色综合久久久精品综合 | 在线香蕉视频 | 亚州av网站 | 黄色特一级| 日韩精品黄 | 午夜性生活| 亚洲国产午夜视频 | 99久久久久久久久久 | 免费国产ww | 在线播放精品一区二区三区 | 999视频网站 | 日日夜夜人人天天 | 久久综合色天天久久综合图片 | 一区二区三区四区五区六区 | 久久久国产精华液 | 国产91精品在线播放 | 国产亚洲精品久久久久久无几年桃 | 久草在线最新视频 | 四虎在线永久免费观看 | 999久久国精品免费观看网站 | 天天亚洲| 在线观看国产www | 98超碰在线观看 | 亚洲aⅴ在线观看 | 久久色在线播放 | 国产剧在线观看片 | 日韩特黄av | 成人国产精品电影 | 日日综合网 | 国产黄色在线看 | 西西4444www大胆无视频 | 九九天堂| 区一区二在线 | 999久久久免费视频 午夜国产在线观看 | 亚洲精品视频中文字幕 | 久草在线中文视频 | 超碰国产在线播放 | 欧美精品在线一区二区 | 一区二区不卡视频在线观看 | 97视频资源 | 国产福利一区二区三区在线观看 | 91麻豆网| 激情图片久久 | 免费看日韩 | 国产精品久久久久久久久久免费 | 国产小视频91 | 中文字幕欧美激情 | 精品亚洲免a| 99久久久成人国产精品 | 一区二区三区不卡在线 | 免费国产在线精品 | 97视频一区 | 欧美日韩精 | 日日草夜夜操 | 欧美另类高清 | 国产成人av网址 | 久久久这里有精品 | 在线视频日韩一区 | 亚洲.www | 欧洲精品在线视频 | 91麻豆精品国产91 | 色妞色视频一区二区三区四区 | 国产成人在线免费观看 | 国产无遮挡又黄又爽在线观看 | 激情 婷婷 | 日日草夜夜操 | 国产剧情一区二区在线观看 | 亚洲h在线播放在线观看h | 国产黄a三级三级三级三级三级 | 日韩精品视频免费看 | 国产精品毛片一区 | 婷婷久久精品 | 国产一级免费在线 | 综合网中文字幕 | 人人玩人人添人人澡超碰 | 久久精久久精 | 人人干人人超 | 国产一级二级在线观看 | 久久a国产 | 日本一区二区高清不卡 | 日韩欧美69 | 欧美经典久久 | 6699私人影院 | 国产一区在线不卡 | 综合久久久久久 | 免费av看片 | 国产精品久久电影网 | 国产我不卡 | 久草视频2 | 色资源网免费观看视频 | 欧美日韩国产一二三区 | 黄色aaaaa| 国产精品久久精品 | 制服丝袜欧美 | 久久夜色精品国产欧美一区麻豆 | 在线高清| www.av小说 | 午夜精品久久久久久久99热影院 | 日韩黄色在线观看 | 国产999在线观看 | 午夜视频在线观看一区 | 免费三级a| 91视频国产高清 | 伊人国产视频 | 国产福利中文字幕 | 国产精品 9999 | 91福利区一区二区三区 | 国产精品久久久久久久久久白浆 | 91精品办公室少妇高潮对白 | 99久久久久久 | 国产免费久久 | 欧美日韩在线免费观看 | 久久综合婷婷国产二区高清 | 999视频在线播放 | 日本最大色倩网站www | 亚洲aⅴ一区二区三区 | 亚洲综合国产精品 | 色av男人的天堂免费在线 | 中文字幕在线视频一区 | 麻豆视频在线免费看 | www.黄色网.com| 国产美女黄网站免费 | 欧美伦理一区二区三区 | 国产成人精品女人久久久 | 亚洲精品在线视频播放 | 国产色就色 | av中文字幕免费在线观看 | 探花视频在线观看免费 | 久久看片网站 | 国产v亚洲v | 噜噜色官网 | 3d黄动漫免费看 | 精品国产一区二区三区不卡 | 在线观看中文字幕视频 | 亚洲精品视频在线观看视频 | 国产色女 | 在线免费观看国产精品 | 免费福利在线观看 | 91在线超碰 | 国产精品综合在线观看 | 中文字幕亚洲欧美日韩 | 久久久久网址 | 99久久久久成人国产免费 | 免费网站v | 91精品视频免费在线观看 | 狠日日| 国产成人精品a | 国产福利91精品一区二区三区 | 狠狠狠综合| 免费观看av网站 | 欧洲精品码一区二区三区免费看 | 国产精品不卡在线播放 | 美女精品国产 | 欧美成人一区二区 | 国产精品99久久久久久小说 | 亚洲天堂精品 | 天天射网站 | 亚洲黄色高清 | 久色 网 | av3级在线 | 奇米影视8888在线观看大全免费 | 麻豆免费在线视频 | av观看免费在线 | 国产精品99久久久久久宅男 | 日日夜夜狠狠操 | 美女网站视频久久 | 天天拍天天干 | 亚洲免费观看视频 | 中文字幕在线有码 | 黄色网www| 91最新在线视频 | 午夜精品久久久久久久爽 | 欧美一级网站 | 久久久久久久免费观看 | 欧美91精品| 精品视频999| 久久激情婷婷 | 丁香久久久 | 黄色av电影 | 国产对白av | 亚洲砖区区免费 | 黄色av电影 | 色综合久久五月 | 久久美女免费视频 | 精品一区二区在线免费观看 | 亚洲国产欧美在线人成大黄瓜 | 久久精久久精 | 在线观看91精品视频 | 日韩欧美视频二区 | 在线观看免费版高清版 | 玖玖玖国产精品 | 国产又黄又猛又粗 | 一区二区三区在线播放 | 免费三级av | 欧美日韩免费在线视频 | 97视频入口免费观看 | 亚洲自拍av在线 | 人人射 | 亚洲国产精品成人女人久久 | 亚洲一区二区三区在线看 | 女人魂免费观看 | 精品国产乱码久久久久久浪潮 | 日韩有码在线播放 | 岛国av在线 | 亚洲精品国偷自产在线91正片 | av中文字幕免费在线观看 | 二区三区av| 色噜噜在线观看 | 超碰在线最新网址 | 中文字幕国产 | 国内丰满少妇猛烈精品播 | 久久综合福利 | 亚洲欧美在线视频免费 | 色婷婷av国产精品 | 在线观看完整版免费 | 欧美成人精品欧美一级乱黄 | 韩国av在线 | 亚洲激情网站免费观看 | 国产精品九九九 | 国产精品一区二区吃奶在线观看 | 午夜成人免费影院 | 中文字幕专区高清在线观看 | 色人久久 | 在线观看亚洲视频 | 美女福利视频网 | 狠狠色狠狠色 | 久久伊人八月婷婷综合激情 | 成年人免费在线播放 | 国产又粗又猛又黄视频 | 天天做综合网 | 天天操天天操天天操天天操天天操天天操 | www五月天com| 欧美乱熟臀69xxxxxx | 成 人 免费 黄 色 视频 | 岛国大片免费视频 | 69xx视频| 色婷婷色| 久久久www成人免费精品 | www天天操| 国产精品久久久久9999 | 亚洲黄色免费在线看 | 手机在线中文字幕 | 欧美精品乱码久久久久久按摩 | 国产精品福利在线 | 男女男视频 | 在线观看一级片 | 成年一级片 | 人人干天天干 | 五月婷婷中文网 | 国产成人精品999在线观看 | 91精品国产91久久久久福利 | 久久久久亚洲精品国产 | 亚洲精品在线免费看 | 99欧美| 九九九九精品九九九九 | 91看片淫黄大片91 | 久久久精品视频成人 | 中文字幕一区二区三 | 亚洲 欧美 国产 va在线影院 | av观看在线观看 | 亚洲精品综合一二三区在线观看 | 日韩在线高清 | 天天射天天射天天射 | 欧美日本不卡 | 激情五月视频 | 日韩中文字幕免费看 | 91精品国自产在线观看欧美 | 在线观看日韩一区 | 国产欧美中文字幕 | 99产精品成人啪免费网站 | 91精品国自产拍天天拍 | 超碰在线网 | 亚洲精品美女免费 | 久久夜色精品国产欧美乱 | 亚洲激情在线播放 | 国产精品人人做人人爽人人添 | 欧美美女视频在线观看 | 亚洲一级性 | 欧美韩国日本在线观看 | 伊人伊成久久人综合网小说 | 久久婷婷国产色一区二区三区 | 五月婷婷久久综合 | 在线播放视频一区 | 手机av电影在线观看 | 日日爽天天操 | 人人爱人人做人人爽 | 欧美福利片在线观看 | 在线成人av | 99久久久国产精品免费观看 | 超碰成人网 | 免费在线观看国产黄 | 一区二区三区四区久久 | 精品资源在线 | 91传媒视频在线观看 | 亚洲精品视频在线观看免费视频 | 婷婷天天色 | 国产在线高清视频 | 国产精品观看 | 国外调教视频网站 | 国产91精品一区二区绿帽 | 中文字幕国内精品 | 国产精品 日韩 欧美 | 国产成人精品亚洲a | 在线中文视频 | 99久e精品热线免费 99国产精品久久久久久久久久 | 国模视频一区二区三区 | 久草电影免费在线观看 | 精品国产伦一区二区三区 | 美女免费视频一区二区 | 亚洲国产日本 | 久久精品日产第一区二区三区乱码 | 国产一区二区高清 | 99精品视频免费 | 在线视频国产区 | 三级av在线播放 | 国产小视频你懂的在线 | 日韩在线无 | 4p变态网欧美系列 | 久久伦理电影网 | 亚欧洲精品视频在线观看 | 97在线观视频免费观看 | 天天操夜夜想 | 国产精品第三页 | 国产精品黑丝在线观看 | 国产精品麻豆免费版 | 国产精品一区二区精品视频免费看 | 国产亚洲婷婷免费 | 高清国产午夜精品久久久久久 | 国产一区视频免费在线观看 | 国产精品久久久久免费观看 | 日日躁你夜夜躁你av蜜 | 亚洲高清免费在线 | 激情伊人 | 永久黄网站色视频免费观看w | 奇米影视777影音先锋 | 亚洲视频免费在线观看 | 国产亚洲视频中文字幕视频 | 制服丝袜欧美 | 亚洲欧洲一级 | 又长又大又黑又粗欧美 | 成人av免费播放 | 午夜视频亚洲 | 天天操天天爱天天爽 | 国产欧美高清 | 日日夜夜精品网站 | 亚洲一区二区精品视频 | 国产在线精品区 | 中文字幕一区二区三区在线观看 | 久久99精品久久久久久秒播蜜臀 | 国产精品观看视频 | 高清精品久久 | 国产一卡久久电影永久 | 欧美日韩精品影院 | 亚洲精品在线免费播放 | 四虎国产精品成人免费4hu | 在线视频专区 | 中文字幕在线观看第二页 | 欧美另类重口 | 国产精品18久久久久久首页狼 | 男女全黄一级一级高潮免费看 | 欧美精品三级 | 久久国产精品免费一区 | 国产福利一区在线观看 | www.成人sex | 色婷婷视频 | 黄色软件在线观看 | 欧美一级片免费 | 91丨九色丨蝌蚪丨老版 | 日韩电影在线看 | www.天天射.com | 国产精品日韩欧美 | 亚洲精品男人的天堂 | 久久久免费视频播放 | 丝袜足交在线 | 久久成人国产精品入口 | 99色国产| 国产九色视频在线观看 | 精品视频专区 | 在线视频1卡二卡三卡 | 亚洲精欧美一区二区精品 | 国产精品久久久久免费 | 国产成人不卡 | 国产午夜精品av一区二区 | 日韩在线视频在线观看 | 国产字幕av| 黄色一集片 | 色综合久久久久久久久五月 | 久久免费中文视频 | 天天综合天天做 | 最新av在线免费观看 | 在线观看亚洲电影 | 97电影手机版 | 丁香午夜婷婷 | 亚洲人人射 | 国产日韩欧美在线免费观看 | 精品一二三区 | 欧美成人理伦片 | 日夜夜精品视频 | 99久久久| 麻豆91在线观看 | 91av视频导航 | 久久综合狠狠 | 久久99这里只有精品 | 天天干夜夜 | 久草资源在线 | 欧美日韩国产二区 | 99久久er热在这里只有精品15 | 日韩精品一区二区久久 | 国产国产人免费人成免费视频 | 伊人影院99| 成人91视频 | 日韩成人免费在线观看 | 91久色蝌蚪| 亚洲成人精品久久久 | 国产免码va在线观看免费 | 一区二区三区免费在线播放 | 97碰碰视频 | 99久久免费看 | av大全在线看 | 成人av电影在线 | 在线欧美a | 伊人婷婷色 | 欧美另类巨大 | 成人黄色在线观看视频 | 十八岁免进欧美 | 亚洲综合色网站 | 一本一本久久a久久 | 麻豆免费在线播放 | 国产看片网站 | av电影av在线 | 久草在线网址 | 成人免费一级 | 国产在线高清 | 日本最新高清不卡中文字幕 | 日韩三级视频在线观看 | 欧美日韩视频在线一区 | 久久免费播放视频 | 91av观看| 国产69熟 | 成人黄色在线观看视频 | 日日干天天爽 | 国产在线a视频 | 91精品国产高清自在线观看 | 国产一区二区三区免费在线观看 | 在线精品一区二区 | 91网站观看 | 九色精品 | 国产精品2020 | 国产精品永久久久久久久www | 亚洲午夜av久久乱码 | 字幕网在线观看 | 在线观看色网 | 精品久久一区 | 天天干,天天操,天天射 | 91久久电影| 最近免费中文视频 | 欧美日韩aa| 亚洲视频精品在线 | 亚洲自拍偷拍色图 | 中文字幕a∨在线乱码免费看 | 久久夜色精品国产欧美一区麻豆 | 玖玖在线免费视频 | 在线播放一区二区三区 | 日韩成人欧美 | 精品一区电影 | 96精品在线| 免费a视频在线 | 美女网站在线播放 | 黄色网大全 | 日日成人网 | 色吧久久| 国产小视频精品 | 久久影院一区 | 国产精品久久久久久久久久久久午夜片 | 久艹在线免费观看 | 久久99亚洲网美利坚合众国 | 久久综合狠狠综合久久激情 | av视屏在线播放 | 欧美在线aa | 97国产电影 | 视频在线亚洲 | 欧美有色| 精品视频久久久久久 | 69绿帽绿奴3pvideos | 91私密视频| 日本最大色倩网站www | 国产一区二区三区免费视频 | 国产精品淫| 亚在线播放中文视频 | 国产在线91在线电影 | 亚洲国产手机在线 | 狠狠色丁香婷婷综合欧美 | 日韩欧美视频一区二区 | 一级久久精品 | 国色天香永久免费 | 天天干天天做 | 婷婷色网址 | 最近日本mv字幕免费观看 | 日韩理论| 久久一区二| 亚洲一区日韩 | 开心丁香婷婷深爱五月 | 国产精品国内免费一区二区三区 | 日本女人在线观看 | 999久久久欧美日韩黑人 | 色婷婷国产精品一区在线观看 | 久久 在线 | 在线观看岛国片 | 久久激五月天综合精品 | 日韩av电影免费在线观看 | 婷婷久久丁香 | 香蕉手机在线 | 国产成人黄色 | 91精品视屏 | 国产在线无 | 国产日本亚洲 | 免费在线电影网址大全 | 97超碰福利久久精品 | 中文字幕精品一区二区精品 | 五月花激情 | 操操操操网 | 成人午夜性影院 | 精品久久久成人 | 久久夜色网 | 91精品国自产在线观看 | www.夜夜夜| 久久久久久99精品 | 国产亚洲视频系列 | 日本精品视频在线观看 | 91九色成人蝌蚪首页 | 蜜臀av.com| 久久免费av电影 | 婷婷在线五月 | 欧洲成人av | 免费久久99精品国产婷婷六月 | 91精品久久久久久综合五月天 | 99超碰在线观看 | 久草在线99| 久久开心激情 | 国产精品中文在线 | 欧美精品一区二区三区四区在线 | 欧美亚洲另类在线视频 | 国产亚洲精品久久久久久大师 | 九九热久久久 | 成人网在线免费视频 | 99c视频高清免费观看 | 久久激情日本aⅴ | www.av在线播放 | 久久国产免费看 | 免费在线观看成人av | 国产网站色 | 欧美精彩视频 | av免费在线观看网站 | 日韩国产欧美在线播放 | 亚洲v欧美v国产v在线观看 | 欧美日韩一级久久久久久免费看 | 人人干人人爽 | av电影亚洲| 日日夜夜精品免费视频 | 日本精品久久久久久 | 国产成人免费观看 | www.久久婷婷 | 日韩精品一区二区三区三炮视频 | 国产精品网站一区二区三区 | 国产精品日韩高清 | 国产精品区免费视频 | 91视频在线看 | 97精品超碰一区二区三区 | 91久久精品一区二区二区 | 91色欧美 | 天天操天天射天天操 | 免费能看的av | 久草精品在线观看 | 久操视频在线播放 | av网站在线免费观看 | 91精品福利在线 | 国产精品免费一区二区三区 | 99r精品视频在线观看 | 午夜在线免费观看 | 国产一区二区免费在线观看 | 国产小视频在线免费观看视频 | 99久久精品免费一区 | 91网址在线观看 | 国产精品18videosex性欧美 | 欧美日韩一区二区三区在线免费观看 | 免费av视屏 | 丝袜美女在线 | 精品久久久久久久久久久久久久久久久久 | 亚洲理论片在线观看 | 在线黄色免费av | 人人爽人人av | 女人18片毛片90分钟 | 精品自拍sae8—视频 | 色爱区综合激月婷婷 | 高潮久久久| 黄色国产高清 | 国产成人99久久亚洲综合精品 | 日韩av电影中文字幕 | 亚洲永久精品国产 | 免费av网站在线看 | 国产黑丝一区二区三区 | 色噜噜在线观看视频 | 夜夜骑天天操 | 天天爱av导航 | 在线观看视频日韩 | 中中文字幕av在线 | 久久久久久久久久电影 | 久久亚洲免费 | 精品福利视频在线观看 | 激情丁香综合五月 | 中文国产在线观看 | 在线视频日韩欧美 | 国产九九九九九 | 在线中文字幕播放 | 又长又大又黑又粗欧美 | 玖玖玖在线观看 | 日韩高清不卡在线 | 国产精品乱码高清在线看 | 69亚洲视频| 久久久久久久久久久影视 | 中文在线免费观看 | 国产精品自产拍在线观看蜜 | 深爱激情综合网 | 免费看成人片 | 在线天堂中文www视软件 | 国产探花在线看 | 永久免费在线 | 午夜久操 | 五月婷婷视频在线 | 麻豆播放| 日韩av免费观看网站 | 玖玖综合网 | 狠狠狠狠狠狠狠狠 | 国产v在线观看 | 91探花系列在线播放 | 日韩精品 在线视频 | 综合网天天射 | 久久手机精品视频 | 美女免费视频一区二区 | 人人爽人人爽人人 | 亚洲精品久久久久久久不卡四虎 | 91视频 - v11av | 黄色大片网 | 亚州精品国产 | 免费在线观看av的网站 | 日韩av免费一区 | 日韩v在线91成人自拍 | 日韩综合色 | 亚洲国产三级在线观看 | 亚洲欧美激情精品一区二区 | 91精品黄色 | 国产精品久久久一区二区三区网站 | 黄色毛片一级片 | 天天曰夜夜操 | 国产黄色大片免费看 | 日韩精品久久久久久久电影99爱 | 特级毛片网 | 国产一级二级三级在线观看 | 91网站免费观看 | 粉嫩高清一区二区三区 | 天天曰天天射 | 日韩亚洲欧美中文字幕 | 天天激情综合网 | 夜夜视频资源 | 国产福利av在线 | 色91在线视频 | 天天干 天天摸 天天操 | 亚洲精品高清视频 | 日韩综合第一页 | 91精品国产91久久久久福利 | 欧美日韩在线观看一区二区 | 成人一级免费电影 | 日本久久久久久科技有限公司 | a√天堂中文在线 | 91av视频导航| 亚洲 欧美 另类人妖 | 国产精品久久久久久一二三四五 | 久黄色| www.五月天激情 | 九九久久精品 | 天天激情站 | 亚洲午夜久久久综合37日本 | 一区二区视 | 免费成人av在线看 | 天堂中文在线视频 | 久久久影视 | 五月婷婷操 | 97国产大学生情侣白嫩酒店 | 欧美激情综合五月色丁香 | 99视频网址| 国产激情免费 | 2023国产精品自产拍在线观看 | 91精品国产高清自在线观看 | 天天天天天天干 | 亚洲区视频在线 | 色婷婷午夜 | 欧美综合色 | 狠狠色丁香婷婷综合欧美 | av成人亚洲 | 91香蕉国产在线观看软件 | 日韩专区在线 | 日韩精品欧美精品 | 国产精品一区二区免费看 | 久久人网 | 91精品国产自产在线观看 | 欧美一级片 | 丁香高清视频在线看看 | 欧美午夜视频在线 | 91免费版在线观看 | 91插插插网站 | 99国内精品 | 日日日网| 国产午夜一级毛片 | 日韩欧美在线视频一区二区 | 激情婷婷综合网 | 亚洲尺码电影av久久 | 亚洲精品国产拍在线 | 欧美在线视频精品 | 国产精品视频全国免费观看 | 免费视频在线观看网站 | 天天插夜夜操 | 国产在线观看午夜 | 丝袜美腿一区 | www.五月天婷婷.com | 国产精品一区免费在线观看 | 香蕉在线影院 | 色婷婷狠狠五月综合天色拍 | 国产精品久久婷婷六月丁香 | 日韩免费视频线观看 | 99热精品久久 | 五月天网页 | 天天摸天天弄 | 国产在线观看免费观看 | 欧美中文字幕久久 | 涩五月婷婷| 91亚洲精品视频 | 久草在在线视频 | 中文字幕精品www乱入免费视频 | 精品国产色 | 国产五月婷 | 久久成人一区 | 狠狠色丁香婷婷综合久小说久 | 国产在线欧美日韩 | 激情视频在线高清看 | 国产视频精品久久 | 久久一区二区免费视频 | 99精品视频免费全部在线 | a级片久久 | 久久精品美女 | 久久99国产综合精品免费 | 国产91精品一区二区麻豆网站 | 综合色伊人 | 免费在线观看一级片 | 精品视频一区在线观看 | 五月婷婷丁香综合 | 狠狠色噜噜狠狠 | 99精品成人| 成人a视频 | 日韩视频免费看 | 久久手机免费视频 | 日韩欧美在线观看一区二区 | 就要色综合 | 天天色天天干天天色 | 狠狠干.com | 中文字幕乱码一区二区 | 在线国产能看的 | 国产成人精品一区二区三区免费 | 中文字幕日本特黄aa毛片 | 国产小视频在线免费观看 | 美女在线观看av | 美女网站在线播放 | 97色婷婷成人综合在线观看 | 狠狠88综合久久久久综合网 | 久久久久久久久久福利 | 色综合亚洲精品激情狠狠 | 久久综合操 | 国产一级一片免费播放放 | 一区中文字幕电影 | 国产黄色av| 日本一区二区三区视频在线播放 | 麻豆av电影 | 国产成人av免费在线观看 | 国产精品成人在线 | 天天干天天操天天射 | 国产97av | 欧美日韩国产精品一区二区 | 免费在线观看日韩视频 | 国产精品第一页在线观看 | 欧美日韩电影在线播放 | 国产一区二区手机在线观看 | 中文字幕日韩一区二区三区不卡 | 国产福利av在线 | 婷婷九月丁香 | 日韩av电影网站在线观看 | 国产精品www| 精品久久一级片 | 337p日本欧洲亚洲大胆裸体艺术 | a级国产乱理论片在线观看 伊人宗合网 | 欧美精品久久久久久久久久白贞 | 中文av一区二区 | 中文字幕视频一区 | 在线观看中文字幕第一页 | 国产高清一级 | 91黄色免费看 | 欧美91精品国产自产 | 亚洲国产精久久久久久久 | 国内成人精品2018免费看 | 成年人在线免费看视频 | 久久有精品 | 天天操天天透 | 国产日产精品一区二区三区四区 | 九九九电影免费看 | 在线看中文字幕 | 久久精品久久99精品久久 | 国内一区二区视频 | 色五月色开心色婷婷色丁香 | 在线视频观看91 | 中文字幕在线一区观看 | 91色网址| 日韩精品一区二区三区不卡 | 香蕉视频网站在线观看 | 精品91久久久久 | 国产区久久| 国产成人精品久久久 | 国产黄色av | 六月丁香久久 | 丁香六月婷婷 | 视频国产在线 | 色综合天天天天做夜夜夜夜做 | 亚洲电影一区二区 | 亚洲永久精品视频 | 91热| 久久99精品久久久久久久久久久久 | 欧美大片www | 丁香婷婷激情国产高清秒播 | 欧美精品小视频 | 国产一区二区中文字幕 | 中文字幕综合在线 | 国产精品二区在线观看 | 中文字幕乱码在线播放 | 国产一区高清在线观看 | 日韩99热 | 亚洲免费资源 | 国产精品都在这里 | 日韩免费在线观看视频 | 在线国产中文 | 免费97视频 | 亚洲国产精品成人综合 | 久草久热 | 99久久99久久精品 | av日韩av | 最新中文字幕在线观看视频 | 中文字幕人成一区 | 国产你懂的在线 | 久久亚洲私人国产精品va | 99视频国产精品免费观看 | 亚洲欧美视频网站 | 日韩激情视频在线 | 91中文字幕在线播放 | 久久伊人精品天天 | 中文字幕在线观看资源 | 国产精品久久久久三级 | 日韩欧美国产视频 | 在线导航福利 | 精品在线播放视频 | 亚州人成在线播放 | 久久久久久久久久免费 | 欧美日韩视频在线播放 | 久久色在线观看 | 亚州天堂| 九九亚洲视频 | 免费在线观看av网站 | 最新久久免费视频 | 伊人国产在线播放 | 国产中文在线字幕 |