精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux內(nèi)核Crash分析

系統(tǒng) Linux
在工作中經(jīng)常會(huì)遇到一些內(nèi)核crash的情況,本文就是根據(jù)內(nèi)核出現(xiàn)crash后的打印信息,對(duì)其進(jìn)行了分析,使用的內(nèi)核版本為:Linux2.6.32。

在工作中經(jīng)常會(huì)遇到一些內(nèi)核crash的情況,本文就是根據(jù)內(nèi)核出現(xiàn)crash后的打印信息,對(duì)其進(jìn)行了分析,使用的內(nèi)核版本為:Linux2.6.32。

每一個(gè)進(jìn)程的生命周期內(nèi),其生命周期的范圍為幾毫秒到幾個(gè)月。一般都是和內(nèi)核有交互,例如用戶(hù)空間程序使用系統(tǒng)調(diào)用進(jìn)入內(nèi)核空間。這時(shí)使用的不再是用戶(hù)空間的??臻g,使用對(duì)應(yīng)的內(nèi)核棧空間。對(duì)每一個(gè)進(jìn)程來(lái)說(shuō),Linux內(nèi)核都會(huì)把兩個(gè)不同的數(shù)據(jù)結(jié)構(gòu)緊湊的存放在一個(gè)單獨(dú)為進(jìn)程分配的存儲(chǔ)空間中:一個(gè)是內(nèi)核態(tài)的進(jìn)程堆棧,另一個(gè)是緊挨進(jìn)程描述符的數(shù)據(jù)結(jié)構(gòu)thread_info,叫線程描述符。內(nèi)核的堆棧大小一般為8KB,也就是8192個(gè)字節(jié),占用兩個(gè)頁(yè)。在Linux-2.6.32內(nèi)核中thread_info.h文件中有對(duì)內(nèi)核堆棧的定義:

#define THREAD_SIZE               8192

在Linux內(nèi)核中使用下面的聯(lián)合結(jié)構(gòu)體表示一個(gè)進(jìn)程的線程描述符和內(nèi)核棧,在內(nèi)核中文件include/linux/sched.h。

union thread_union {
struct thread_info thread_info;
unsigned long stack[THREAD_SIZE/sizeof(long)];
};

該結(jié)構(gòu)是一個(gè)聯(lián)合體,我們?cè)贑語(yǔ)言書(shū)上看到過(guò)關(guān)于union的解釋?zhuān)谠贑 Programming Language 一書(shū)中對(duì)于聯(lián)合體是這么描述的:

1) 聯(lián)合體是一個(gè)結(jié)構(gòu);

2) 它的所有成員相對(duì)于基地址的偏移量都為0;

3) 此結(jié)構(gòu)空間要大到足夠容納最"寬"的成員;

4) 其對(duì)齊方式要適合其中所有的成員;

通過(guò)上面的描述可知,thread_union結(jié)構(gòu)體的大小為8192個(gè)字節(jié)。也就是stack數(shù)組的大小,類(lèi)型是unsigned long類(lèi)型。由于聯(lián)合體中的成員變量都是占用同一塊內(nèi)存區(qū)域,所以,在平時(shí)寫(xiě)代碼時(shí)總有一個(gè)概念,對(duì)一個(gè)聯(lián)合體的實(shí)例只能使用其中一個(gè)成員變量,否則會(huì)把原先變量給覆蓋掉,這句話(huà)如果正確的話(huà),必須要有一個(gè)前提假設(shè),成員占用的字節(jié)數(shù)相同,當(dāng)成員所占的字節(jié)數(shù)不同時(shí),只會(huì)覆蓋相應(yīng)的字節(jié)。對(duì)于thread_union聯(lián)合體,我們是可以同時(shí)訪問(wèn)這兩個(gè)成員,只要能夠正確獲取到兩個(gè)成員變量的地址。

在內(nèi)核中的某一個(gè)進(jìn)程使用了過(guò)多的??臻g時(shí),內(nèi)核棧就會(huì)溢出到thread_info部分,這將導(dǎo)致嚴(yán)重的問(wèn)題(系統(tǒng)重啟),例如,遞歸調(diào)用的層次太深;在函數(shù)內(nèi)定義的數(shù)據(jù)結(jié)構(gòu)太大。

圖:進(jìn)程中thread_infotask_struct和內(nèi)核棧中的關(guān)系

下面我們看一下thread_info的結(jié)構(gòu)體:

struct thread_info {
unsigned long flags;/* 底層標(biāo)志,*/
int preempt_count;/* 0 =>可搶占, <0 =>bug */
mm_segment_t addr_limit;/* 進(jìn)程地址空間 */
struct task_struct *task;/*當(dāng)前進(jìn)程的task_struct指針 */
struct exec_domain *exec_domain;/*執(zhí)行區(qū)間 */
__u32 cpu;/* 當(dāng)前cpu */
__u32 cpu_domain;/* cpu domain */
struct cpu_context_save cpu_context;/* cpu context */
__u32 syscall;/* syscall number */
__u8 used_cp[16];/* thread used copro */
unsigned long tp_value;

struct crunch_state crunchstate;

union fp_state fpstate __attribute__((aligned(8)));
union vfp_state vfpstate;
#ifdef CONFIG_ARM_THUMBEE
unsigned long thumbee_state;/* ThumbEE Handler Base register */
#endif
struct restart_block restart_block;/*用于實(shí)現(xiàn)信號(hào)機(jī)制*/
};

PS:(1)flag 用于保存各種特定的進(jìn)程標(biāo)志,最重要的兩個(gè)是:TIF_SIGPENDING,如果進(jìn)程有待處理的信號(hào)就置位,TIF_NEED_RESCHED表示進(jìn)程應(yīng)該需要調(diào)度器選擇另一個(gè)進(jìn)程替換本進(jìn)程執(zhí)行。

結(jié)合上面的知識(shí),看下當(dāng)內(nèi)核打印堆棧信息時(shí),都打印了上面信息。下面的打印信息是工作中遇到的一種情況,打印了內(nèi)核的堆棧信息,PC指針在dev_get_by_flags中,不能訪問(wèn)的內(nèi)核虛地址為45685516,內(nèi)核中一般可訪問(wèn)的地址都是以0xCXXXXXXX開(kāi)頭的地址。

Unable to handle kernel paging request at virtual address 45685516
pgd = c65a4000
[45685516] *pgd=00000000
Internal error: Oops: 1 [#1]
last sysfs file: /sys/devices/form/tpm/cfg_l3/l3_rule_add
Modules linked in: splic mmp(P)
CPU: 0 Tainted: P (2.6.32.11 #42)
PC is at dev_get_by_flags+0xfc/0x140
LR is at dev_get_by_flags+0xe8/0x140
pc : [<c06bee24>] lr : [<c06bee10>] psr: 20000013
sp : c07e9c28 ip : 00000000 fp : c07e9c64
r10: c6bcc560 r9 : c646a220 r8 : c66a0000
r7 : c6a00000 r6 : c0204e56 r5 : 30687461 r4 : 45685516
r3 : 00000000 r2 : 00000010 r1 : c0204e56 r0 : ffffffff
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005397f Table: 065a4000 DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc07e8270)
Stack: (0xc07e9c28 to 0xc07ea000)
9c20: c0204e56 c6a00000 45685516 c69ffff0 c69ffff0 c69ffff0
9c40: c6a00000 30687461 c66a0000 c6a00000 00000007 c64b210c c07e9d24 c07e9c68
9c60: c071f764 c06bed38 c66a0000 c66a0000 c6a00000 c6a00000 c66a0000 c6a00000
9c80: c07e9cfc c07e9c90 c03350d4 c0334b2c 00000034 00000006 00000100 c64b2104
9ca0: 0000c4fb c0243ece c66a0000 c0beed04 c033436c c646a220 c07e9cf4 00000000
9cc0: c66a0000 00000003 c0bee8e8 c0beed04 c07e9d24 c07e9ce0 c06e4f5c 00004c68
9ce0: 00000000 faa9fea9 faa9fea9 00000000 00000000 c6bcc560 c0335138 c646a220
9d00: c66a0000 c64b2104 c085ffbc c66a0000 c0bee8e8 00000000 c07e9d54 c07e9d28
9d20: c071f9a0 c071ebc0 00000000 c071ebb0 80000000 00000007 c67fb460 c646a220
9d40: c0bee8c8 00000608 c07e9d94 c07e9d58 c002a100 c071f84c c0029bb8 80000000
9d60: c07e9d84 c0beee0c c0335138 c66a0000 c646a220 00000000 c4959800 c4959800
9d80: c67fb460 00000000 c07e9dc4 c07e9d98 c078f0f4 c0029bc8 00000000 c0029bb8
9da0: 80000000 c07e9dbc c6b8d340 c66a0520 00000000 c646a220 c07e9dec c07e9dc8
9dc0: c078f450 c078effc 00000000 c67fb460 c6b8d340 00000000 c67fb460 c64b20f2
9de0: c07e9e24 c07e9df0 c078fb60 c078f130 00000000 c078f120 80000000 c0029a94
9e00: 00000806 c6b8d340 c0bee818 00000001 00000000 c4959800 c07e9e64 c07e9e28
9e20: c002a030 c078f804 c64b2070 00000000 c64b2078 ffc45000 c64b20c2 c085c2dc
9e40: 00000000 c085c2c0 00000000 c0817398 00086c2e c085c2c4 c07e9e9c c07e9e68
9e60: c06c2684 c0029bc8 00000001 00000040 00000000 c085c2dc c085c2c0 00000001
9e80: 0000012c 00000040 c085c2d0 c0bee818 c07e9ed4 c07e9ea0 c00284e0 c06c2608
9ea0: bf00da5c 00086c30 00000000 00000001 c097e7d4 c07e8000 00000100 c08162d8
9ec0: 00000002 c097e7a0 c07e9f14 c07e9ed8 c00283d0 c0028478 56251311 00023c88
9ee0: c07e9f0c 00000003 c08187ac 00000018 00000000 01000000 c07ebc70 00023cbc
9f00: 56251311 00023c88 c07e9f24 c07e9f18 c03391e8 c0028348 c07e9f3c c07e9f28
9f20: c0028070 c03391b0 ffffffff 0000001f c07e9f94 c07e9f40 c002d4d0 c0028010
9f40: 00000000 00000001 c07e9f88 60000013 c07e8000 c07ebc78 c0868784 c07ebc70
9f60: 00023cbc 56251311 00023c88 c07e9f94 c07e9f98 c07e9f88 c025c3e4 c025c3f4
9f80: 60000013 ffffffff c07e9fb4 c07e9f98 c025c578 c025c3cc 00000000 c0981204
9fa0: c0025ca0 c0d01140 c07e9fc4 c07e9fb8 c0032094 c025c528 c07e9ff4 c07e9fc8
9fc0: c0008918 c0032048 c0008388 00000000 00000000 c0025ca0 00000000 00053975
9fe0: c0868834 c00260a4 00000000 c07e9ff8 00008034 c0008708 00000000 00000000
Backtrace:
[<c06bed28>] (dev_get_by_flags+0x0/0x140) from [<c071f764>] (arp_process+0xbb4/0xc74)
r7:c64b210c r6:00000007 r5:c6a00000 r4:c66a0000

(1)首先,看看這段堆棧信息是在內(nèi)核中那個(gè)文件中打印出來(lái)的,在fault.c文件中,__do_kernel_fault函數(shù),在上面的打印中Unable to handle kernel paging request at virtual address 45685516,該地址是內(nèi)核空間不可訪問(wèn)的地址。

static void __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr, struct pt_regs *regs)
{
/*
* Are we prepared to handle this kernel fault?
*/
if (fixup_exception(regs))
return;
/*
* No handler, we'll have to terminate things with extreme prejudice.
*/
bust_spinlocks(1);
printk(KERN_ALERT
"Unable to handle kernel %s at virtual address %08lx
",
(addr <PAGE_SIZE) ? "NULL pointer dereference" :"paging request", addr);
show_pte(mm, addr);
die("Oops", regs, fsr);
bust_spinlocks(0);
do_exit(SIGKILL);
}

(2) 對(duì)于下面的兩個(gè)信息,在函數(shù)show_pte中進(jìn)行了打印,下面的打印涉及到了頁(yè)全局目錄,頁(yè)表的知識(shí),暫時(shí)先不分析,后續(xù)補(bǔ)上。

pgd = c65a4000
[45685516] *pgd=00000000

void show_pte(struct mm_struct *mm, unsigned long addr)
{
pgd_t *pgd;
if (!mm)
mm = &init_mm;

printk(KERN_ALERT "pgd = %p
", mm->pgd);
pgd = pgd_offset(mm, addr);
printk(KERN_ALERT "[%08lx] *pgd=%08lx", addr, pgd_val(*pgd));
……………………
}

(3) die函數(shù)中調(diào)用在die函數(shù)中取得thread_info結(jié)構(gòu)體的地址。

struct thread_info *thread = current_thread_info();

static inline struct thread_info *current_thread_info(void){
register unsigned long sp asm ("sp");
return (struct thread_info *)(sp &~(THREAD_SIZE - 1));
}

Sp: 0xc07e9c28通過(guò)current_thread_info得到 thread_info的地址

(0xc07e9c28 &0xffffe000) = 0xC07E8000(thread_info的地址,也就是棧底的地址)

(4)下面的打印信息在__die函數(shù)中打印

Internal error: Oops: 1 [#1]
last sysfs file: /sys/devices/form/tpm/cfg_l2/l2_rule_add
Modules linked in: splic mmp(P)
CPU: 0 Tainted: P (2.6.32.11 #42)
PC is at dev_get_by_flags+0xfc/0x140
LR is at dev_get_by_flags+0xe8/0x140
pc : [<c06bee24>] lr : [<c06bee10>] psr: 20000013
sp : c07e9c28 ip : 00000000 fp : c07e9c64
r10: c6bcc560 r9 : c646a220 r8 : c66a0000
r7 : c6a00000 r6 : c0204e56 r5 : 30687461 r4 : 30687461
r3 : 00000000 r2 : 00000010 r1 : c0204e56 r0 : ffffffff
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005397f Table: 065a4000 DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc07e8270)
Stack: (0xc07e9c28 to 0xc07ea000)

函數(shù)的調(diào)用關(guān)系:die("Oops", regs, fsr);---à__die(str, err, thread, regs);

下面是__die函數(shù)的定義:

static void __die(const char *str, int err, struct thread_info *thread, struct pt_regs *regs){
struct task_struct *tsk = thread->task;
static int die_counter;
/*Internal error: Oops: 1 [#1]*/
printk(KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP "
",
str, err, ++die_counter);
/*last sysfs file: /sys/devices/form/tpm/cfg_l2/l2_rule_add*/
sysfs_printk_last_file();
/*內(nèi)核中加載的模塊信息Modules linked in: splic mmp(P) */
print_modules();
/*打印寄存器信息*/
__show_regs(regs);
/*Process swapper (pid: 0, stack limit = 0xc07e8270) tsk->comm task_struct結(jié)構(gòu)體中的comm表示的是除去路徑后的可執(zhí)行文件名稱(chēng),這里的swapper為idle進(jìn)程,進(jìn)程號(hào)為0,創(chuàng)建內(nèi)核進(jìn)程init;其中stack limit = 0xc07e8270 指向thread_info的結(jié)束地址。*/
printk(KERN_EMERG "Process %.*s (pid: %d, stack limit = 0x%p)
",
TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), thread + 1);
/* dump_mem 函數(shù)打印從棧頂?shù)疆?dāng)前sp之間的內(nèi)容*/
if (!user_mode(regs) || in_interrupt()) {
dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp, THREAD_SIZE + (unsigned long)task_stack_page(tsk));
dump_backtrace(regs, tsk);
dump_instr(KERN_EMERG, regs);
}
}

在上面的函數(shù)中,主要使用了thread_info,task_struct,sp之間的指向關(guān)系。task_struct結(jié)構(gòu)體的成員stack是棧底,也是對(duì)應(yīng)thread_info結(jié)構(gòu)體的地址。堆棧數(shù)據(jù)是從棧底+8K的地方開(kāi)始向下存的。SP指向的是當(dāng)前的棧頂。(unsigned long)task_stack_page(tsk),

#define task_stack_page(task)((task)->stack) ,該宏根據(jù)task_struct得到棧底,也就是thread_info地址。

#define task_thread_info(task) ((struct thread_info *)(task)->stack),該宏根據(jù)task_struct得到thread_info指針。

(5)dump_backtrace函數(shù)

該函數(shù)用于打印函數(shù)的調(diào)用關(guān)系。Fp為幀指針,用于追溯程序的方式,方向跟蹤調(diào)用函數(shù)。該函數(shù)主要是fp進(jìn)行檢查,看看能否進(jìn)行backtrace,如果可以就調(diào)用匯編的c_backtrace,在arch/arm/lib/backtrace.S函數(shù)中。

static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
{
unsigned int fp, mode;
int ok = 1;

printk("Backtrace: ");
if (!tsk)
tsk = current;

if (regs) {
fp = regs->ARM_fp;
mode = processor_mode(regs);
} else if (tsk != current) {
fp = thread_saved_fp(tsk);
mode = 0x10;
} else {
asm("mov %0, fp" : "=r" (fp) : : "cc");
mode = 0x10;
}

if (!fp) {
printk("no frame pointer");
ok = 0;
} else if (verify_stack(fp)) {
printk("invalid frame pointer 0x%08x", fp);
ok = 0;
} else if (fp <(unsigned long)end_of_stack(tsk))
printk("frame pointer underflow");
printk("
");
if (ok)
c_backtrace(fp, mode);
}

(6)dump_instr

根據(jù)PC指針和指令mode, 打印出當(dāng)前執(zhí)行的指令碼:

Code: 0a000008 e5944000 e2545000 0a000005 (e4153010)

內(nèi)核中函數(shù)的調(diào)用關(guān)系

原文鏈接:??http://blog.chinaunix.net/uid-20788636-id-4377271.html??

責(zé)任編輯:牛小雨 來(lái)源: frankzfz的博客
相關(guān)推薦

2021-03-05 07:14:08

Linuxcrashvmcore

2017-08-16 16:20:01

Linux內(nèi)核態(tài)搶占用戶(hù)態(tài)搶占

2021-09-28 07:12:09

Linux內(nèi)核入口

2021-09-06 07:45:08

LinuxLinux內(nèi)核

2021-12-30 10:43:21

Android函數(shù)Crash

2017-03-17 15:05:05

Linux內(nèi)核源碼do_fork

2009-12-11 15:10:22

2012-10-29 11:25:05

IBMdw

2023-04-28 08:42:08

Linux內(nèi)核SPI驅(qū)動(dòng)

2009-08-09 20:39:11

Linux內(nèi)核虛擬環(huán)境虛擬主機(jī)

2021-02-20 06:08:07

LinuxWindows內(nèi)核

2009-12-11 09:47:23

Linux內(nèi)核源碼進(jìn)程調(diào)度

2009-12-11 09:42:54

Linux內(nèi)核源碼進(jìn)程調(diào)度

2009-10-12 12:46:55

Linux內(nèi)核SCSI IO

2010-03-02 09:17:32

Linux local

2021-12-15 15:03:51

Linux內(nèi)核調(diào)度

2009-06-19 20:32:00

Linux

2023-05-08 07:41:07

Linux內(nèi)核ELF文件

2023-05-08 12:03:14

Linux內(nèi)核進(jìn)程

2018-05-18 09:07:43

Linux內(nèi)核內(nèi)存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲婷婷在线视频| 激情欧美一区二区三区在线观看| 精品无人区乱码1区2区3区在线 | 91色琪琪电影亚洲精品久久| 黄色片在线观看网站| 久久久久久毛片免费看| 色久综合一二码| 国产精品88久久久久久妇女| 少妇人妻精品一区二区三区| 秋霞午夜av一区二区三区| 久99久在线视频| 波多野结衣av在线观看| 久久久久亚洲精品中文字幕| 日韩欧美在线第一页| 国产欧美自拍视频| 免费a在线观看| 国产一区三区三区| 国产成人avxxxxx在线看 | 亚洲色图网站| 国产丝袜一区视频在线观看| 性久久久久久久久久久久久久| 丝袜老师在线| 亚洲一区二区三区视频在线播放 | 成人a在线视频免费观看| 白白色 亚洲乱淫| 成人黄色生活片| chinese国产精品| 日韩视频久久| 欧美美最猛性xxxxxx| 精品日韩在线视频| 亚洲性视频大全| 亚洲精品一区二区在线观看| 国产精品视频中文字幕| 台湾佬中文娱乐久久久| 五月婷婷综合在线| 久久福利一区二区| 免费大片黄在线| 国产色产综合色产在线视频| 麻豆亚洲一区| 天堂国产一区二区三区| 国产成人在线免费观看| 亚洲精品日韩激情在线电影| 一区二区精品视频在线观看| 日本成人中文字幕| 国产第一区电影| 日本视频免费观看| 久久精品综合| 欧洲亚洲免费视频| 无码人妻aⅴ一区二区三区有奶水| 最新日韩av| 久久理论片午夜琪琪电影网| 欧美一级高潮片| 亚洲国产片色| 97久久伊人激情网| 日本三级理论片| 在线日韩欧美| 88xx成人精品| 中文字幕激情小说| 久久永久免费| 国产精品免费电影| 中文字幕无码乱码人妻日韩精品| 日本免费新一区视频| 国产精品中文字幕在线观看| 亚洲最大成人av| 国内精品在线播放| 91丝袜美腿美女视频网站| 97国产精品久久久| 国产一区在线看| 国产精品日本一区二区| 天堂中文在线官网| 久久久久久亚洲综合影院红桃| 欧美日韩在线精品| 日本韩国在线视频爽| 一区二区三区丝袜| 成人在线免费观看av| 综合久久2023| 在线电影一区二区三区| japan高清日本乱xxxxx| 蜜臀av一区| 亚洲网站视频福利| 日韩欧美123区| 精品动漫av| 国产91九色视频| 国产又黄又大又爽| 成人免费观看男女羞羞视频| 久久久久久国产精品mv| 国产九色在线| 亚洲欧美日韩一区| 国产乱子伦农村叉叉叉| 成人午夜亚洲| 精品99久久久久久| 欧美性受xxxx黑人| 影音先锋久久精品| 国产精品成人aaaaa网站| 国产视频www| 99精品欧美一区二区三区综合在线| 日本高清不卡一区二区三| 成人福利片网站| 色综合一区二区| 手机在线观看日韩av| 天堂成人娱乐在线视频免费播放网站 | 男人天堂av网| 日本一区二区不卡视频| 免费看日本黄色| 在线一区视频观看| 精品日韩99亚洲| 亚洲天堂最新地址| 亚洲黄色影片| 91在线无精精品一区二区| 久久电影视频| 亚洲超丰满肉感bbw| mm131国产精品| 欧美三级午夜理伦三级在线观看 | 日本午夜在线观看| 欧美专区一区二区三区| 国产chinese精品一区二区| av网站在线免费播放| 午夜影院久久久| 中文字幕第17页| 九九久久成人| 国外成人在线视频| 国产探花精品一区二区| 中文字幕不卡在线观看| 国产99久久九九精品无码| 欧美经典影片视频网站| 日韩中文字幕在线视频播放| 二区视频在线观看| 成人激情免费网站| 17c丨国产丨精品视频| 日本亚洲欧洲无免费码在线| 亚洲欧美日韩图片| 国产精品国产三级国产专区52| 国产伦精品一区二区三区免费| 日韩欧美一区二区三区久久婷婷| 三妻四妾完整版在线观看电视剧 | 国产色综合一区二区三区| 国产欧美黑人| 欧美精三区欧美精三区| www..com.cn蕾丝视频在线观看免费版| 悠悠资源网久久精品| 91免费看蜜桃| 五月花成人网| 欧美成人女星排名| 免费人成视频在线| 国产高清久久久久| 久久天天东北熟女毛茸茸| 四虎国产精品免费久久5151| 色久欧美在线视频观看| 一区二区三区亚洲视频| 国产精品日日摸夜夜摸av| 簧片在线免费看| 欧美日韩国产传媒| 国产精品一香蕉国产线看观看| 高清在线观看av| 欧美性受xxxx| 很污很黄的网站| 久久精品国产亚洲一区二区三区| 亚洲不卡1区| 成人性生交大片免费网站| 亚洲欧洲在线观看| 怡红院男人天堂| 国产精品美女一区二区三区 | 日韩亚洲一区二区| 99精品国产99久久久久久97| 亚洲欧美日韩中文字幕一区二区三区 | 成人免费看黄| 在线电影av不卡网址| 国产又爽又黄免费软件| 夜夜嗨av一区二区三区四季av| 久久久久国产免费| 国产精品老牛| 亚洲欧洲中文| 深夜福利一区二区三区| 91精品国产高清| 国产系列在线观看| 欧美一区二区三区日韩视频| 久久久久成人网站| 久久亚洲私人国产精品va媚药| 中文字幕有码av| 欧美视频亚洲视频| 欧美重口乱码一区二区| 疯狂欧洲av久久成人av电影| 久久久伊人欧美| 国产视频第一页在线观看| 制服丝袜中文字幕亚洲| 日本一级一片免费视频| 欧美国产一区二区| www日本在线观看| 天堂在线一区二区| 日本xxxxx18| 国产99久久精品一区二区300| 成人av在线天堂| 高潮在线视频| 精品国模在线视频| 无码精品视频一区二区三区| 一本色道久久加勒比精品| 粉嫩av性色av蜜臀av网站| 99久久综合99久久综合网站| 蜜臀一区二区三区精品免费视频| 国产精品s色| 日韩av高清| 大奶在线精品| 成人一区二区电影| 大胆人体一区二区| 欧美激情乱人伦一区| 国产二区视频在线观看| 日韩精品中午字幕| 亚洲性猛交富婆| 婷婷六月综合亚洲| 欧美成人一区二区三区高清| 国产亚洲一本大道中文在线| 国产在线不卡av| 国产一区二区导航在线播放| 国产又黄又猛视频| 亚洲视频www| 免费网站在线观看视频| 日韩欧美视频| 日本不卡久久| 色婷婷久久久| 国产精品免费观看高清| 伊人久久大香伊蕉在人线观看热v| 57pao国产精品一区| 黄网在线免费看| 美女精品久久久| 欧美激情黑人| 日韩在线视频网站| 岛国在线视频| 亚洲欧美日韩高清| 亚洲色偷精品一区二区三区| 日韩精品一区二区在线观看| 91精品国自产| 欧美性生活大片视频| 欧产日产国产69| 欧美视频在线免费看| 日本在线视频免费| 亚洲国产欧美在线| 久久久夜色精品| 一二三四社区欧美黄| 天天天天天天天天操| 综合中文字幕亚洲| 欧美精品久久久久久久久46p| 国产精品久久久久影院亚瑟| 国产精品综合激情| 国产精品国产三级国产普通话蜜臀| 91在线无精精品白丝| 欧美国产1区2区| 国产在线免费av| 国产精品国产精品国产专区不蜜 | 麻豆导航在线观看| 亚洲精品日韩久久久| 四虎影视在线播放| 国产手机视频精品| 国产免费视频在线| 中文字幕在线观看日韩| 色综合久久影院| 久久伊人精品一区二区三区| 国产黄色在线免费观看| 欧美激情手机在线视频 | 97超级碰碰| 一区三区自拍| 国产欧美亚洲日本| 竹菊久久久久久久| 亚洲精品一品区二品区三品区 | 国产亚洲一区二区三区| 中文天堂资源在线| 日韩理论片一区二区| 中文字幕在线观看成人| 亚洲成人av资源| 潘金莲一级淫片aaaaaa播放| 欧美日韩日日夜夜| 精品国产va久久久久久久| 精品成人一区二区三区| 日韩有码电影| 久久激情视频免费观看| 自拍亚洲图区| 日韩av色综合| 亚洲伦理久久| 国产日本一区二区三区| 欧美日韩伦理| 黄色片免费在线观看视频| 国产亚洲福利| 17c国产在线| 成人午夜在线播放| 欧美黄色一级生活片| 亚洲另类色综合网站| 天天操天天摸天天干| 欧美日韩国产区一| 香蕉视频免费看| 久久久国产91| 久久人体大尺度| 91最新国产视频| 九九热精品视频在线观看| 永久免费在线看片视频| 免费视频一区| 亚洲av无码久久精品色欲| 久久综合国产精品| 2021亚洲天堂| 91国产丝袜在线播放| 精品免费久久久| 一区二区三区美女xx视频| 欧美人与性动交α欧美精品图片| 国产成人精品日本亚洲| 国产精伦一区二区三区| 亚洲精品一区二区三区av| 99精品免费| 乳色吐息在线观看| 国产精品情趣视频| 精品国产午夜福利| 亚洲国产精品系列| 色yeye免费人成网站在线观看| 国产激情久久久| 欧美天堂社区| 欧美性猛交内射兽交老熟妇| 强制捆绑调教一区二区| 久久午夜夜伦鲁鲁片| 亚洲一区二区高清| h片在线免费看| 中文字幕国产精品| 日韩精品第一| 久久艳妇乳肉豪妇荡乳av| 欧美日韩三级电影在线| 永久免费黄色片| 中文字幕日韩一区二区| 欧美性受xxx黑人xyx性爽| 国产视频在线一区二区| 91吃瓜在线观看| 99久热re在线精品视频| 图片区亚洲欧美小说区| 亚洲久久中文字幕| 国产情人综合久久777777| 中文字幕在线播| 日韩精品亚洲视频| 久热在线观看视频| 国产三区精品| 国产欧美高清| 熟妇人妻久久中文字幕| 亚洲国产一二三| 丰满少妇被猛烈进入| 欧美日本亚洲视频| 99精品在免费线中文字幕网站一区 | av之家在线观看| 丁香桃色午夜亚洲一区二区三区| 亚洲色偷偷综合亚洲av伊人| 欧美日韩精品一区二区三区四区 | 亚洲国产精品免费视频| 精品国产无码在线| 国内国产精品久久| 男人的午夜天堂| 555www色欧美视频| 3d玉蒲团在线观看| 99影视tv| 亚洲国产精品一区| 黄色工厂在线观看| 色综合视频一区二区三区高清| 欧美日韩免费做爰大片| 国产精品成人久久久久| 日本一区二区免费高清| 岛国毛片在线播放| 亚洲色大成网站www久久九九| 99产精品成人啪免费网站| 欧美精品第一页在线播放| 日韩影视在线观看| 日本熟妇人妻中出| 综合久久综合久久| www.成人免费视频| 91精品国产高清久久久久久91 | 久久香蕉视频网站| 丁香婷婷综合激情五月色| 久久一区二区三区视频| 在线日韩欧美视频| 91麻豆精品一二三区在线| 日本中文字幕在线视频观看| 久久综合av免费| 亚洲天堂视频网| 欧美国产乱视频| 欧美美乳视频| 污污视频在线免费| 欧美性色视频在线| 成人在线直播| 蜜桃传媒视频麻豆一区 | 米奇777四色精品人人爽| 成人综合色站| 日本视频中文字幕一区二区三区| 放荡的美妇在线播放| 日韩精品在线播放| 99国内精品久久久久| 成人网站免费观看入口| 国产色婷婷亚洲99精品小说| 国内老熟妇对白xxxxhd| 欧洲精品在线视频| 综合国产精品| 91精品人妻一区二区三区| 欧美丰满嫩嫩电影| 在线天堂资源| 成年人深夜视频| 中文一区二区在线观看| 丰满人妻一区二区三区四区53| 国产精品草莓在线免费观看| 国模 一区 二区 三区| 青青青视频在线播放|