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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cgroup代码浅析(2)

發(fā)布時(shí)間:2025/3/21 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cgroup代码浅析(2) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

info

  • include/linux/memcontrol.h memcg相關(guān)的函數(shù)
  • 數(shù)據(jù)結(jié)構(gòu)

  • mem_cgroup在每個(gè)node下,都有一個(gè)lruvec, 這個(gè)lruvec保存在mem_cgroup_per_node結(jié)構(gòu)中
  • / mem_cgroup struct mem_cgroup {struct cgroup_subsys_state css;...struct mem_cgroup_per_node *nodeinfo[0]; // memcg 在每個(gè)node下 }struct cgroup_subsys_state {struct cgroup *cgroup;... }struct mem_cgroup_per_node {struct lruvec lruvec;unsigned long lru_zone_size[MAX_NR_ZONES][NR_LRU_LISTS];struct mem_cgroup_reclaim_iter iter[DEF_PRIORITY + 1];struct rb_node tree_node; /* RB tree node */unsigned long usage_in_excess;/* Set to the value by which *//* the soft limit is exceeded*/bool on_tree;bool writeback; /* memcg kswapd reclaim writeback */bool dirty; /* memcg kswapd reclaim dirty */bool congested; /* memcg has many dirty pages *//* backed by a congested BDI */struct mem_cgroup *memcg; /* Back pointer, we cannot *//* use container_of */ };lru結(jié)構(gòu) struct lruvec {struct list_head lists[NR_LRU_LISTS];struct zone_reclaim_stat reclaim_stat;/* Evictions & activations on the inactive file list */atomic_long_t inactive_age;/* Refaults at the time of last reclaim cycle */unsigned long refaults; #ifdef CONFIG_MEMCGstruct pglist_data *pgdat; #endif };

    Cgroup和Task的關(guān)聯(lián)

    task->css_set

    struct task_struct {struct css_set __rcu *cgroups; // 每個(gè)進(jìn)程中,都對(duì)應(yīng)有一個(gè)css_set結(jié)構(gòu)體,css_set其實(shí)就是cgroup_subsys_state對(duì)象的集合,而每個(gè)cgroup_subsys_state代表一個(gè)subsystem... }struct css_set {struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];... }

    css_set的初始化發(fā)生在kernel boot,從如下代碼可見

    asmlinkage __visible void __init start_kernel(void) {cpuset_init();cgroup_init();... }

    一個(gè)task可以屬于多個(gè)cgroup,一個(gè)cgroup也可以擁有多個(gè)task,這種M:N的關(guān)系,linux kernel中是通過cgrp_cset_link結(jié)構(gòu)體表示的:

    /** A cgroup can be associated with multiple css_sets as different tasks may* belong to different cgroups on different hierarchies. In the other* direction, a css_set is naturally associated with multiple cgroups.* This M:N relationship is represented by the following link structure* which exists for each association and allows traversing the associations* from both sides.*/ struct cgrp_cset_link {/* the cgroup and css_set this link associates */struct cgroup *cgrp;struct css_set *cset;/* list of cgrp_cset_links anchored at cgrp->cset_links */struct list_head cset_link;/* list of cgrp_cset_links anchored at css_set->cgrp_links */struct list_head cgrp_link; };

    這個(gè)結(jié)構(gòu)其實(shí)就是一個(gè)link,cgrp就是這個(gè)link關(guān)聯(lián)的cgroup,cset屬于一個(gè)task,于是可以代表一個(gè)進(jìn)程。

    而cset_link是給struct cgroup查找struct cgrp_cset_link用的。那么怎么找呢?

    我們首先來看如何把一個(gè)cgroup與一個(gè)css_set關(guān)聯(lián)起來

    /*** link_css_set - a helper function to link a css_set to a cgroup* @tmp_links: cgrp_cset_link objects allocated by allocate_cgrp_cset_links()* @cset: the css_set to be linked* @cgrp: the destination cgroup*//* link_css_set函數(shù)的功能就是把一個(gè)css_set與一個(gè)cgroup通過struct */cgrp_cset_link聯(lián)系起來。 static void link_css_set(struct list_head *tmp_links, struct css_set *cset, struct cgroup *cgrp) {struct cgrp_cset_link *link;BUG_ON(list_empty(tmp_links));if (cgroup_on_dfl(cgrp))cset->dfl_cgrp = cgrp;// 從已經(jīng)分配好的一個(gè)cgrp_cset_link鏈表(表頭為tmp_links)中拿一個(gè)出來,填上cgroup與css_set的指針link = list_first_entry(tmp_links, struct cgrp_cset_link, cset_link);link->cset = cset;link->cgrp = cgrp;// 把這個(gè)cgrp_cset_link從原來的鏈表中移出來,加入到cgrp(這個(gè)就是那個(gè)cgroup)的cset_links鏈表中l(wèi)ist_move_tail(&link->cset_link, &cgrp->cset_links);// 把cgrp_cset_link的cgrp_link加入到cset的cgrp_links鏈表中l(wèi)ist_add_tail(&link->cgrp_link, &cset->cgrp_links);if (cgroup_parent(cgrp))cgroup_get(cgrp); }

    上面注釋中提到,用于分配cgrp_cset_link(表頭為tmp_links)的函數(shù)是allocate_cgrp_cset_links,其定義如下:

    /*** allocate_cgrp_cset_links - allocate cgrp_cset_links* @count: the number of links to allocate* @tmp_links: list_head the allocated links are put on** Allocate @count cgrp_cset_link structures and chain them on @tmp_links* through ->cset_link. Returns 0 on success or -errno.*/ static int allocate_cgrp_cset_links(int count, struct list_head *tmp_links) {struct cgrp_cset_link *link;int i;INIT_LIST_HEAD(tmp_links);for (i = 0; i < count; i++) {link = kzalloc(sizeof(*link), GFP_KERNEL);if (!link) {free_cgrp_cset_links(tmp_links);return -ENOMEM;}list_add(&link->cset_link, tmp_links);}return 0; }

    這個(gè)函數(shù)很簡(jiǎn)單,就是申請(qǐng)count個(gè)struct cgrp_cset_link,同時(shí)把它們一個(gè)個(gè)加到tmp_links這個(gè)鏈表里。這count的數(shù)據(jù)結(jié)構(gòu)是通過struct cgrp_cset_link->cset_link連接起來的,但是前面說到這個(gè)變量是給struct cgroup用的。這是因?yàn)槟壳胺峙涑鰜淼倪@些個(gè)數(shù)據(jù)結(jié)構(gòu)只是臨時(shí)的,也就是說暫時(shí)借用一下這個(gè)變量,到后面會(huì)再來恢復(fù)這個(gè)變量的本來用途。這也是為什么link_css_set函數(shù)中cgrp_link成員用list_add,而cset_link用list_move。

    于是,可以用下圖來表示allocate_cgrp_cset_links的結(jié)果:

    而link_css_set的結(jié)果則可以用下圖來表示:

    這張圖也解釋了linux代碼中如何表現(xiàn)cgroup與subsystem之間多對(duì)多的關(guān)系。每個(gè)struct cgroup可以通過cgroup->cset_links和cgrp_cset_link->cset_link找到一串struct cgrp_cset_link,每個(gè)struct cgrp_cset_link都有著對(duì)應(yīng)的css_set,這個(gè)css_set屬于一個(gè)tast_struct(其實(shí)是多個(gè)),其中包含著subsystem。

    于是通過遍歷鏈表就能找到這個(gè)cgroup對(duì)應(yīng)的所有task(其實(shí)找到的是css_set,但是對(duì)于Cgroups這個(gè)模塊來說,關(guān)心的并不是task_struct,而是這個(gè)css_set)。反之亦然,通過task_struct的cgroups變量(類型為struct css_set*)就能找到這個(gè)進(jìn)程屬于的所有cgroup。

    例如,給定一個(gè)task,我們想找到這個(gè)task在某個(gè)hierarchy中的cgroup,就可以調(diào)用如下函數(shù):linux-4.4.19/kernel/cgroup.c

    /** Return the cgroup for "task" from the given hierarchy. Must be* called with cgroup_mutex and css_set_lock held.*/ static struct cgroup *task_cgroup_from_root(struct task_struct *task,struct cgroup_root *root) {/** No need to lock the task - since we hold cgroup_mutex the* task can't change groups, so the only thing that can happen* is that it exits and its css is set back to init_css_set.*/return cset_cgroup_from_root(task_css_set(task), root); } /* look up cgroup associated with given css_set on the specified hierarchy */ static struct cgroup *cset_cgroup_from_root(struct css_set *cset,struct cgroup_root *root) {struct cgroup *res = NULL;lockdep_assert_held(&cgroup_mutex);lockdep_assert_held(&css_set_lock);if (cset == &init_css_set) {res = &root->cgrp;} else {struct cgrp_cset_link *link;list_for_each_entry(link, &cset->cgrp_links, cgrp_link) {struct cgroup *c = link->cgrp;if (c->root == root) {res = c;break;}}}BUG_ON(!res);return res; }

    Cgroup與subsystem

    linux-4.4.19/include/linux/cgroupsubsys.h中定義了所有的subsystem。
    可以看到,共有cpuset, debug, cpu, cpuacct, memory, devices, freezer, netcls, blkio, perfevent, netprio, hugtlb等12個(gè).
    cpu subsystem

    struct task_group就是cpu subsystem對(duì)應(yīng)的子類, 代碼見

    /* task group related information */ struct task_group {struct cgroup_subsys_state css;#ifdef CONFIG_FAIR_GROUP_SCHED/* schedulable entities of this group on each cpu */struct sched_entity **se;/* runqueue "owned" by this group on each cpu */struct cfs_rq **cfs_rq;unsigned long shares;#ifdef CONFIG_SMPatomic_long_t load_avg; #endif #endif#ifdef CONFIG_RT_GROUP_SCHEDstruct sched_rt_entity **rt_se;struct rt_rq **rt_rq;struct rt_bandwidth rt_bandwidth; #endifstruct rcu_head rcu;struct list_head list;struct task_group *parent;struct list_head siblings;struct list_head children;#ifdef CONFIG_SCHED_AUTOGROUPstruct autogroup *autogroup; #endifstruct cfs_bandwidth cfs_bandwidth; };

    Cgroups通過VFS來和用戶打交道, 用戶通過將各個(gè)subsystem mount到某個(gè)目錄下之后, cgroup文件系統(tǒng)會(huì)自動(dòng)創(chuàng)建一系列虛擬文件, 用戶通過向不同的文件讀寫數(shù)據(jù)控制Cgroups的行為. 具體對(duì)CPU subsystem來說, 有一個(gè)tasks文件, 向其中寫入一些進(jìn)程的pid, 就能將這些進(jìn)程加入到這個(gè)cgroup. 另外還有個(gè)cpu.shares的文件, 向其中寫入一個(gè)數(shù)字后就能設(shè)置這個(gè)cgroup的進(jìn)程的weight.

    每個(gè)文件系統(tǒng)(包括Cgroups對(duì)應(yīng)的cgroup文件系統(tǒng))擁有一個(gè)數(shù)據(jù)結(jié)構(gòu), 其中有一系列函數(shù)指針, 當(dāng)對(duì)這個(gè)文件系統(tǒng)進(jìn)行讀寫操作時(shí), 內(nèi)核會(huì)調(diào)用這個(gè)文件系統(tǒng)的對(duì)應(yīng)函數(shù)指針. 因此當(dāng)向一個(gè)VFS的文件寫入數(shù)據(jù)時(shí), 可以在這個(gè)函數(shù)指針指向的函數(shù)做一些其他事情. 具體對(duì)于CPU subsystem, 當(dāng)向cpu.shares寫入一個(gè)數(shù)字時(shí), 內(nèi)核執(zhí)行的函數(shù)干的事情是修改這個(gè)cgroup對(duì)應(yīng)的struct task_group中的shares變量. 這個(gè)函數(shù)是:
    linux-4.4.19/kernel/sched/core.c #8270

    static int cpu_shares_write_u64(struct cgroup_subsys_state *css,struct cftype *cftype, u64 shareval) {return sched_group_set_shares(css_tg(css), scale_load(shareval)); }

    其中, csstg函數(shù)是找到具體的subsystem子類, 這里就是struct taskcgroup. schedgroupset_shares這個(gè)函數(shù)的定義如下:

    int sched_group_set_shares(struct task_group *tg, unsigned long shares) {int i;unsigned long flags;/** We can't change the weight of the root cgroup.*/if (!tg->se[0])return -EINVAL;shares = clamp(shares, scale_load(MIN_SHARES), scale_load(MAX_SHARES));mutex_lock(&shares_mutex);if (tg->shares == shares)goto done;tg->shares = shares;for_each_possible_cpu(i) {struct rq *rq = cpu_rq(i);struct sched_entity *se;se = tg->se[i];/* Propagate contribution to hierarchy */raw_spin_lock_irqsave(&rq->lock, flags);/* Possible calls to update_curr() need rq clock */update_rq_clock(rq);for_each_sched_entity(se)update_cfs_shares(group_cfs_rq(se));raw_spin_unlock_irqrestore(&rq->lock, flags);}done:mutex_unlock(&shares_mutex);return 0; }

    變量

    根組:

    extern struct mem_cgroup *root_mem_cgroup;

    函數(shù)

    從page獲取mem_cgroup: page_mem_cgroup()

    static inline struct mem_cgroup *page_mem_cgroup(struct page *page) {return page->mem_cgroup; }

    從pgdata + memcg 獲取lru: mem_cgroup_lruvec()

    static inline struct lruvec *mem_cgroup_lruvec(struct pglist_data *pgdat,struct mem_cgroup *memcg) {struct mem_cgroup_per_node *mz;struct lruvec *lruvec;// 如果沒有開啟memcg,則,lru等于node上的lruif (mem_cgroup_disabled()) {lruvec = node_lruvec(pgdat);goto out;}// 獲取memcg里對(duì)應(yīng)的node的mz,mz里保存了這個(gè)memcg在這個(gè)node上的lruvecmz = mem_cgroup_nodeinfo(memcg, pgdat->node_id);lruvec = &mz->lruvec; out:/** Since a node can be onlined after the mem_cgroup was created,* we have to be prepared to initialize lruvec->pgdat here;* and if offlined then reonlined, we need to reinitialize it.*/if (unlikely(lruvec->pgdat != pgdat))lruvec->pgdat = pgdat;return lruvec; }

    例子:

    static void reclaim_pages_from_memcg(struct mem_cgroup *memcg) {pg_data_t *pgdat;struct lruvec *lruvec;pgdat = NODE_DATA(nid);lruvec = mem_cgroup_lruvec(pgdat, memcg); }

    常見函數(shù)

    mem_cgroup_disabled()

    打印相關(guān):

    memcg_stat_show()

    charge 相關(guān):

    int mem_cgroup_try_charge(struct page *page, struct mm_struct *mm,gfp_t gfp_mask, struct mem_cgroup **memcgp,bool compound); void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,bool lrucare, bool compound); void mem_cgroup_cancel_charge(struct page *page, struct mem_cgroup *memcg,bool compound); void mem_cgroup_uncharge(struct page *page); void mem_cgroup_uncharge_list(struct list_head *page_list);

    charge/uncharge

    mem_cgroup_uncharge

    void mem_cgroup_uncharge(struct page *page) {if (mem_cgroup_disabled())return;/* Don't touch page->lru of any random page, pre-check: */if (!page->mem_cgroup)return;INIT_LIST_HEAD(&page->lru);uncharge_list(&page->lru); }

    memcg_stat_show

    static int memcg_stat_show(struct seq_file *m, void *v) {struct mem_cgroup *memcg = mem_cgroup_from_css(seq_css(m));unsigned long memory, memsw;struct mem_cgroup *mi;unsigned int i;struct accumulated_stats acc;BUILD_BUG_ON(ARRAY_SIZE(mem_cgroup_stat_names) !=MEM_CGROUP_STAT_NSTATS);BUILD_BUG_ON(ARRAY_SIZE(mem_cgroup_events_names) !=MEM_CGROUP_EVENTS_NSTATS);BUILD_BUG_ON(ARRAY_SIZE(mem_cgroup_lru_names) != NR_LRU_LISTS);for (i = 0; i < MEM_CGROUP_STAT_NSTATS; i++) {if (i == MEM_CGROUP_STAT_SWAP && !do_memsw_account())continue;seq_printf(m, "%s %lu\n", mem_cgroup_stat_names[i],mem_cgroup_read_stat(memcg, i) * PAGE_SIZE);}for (i = 0; i < MEM_CGROUP_EVENTS_NSTATS; i++)seq_printf(m, "%s %lu\n", mem_cgroup_events_names[i],mem_cgroup_read_events(memcg, i));for (i = 0; i < NR_LRU_LISTS; i++)seq_printf(m, "%s %lu\n", mem_cgroup_lru_names[i],mem_cgroup_nr_lru_pages(memcg, BIT(i)) * PAGE_SIZE);

    Refs

    https://www.cnblogs.com/yjf512/p/6003094.html

    https://blog.csdn.net/WaltonWang/article/details/53899191

    轉(zhuǎn)載于:https://www.cnblogs.com/muahao/p/10281139.html

    總結(jié)

    以上是生活随笔為你收集整理的cgroup代码浅析(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    伊人永久| 午夜视频不卡 | 久久久久久久久久毛片 | www.天天综合| 欧美一区二区三区特黄 | 日韩 精品 一区 国产 麻豆 | 中文字幕日韩在线播放 | 国产美女网 | 国产不卡在线视频 | 国产91丝袜在线播放动漫 | 亚洲午夜精品电影 | 亚洲另类视频 | 天天操一操 | 亚色视频在线观看 | 久久久受www免费人成 | 色综合色综合久久综合频道88 | 在线看片中文字幕 | 欧美小视频在线观看 | 亚洲午夜av电影 | 欧美亚洲国产日韩 | 亚洲高清在线观看视频 | 亚洲国产色一区 | 91视频在线观看大全 | 久久久精品久久日韩一区综合 | 日韩在线观看第一页 | 色婷婷狠狠五月综合天色拍 | 日日干影院 | 在线观看免费成人av | 久久在草| 天天色天天上天天操 | 国产91精品久久久久久 | 国产99久久99热这里精品5 | 国产成人91| 亚洲精品视频大全 | 久久男人视频 | 亚洲精品成人 | 亚洲视频精品在线 | 丁香五月缴情综合网 | 91视频黄色 | 国产精品国产精品 | 久久久国产精品电影 | 国产精品久久久久久一区二区 | 黄色小说免费在线观看 | 日本中文字幕在线看 | 久久久久久久国产精品影院 | 69xx视频| 天天爽夜夜爽精品视频婷婷 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 日本公妇在线观看 | 亚洲精品美女免费 | 日日干视频 | 国产福利一区二区在线 | 中文字幕在线国产 | 国产精品专区h在线观看 | 骄小bbw搡bbbb揉bbbb | 国产精品麻 | 免费视频黄 | 亚洲国产婷婷 | 国产视频在线播放 | 天天操天天操天天操天天 | 国产一区二区精品久久91 | 天天综合狠狠精品 | 国产精品美女久久久久aⅴ 干干夜夜 | 色先锋资源网 | 欧美久久久久久久久中文字幕 | 日本久久成人中文字幕电影 | 欧美激情综合五月色丁香 | 91av综合 | 国产麻豆视频在线观看 | 国产午夜精品福利视频 | 99 久久久久 | 久久精品免费电影 | 欧美va天堂va视频va在线 | 欧美午夜精品久久久久久孕妇 | 日韩精品在线看 | 午夜三级影院 | 日日夜夜网站 | 久保带人| 成人一级视频在线观看 | 波多野结衣电影一区二区三区 | 国产九色在线播放九色 | 99草视频 | 精品视频在线看 | 91在线九色 | 六月婷婷久香在线视频 | 麻豆久久一区 | 天堂在线视频中文网 | 日韩综合一区二区 | 狠狠干2018 | 欧美一区免费在线观看 | 国产在线精 | 欧美性爽爽 | 黄色软件在线观看 | 中文字幕资源站 | 91精品视频在线播放 | 久久精品www人人爽人人 | 日韩激情精品 | 国产免费av一区二区三区 | 国产青青青| 午夜12点 | 中文字幕久久网 | 午夜视频免费 | 免费日韩av片 | 一级黄色大片 | 国产高清 不卡 | 五月天丁香亚洲 | 久久久免费高清视频 | 中文字幕91 | 日韩欧美一区二区三区黑寡妇 | 福利网在线 | 超碰97中文 | 美腿丝袜av | 久久五月天婷婷 | 免费看短 | 午夜av激情 | 欧美日韩在线免费观看 | 日韩在线一级 | 一级大片在线观看 | 国产精品短视频 | 在线播放视频一区 | 国产视频一区二区三区在线 | 毛片99| 中文字幕永久免费 | 国产精品久久久久久69 | 中文字幕av在线 | 国产精品午夜久久久久久99热 | 天天干夜夜想 | 999日韩| 精品一区电影 | 日韩精品视频在线免费观看 | 91精品在线视频 | 国产小视频在线看 | 欧美一二三区播放 | 一级一片免费观看 | 99久久成人| 99视频在线免费 | 亚洲精品字幕在线 | 天天插天天爽 | 91在线观看黄 | 激情久久综合网 | 婷婷5月色 | 国产精品久久久久久久久久久久午夜 | 欧美激情第一区 | 中文字幕日韩伦理 | 97综合在线 | 欧美另类一二三四区 | 五月天久久狠狠 | 91免费视频国产 | 国产玖玖精品视频 | 亚洲国产成人在线播放 | 成人黄色电影在线 | 三级黄色网址 | 一级黄色片在线播放 | 97视频免费在线观看 | 97精品久久 | 国产日产在线观看 | 特级黄录像视频 | 日韩字幕 | 国产中文在线播放 | 日韩av片在线 | 日韩av高清在线观看 | 国产精品网在线观看 | 国产成人一区二区三区在线观看 | 天天爽夜夜操 | 天天做天天射 | 国产精品视频久久 | 欧美久久九九 | 99久久99久久 | 一区二区三区日韩精品 | 激情视频在线观看网址 | 久久99视频精品 | 九七视频在线 | 欧美91片| 成人影音在线 | 黄色电影小说 | 成人在线观看免费 | 97超级碰碰碰碰久久久久 | av网站大全免费 | 欧美精品免费视频 | 久久精品一二三区 | 欧美精品久久久久a | 久久精品2| 久久精品亚洲精品国产欧美 | 欧美日一级片 | 91香蕉国产在线观看软件 | 久久99久国产精品黄毛片入口 | 久久91久久久久麻豆精品 | 色噜噜在线观看 | 小草av在线播放 | 国产在线不卡精品 | 欧美日韩国产三级 | 国产精品视频久久久 | 国产91精品在线播放 | 在线午夜av | 日韩av一区二区三区四区 | 亚洲天堂va | 激情综合网婷婷 | 波多野结衣日韩 | 最近日韩免费视频 | 国产色拍拍拍拍在线精品 | 亚洲最新在线 | 一区二区三区免费在线观看视频 | 欧美在线不卡一区 | 亚洲视频axxx | 亚洲精品乱码久久久久久高潮 | 成人久久久久 | 麻豆91精品视频 | 国产精品黑丝在线观看 | 欧美网址在线观看 | 久久97超碰| 天天天天射 | 日韩黄色免费 | 欧美在线1| 一区二区三区精品在线视频 | 综合精品久久久 | 美女视频黄免费网站 | 亚洲欧美精品一区二区 | 视频精品一区二区三区 | 亚洲精品视频www | 日日夜夜婷婷 | 欧美精品一区二区在线播放 | 黄污网 | 日韩免费一二三区 | 国产 亚洲 欧美 在线 | 免费久久网站 | 91九色视频在线观看 | 欧美精品中文字幕亚洲专区 | 欧美激情在线网站 | 91精品国产麻豆国产自产影视 | 精品天堂av | 久久综合五月天婷婷伊人 | 不卡的av在线播放 | 黄色免费视频在线观看 | 在线看v片成人 | 91精品国自产在线观看 | 97国产情侣爱久久免费观看 | 国产精品视频免费看 | 99草视频 | 国产精品中文 | 六月婷操 | 国产一级免费在线 | 99久久婷婷| 久久午夜电影 | 天天爽综合网 | 久久精品79国产精品 | 四虎成人精品永久免费av | 欧美日韩网站 | 色综合天天色综合 | 久久久久久久久久久精 | 91亚洲国产 | 99精品久久久久 | 日韩一片| 久久欧美在线电影 | 国产涩涩在线观看 | 激情亚洲综合在线 | 麻豆视频免费看 | 五月色婷 | 精品a视频| 亚洲精品综合一区二区 | 81国产精品久久久久久久久久 | 狠狠干网站 | 中文字幕免费观看全部电影 | 波多野结衣一区三区 | 久草免费电影 | 国产精品高潮在线观看 | 日韩二区三区在线 | 黄在线免费观看 | 天天摸天天弄 | 久久99网 | 五月婷社区 | 久久久资源 | 中文字幕一区二区三区在线观看 | 日日精品| 一区二区精品在线视频 | 在线观看不卡视频 | 成人国产精品入口 | 成人h电影| 免费人做人爱www的视 | 日韩久久精品一区二区 | 麻豆小视频在线观看 | 亚洲精品乱码久久 | 激情欧美丁香 | 丁香在线观看完整电影视频 | 亚洲六月丁香色婷婷综合久久 | 天天色天天搞 | 在线不卡a| 国产成人精品国内自产拍免费看 | 欧美日韩国产网站 | 免费视频你懂的 | 久久成人高清 | 欧美另类视频 | 亚洲天堂香蕉 | 久久精品中文视频 | 国产精品99精品久久免费 | 91大神一区二区三区 | 高清美女视频 | 日韩免费视频一区二区 | 久久免费国产精品1 | 日韩视频免费观看高清 | 中文字幕亚洲情99在线 | 久草91视频 | 最新超碰 | 超碰97人| 国产成人精品综合久久久 | 精品国产免费人成在线观看 | 午夜精品麻豆 | 免费观看91视频 | 久草在在线 | 九九九在线 | 精品国产免费久久 | 国产原创在线视频 | 国产精品久久网 | 在线日韩 | 国产日韩欧美视频在线观看 | 天天色视频 | 日本福利视频在线 | 日韩综合一区二区 | 国产成人久久av977小说 | 国产综合在线观看视频 | 亚洲综合国产精品 | 中文字幕美女免费在线 | 中文字幕视频网站 | 欧美日韩不卡在线 | 91视频在线免费下载 | a天堂最新版中文在线地址 久久99久久精品国产 | 91精品国产三级a在线观看 | 日韩精品久久久久久中文字幕8 | 欧美大荫蒂xxx | 国产视频91在线 | 日韩电影在线观看一区 | 久久精品中文视频 | 国产精品综合av一区二区国产馆 | 久久99这里只有精品 | www.com.日本一级 | 欧美特一级片 | 国产精品 中文在线 | 色吊丝av中文字幕 | 久久综合九色综合网站 | 欧洲亚洲女同hd | 国产成人a v电影 | 77国产精品| 亚洲国产欧美一区二区三区丁香婷 | 中文伊人 | 中国一 片免费观看 | 亚洲丁香日韩 | 69精品视频| 日韩.com | 欧美成人黄 | 777视频在线观看 | 成年人黄色大片在线 | 午夜av在线免费 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 国产亚洲aⅴaaaaaa毛片 | 国产一级高清 | 97国产大学生情侣白嫩酒店 | 波多野结衣日韩 | 新av在线 | 国产亚洲精品福利 | 五月天久久久久 | 国产午夜av | 成人app在线播放 | 99精品国产在热久久下载 | 国产青草视频在线观看 | 男女男视频 | 亚洲精品日韩在线观看 | 久久亚洲欧美日韩精品专区 | 久草在线久 | 国产高清在线观看av | 久久精品视频网站 | 欧美性一级观看 | www.香蕉视频在线观看 | 视频在线观看日韩 | 四虎免费在线观看视频 | 精品你懂的 | 国产91在线看 | 精品久久久久一区二区国产 | 欧美在线不卡一区 | 韩国三级一区 | a天堂最新版中文在线地址 久久99久久精品国产 | 91人人视频在线观看 | 国产高h视频 | 日韩精品久久久久久久电影竹菊 | 网站免费黄色 | 成人h动漫在线看 | 99热最新地址 | 精品国产一区二区三区四区vr | 国产精品99久久久久久人免费 | 色婷婷亚洲婷婷 | 手机在线看永久av片免费 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 久久视频国产 | 精品国产一区二区三区四区在线观看 | 日韩精品一区二区在线观看 | 99超碰在线播放 | 就色干综合| 国产 中文 日韩 欧美 | 日韩欧美在线高清 | av理论电影| 久久综合欧美 | 亚洲三级影院 | 97超碰站 | 99精品在线播放 | 玖玖在线视频观看 | 国产精久久久 | www.久久com| 久久久久久久久久影院 | 麻豆一区二区三区视频 | 亚洲精品激情 | 99这里只有精品视频 | 不卡av在线 | 成人国产网址 | 亚洲精品国产综合99久久夜夜嗨 | 三级av中文字幕 | 亚洲综合小说电影qvod | 中文字幕 国产视频 | 国产一区二区久久久久 | 亚洲精品在线观看不卡 | 91在线视频观看免费 | 最新国产中文字幕 | 日日夜夜天天综合 | 岛国精品一区二区 | 国产高潮久久 | 国产成人99久久亚洲综合精品 | 免费av片在线 | 亚洲黄色小说网址 | 美女免费视频观看网站 | 中文字幕视频免费观看 | av福利在线免费观看 | 国产精品第72页 | 天堂av免费在线 | 中文字幕免费一区二区 | 欧美精品一区二区三区一线天视频 | 九九九在线观看视频 | 免费成人在线观看 | 亚洲成a人片77777潘金莲 | 欧美日韩视频免费 | 久久久综合电影 | www日| 狠狠色噜噜狠狠狠狠 | 国产一区高清在线 | 三级av在线播放 | 婷婷 综合 色| 激情影音 | 国产第一页在线播放 | 久久精品一二三 | 又黄又刺激又爽的视频 | 日本久久久久久 | 日韩有码专区 | 国产黄色片在线 | 在线观看欧美成人 | 九九色网 | 日韩免费电影一区二区 | 欧美日韩中文国产 | 日本特黄特色aaa大片免费 | 日韩美女高潮 | 国产午夜剧场 | 天堂在线视频中文网 | 中文字幕在线观看免费高清电影 | 最近2019好看的中文字幕免费 | 亚洲另类视频 | 国产精品精品 | 久久大片| 国色天香永久免费 | 国产精品久久久久久久免费大片 | 久久中文字幕导航 | 91精品国自产在线观看欧美 | 亚洲另类视频在线 | 丁香六月天 | 日本不卡一区二区 | 国产精品色视频 | 日本久久久久久久久久久 | 97精品视频在线播放 | 国产久草在线观看 | 91人人网 | 成人9ⅰ免费影视网站 | sm免费xx网站 | 超碰97免费| 天天综合视频在线观看 | 天天干天天搞天天射 | 国产a精品 | 五月婷婷一区 | 国产91精品一区二区绿帽 | aaa免费毛片 | 成人理论电影 | www日韩在线 | 91在线看黄| a视频免费 | 91精品免费在线观看 | 亚洲精品视频免费看 | 日韩大片在线播放 | 国产一线二线三线在线观看 | 国产九九热视频 | 亚洲五月花 | 天天综合天天做天天综合 | 国产精品一区二区三区免费视频 | 草莓视频在线观看免费观看 | 在线视频日韩一区 | 国产精品婷婷午夜在线观看 | 日韩视频a| 天天操综合网 | 天天爽天天爽天天爽 | 国产日韩欧美在线影视 | 97碰碰精品嫩模在线播放 | 中文字幕国产 | 日韩欧美久久 | 一区二区精品国产 | 国产精品大片免费观看 | 久草视频在线资源 | 精品久久久久久久久久久久久久久久久久 | a视频在线观看 | 狠狠狠狠狠狠操 | av免费播放 | 日本在线视频一区二区三区 | 五月天激情综合网 | 色婷婷综合久久久中文字幕 | 99久久免费看 | www.色爱| av黄色在线| 久久亚洲精品电影 | 探花视频网站 | av免费在线看网站 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 成人动漫视频在线 | 久久久久欠精品国产毛片国产毛生 | 中文区中文字幕免费看 | 91久久国产综合精品女同国语 | 91丨九色丨高潮丰满 | 国产精品毛片久久蜜 | 一本色道久久综合亚洲二区三区 | 午夜久久 | 中文字幕免费播放 | 欧美在线1| 国产精品一区二区在线看 | 久久久国产精品久久久 | av播放在线 | 黄色小说视频在线 | 久久久五月天 | 在线观看岛国片 | 亚洲精品理论 | 九九色综合 | 91精品国自产拍天天拍 | 美女黄频网站 | 伊人天天 | 91亚色视频 | bbb搡bbb爽爽爽 | 一二区电影 | 成人h视频在线播放 | 最新中文字幕在线播放 | 最新99热 | 日韩系列在线观看 | 天天视频色版 | 91视频高清完整版 | 91探花在线视频 | 一级成人在线 | 亚洲视频在线视频 | 国产精品第2页 | 欧美性一级观看 | 欧美在线久久 | 亚洲国内精品 | 国产色影院 | 99免费视频 | 中文字幕 第二区 | 久久久久99精品成人片三人毛片 | 亚洲精品视频在线观看免费视频 | 久久av观看 | 三级黄在线 | 色综合天天综合 | www色com| 国产精品二区在线观看 | 欧美日韩精品在线一区二区 | 国产在线观看免费观看 | 久久夜色精品国产欧美一区麻豆 | 国产精品久久久久久久久久直播 | 日韩毛片在线免费观看 | 97在线影院 | 免费激情在线电影 | 亚洲涩涩色 | 97在线观看免费观看 | 激情 一区二区 | 高清中文字幕av | 在线观看日韩免费视频 | 麻花豆传媒mv在线观看网站 | 欧美国产精品一区二区 | 久操视频在线免费看 | 99视频国产精品免费观看 | 狠狠色香婷婷久久亚洲精品 | 韩国精品一区二区三区六区色诱 | 91精品国产综合久久婷婷香蕉 | 日本精品午夜 | 亚洲精品在线观 | 国产精品日韩在线 | 丁香花中文字幕 | 久草视频在线新免费 | 国产高清在线免费观看 | 奇米影视8888在线观看大全免费 | 国内免费久久久久久久久久久 | 久久国际影院 | 精品美女国产在线 | 天天摸天天操天天爽 | 六月丁香激情网 | 粉嫩av一区二区三区四区五区 | 久久人人爽人人爽人人片av软件 | 欧美成亚洲| 免费精品视频 | 欧美最新大片在线看 | 超碰97在线资源站 | 97超碰人人澡人人 | 天天操天天色天天 | 国产在线视频一区二区三区 | 91在线看视频免费 | 久久久久成人精品 | 国产精品婷婷午夜在线观看 | 精品国产区 | 国产精品久久久久久久久毛片 | 日韩中午字幕 | 天天色.com| 91天天视频 | 96在线| 国产精品精品国产 | 最新真实国产在线视频 | 91精品啪在线观看国产81旧版 | 91av原创 | 一区二区三区四区不卡 | 久久黄色影视 | 国产一区二区高清不卡 | 精品一二三四视频 | 久久黄视频 | 狠狠干我 | 麻豆国产网站入口 | 国产伦精品一区二区三区照片91 | 狠狠干夜夜操天天爽 | 日韩在线电影一区二区 | 久久久免费国产 | 久久国产精品色婷婷 | 亚洲三级国产 | 欧美精品久久久久久久 | 亚洲亚洲精品在线观看 | 免费黄色av电影 | www久久久 | 五月宗合网 | 欧美激情视频在线免费观看 | 亚洲国产精品日韩 | 在线免费中文字幕 | 亚洲人成人99网站 | 亚洲国产精品久久 | 黄网站app在线观看免费视频 | 中文在线字幕观看电影 | 青青河边草观看完整版高清 | 日韩久久影院 | 六月丁香激情网 | 公与妇乱理三级xxx 在线观看视频在线观看 | 9色在线视频 | 国产日产精品一区二区三区四区 | 精品资源在线 | a天堂在线看| 97视频在线免费观看 | 手机成人在线 | 成年美女黄网站色大片免费看 | 欧美午夜理伦三级在线观看 | 最新国产在线观看 | 国产又粗又猛又黄又爽的视频 | 日韩av在线免费看 | 黄污视频大全 | 日日草av| 日韩肉感妇bbwbbwbbw | a黄色大片 | 手机在线视频福利 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 成人欧美一区二区三区在线观看 | 在线观看成年人 | 免费毛片一区二区三区久久久 | 96久久久 | 亚洲精品白浆高清久久久久久 | 伊人影院99 | 国产欧美综合在线观看 | 成人一区影院 | 天堂网一区| 91在线视频观看免费 | 午夜久久网站 | www.五月婷婷.com | 99久久综合精品五月天 | 人人艹人人| 亚洲精品视频播放 | 99久久久久国产精品免费 | 狠狠狠色丁香婷婷综合激情 | 久久综合狠狠综合 | 免费精品久久久 | 亚洲精品国产精品乱码不99热 | sm免费xx网站 | 国产精品久久久久久久久搜平片 | 在线观看av免费观看 | 久久99精品国产99久久 | 黄色大片国产 | 国产精选视频 | 91视频在线观看免费 | 婷婷5月色 | 国产亚洲va综合人人澡精品 | 少妇精69xxtheporn| av九九九 | 玖玖国产精品视频 | 欧美色久 | 自拍超碰在线 | 99精品黄色片免费大全 | 婷婷视频导航 | 在线观看一区 | 亚洲午夜久久久久久久久电影网 | 日本久久视频 | 欧美黄污视频 | 亚洲全部视频 | 免费观看的av | a久久久久| 欧美日韩一区二区视频在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 91精彩在线视频 | 91成人免费在线视频 | 97av在线| 亚洲一级久久 | 日韩中文字幕国产 | 久久久免费少妇 | 一级国产视频 | 久久人视频| 在线国产不卡 | 精品黄色视 | 国产色女 | 免费亚洲成人 | 一区二区三区免费在线观看视频 | 国产精品观看在线亚洲人成网 | 91av九色 | 国产成人精品aaa | 97综合视频 | 欧美日韩高清一区二区 | 日本三级久久 | 99精品久久久久久久久久综合 | 中文字幕在线视频国产 | 精品国产一区二区三区噜噜噜 | 天天操夜夜逼 | 99久久免费看 | 精品国产成人在线影院 | 日本在线精品视频 | 亚洲精品视频免费在线观看 | 伊人久久电影网 | 麻豆免费精品视频 | 久久综合干| 国产一区免费观看 | 去看片| 午夜精品视频一区 | 久久优 | 在线看的毛片 | 视频三区在线 | 国产欧美精品一区二区三区四区 | 国产高清在线免费观看 | 亚洲一级黄色av | 亚洲欧美国产精品va在线观看 | 欧美一级日韩三级 | 午夜影视一区 | 欧美日韩亚洲精品在线 | 干亚洲少妇 | 91人人澡人人爽人人精品 | 丁香六月五月婷婷 | 日韩视频免费观看高清完整版在线 | 久久久免费 | 国产精成人品免费观看 | 国产精品久久久免费看 | 超碰在线97观看 | 欧美在线观看视频一区二区三区 | 在线观看中文字幕视频 | 99热都是精品| 日韩精品中文字幕有码 | av在线a | 亚洲精品tv久久久久久久久久 | 青青久视频 | 国产精品久久久久一区二区三区 | 亚洲免费在线视频 | av中文在线影视 | 精品久久一 | 中文 一区二区 | 一级片视频免费观看 | 麻豆视频在线观看免费 | 九九热在线观看 | 久操操 | 久99久中文字幕在线 | 国产高清一级 | 精品一区电影国产 | 精品国产伦一区二区三区观看说明 | 亚洲精品综合一二三区在线观看 | 成人av资源在线 | 天天操天天色天天 | 色婷婷激情综合 | 精油按摩av | www.伊人色.com| 日韩视频在线播放 | 国产三级视频 | 中文永久免费观看 | 久草在线久草在线2 | 人人干干人人 | 国产一区二区三区网站 | 亚洲精品99久久久久中文字幕 | 国产成人亚洲在线观看 | 天堂av在线 | 亚洲一区 影院 | 在线精品视频免费观看 | 日韩 精品 一区 国产 麻豆 | 成人国产在线 | 中文字幕一区二区三区久久蜜桃 | 欧美色操| 天天爽天天爽天天爽 | 国产亚洲亚洲 | 麻豆91在线看| 欧美一二三专区 | 人人爱人人添 | 五月婷婷综合激情 | 麻豆av一区二区三区在线观看 | 五月婷婷在线视频观看 | 欧美日韩首页 | 在线精品在线 | 久久久久免费观看 | 五月婷婷欧美视频 | 在线亚洲成人 | 麻豆传媒视频在线播放 | 日韩国产欧美在线视频 | 成人精品一区二区三区电影免费 | 一区电影 | 色在线视频 | 国产日韩欧美在线影视 | 91精品婷婷国产综合久久蝌蚪 | 久久婷婷亚洲 | 久久久三级视频 | 国产精品一区在线观看 | 香蕉视频国产在线观看 | 国产精品成人在线 | 欧美激情精品久久久久久免费印度 | 精品国产aⅴ一区二区三区 在线直播av | 国产精品久久久久久久毛片 | 成人在线免费小视频 | 久久人人爽人人 | 韩国精品福利一区二区三区 | 亚洲a在线观看 | 久久久毛片| 久久免费精品视频 | 极品久久久 | 久久成人综合视频 | 亚洲精品字幕在线观看 | 9999亚洲| 成人亚洲欧美 | 激情综合五月天 | 久久这里精品视频 | 中文字幕在线视频精品 | 99久久久久成人国产免费 | 美女国产免费 | 在线亚洲欧美视频 | 亚洲2019精品 | 日韩欧美视频在线免费观看 | 日韩电影在线观看中文字幕 | 国产精品久久av | 国产免费叼嘿网站免费 | 99r精品视频在线观看 | 97av影院 | 免费精品视频在线 | 成人中文字幕av | 国产精品久久久久永久免费看 | 中文在线www | 中文字幕欧美日韩va免费视频 | 黄色av网站在线观看 | 超碰人人射| 91视频中文字幕 | jizz18欧美18 | 久久精品99国产国产 | 国产精品一区二区三区久久久 | 2024国产在线 | 99热精品久久 | 国产二区免费视频 | 天天操天天舔天天干 | 成人久久亚洲 | 中文字幕欲求不满 | 久草视频在 | 婷婷色 亚洲 | 国产精品系列在线播放 | 99久久夜色精品国产亚洲 | 91成人精品国产刺激国语对白 | 亚洲成人动漫在线观看 | 日韩免费成人av | 国产精品乱码久久 | 精品毛片一区二区免费看 | 99在线观看免费视频精品观看 | av黄色在线 | 大荫蒂欧美视频另类xxxx | 韩日电影在线 | 婷婷色综合网 | 干干干操操操 | 亚洲男男gⅴgay双龙 | 成人一区影院 | 欧美亚洲精品一区 | 精品播放 | 久久亚洲婷婷 | 一区二区三区精品在线视频 | 91入口在线观看 | 精品久久久久久电影 | 天天干天天在线 | 日韩av片在线 | 日韩一级片大全 | 欧美日韩国产一区二 | 黄色在线网站噜噜噜 | 日韩av有码在线 | 日韩精品欧美精品 | 午夜精品视频免费在线观看 | 亚洲黄色一级视频 | 1024在线看片 | 日韩在线免费 | 激情黄色一级片 | 中文字幕 在线 一 二 | 成人av网页 | 国产91丝袜在线播放动漫 | 久草在线精品观看 | 久久婷婷一区二区三区 | 国产在线观看91 | 99久久久久久久久 | 在线视频专区 | 成人久久久精品国产乱码一区二区 | 在线亚洲欧美视频 | 婷婷深爱五月 | 久久96国产精品久久99软件 | 久草网在线观看 | 高清美女视频 | 五月天婷婷在线观看视频 | 狠狠操天天射 | www.狠狠干 | 三级黄色三级 | 日韩激情免费视频 | 天天曰天天 | 久久亚洲综合国产精品99麻豆的功能介绍 | 91桃色免费观看 | 天天天天天天天天操 | 91污污| 日韩av资源站 | 中文字幕欧美日韩va免费视频 | www色av | 国产精品久久久久久久久免费看 | 成人一区二区三区在线观看 | 国产免费观看久久黄 | 国产精品久久久久久久久久东京 | 91九色精品国产 | 在线播放 日韩专区 | 99热 精品在线 | 五月天综合婷婷 | 久久久久免费网 | 成人在线视频你懂的 | 成人xxxx | 久射网 | 久久综合之合合综合久久 | 最近免费中文字幕大全高清10 | 黄色毛片大全 | 国产精品美女视频网站 | 在线成人免费电影 | 啪啪午夜免费 | 丁香花在线观看视频在线 | 亚洲综合视频在线播放 | 国产高清视频在线观看 | 色网站在线看 | 欧美 日韩 成人 | 欧美一区二区在线免费看 | 成人av高清 | 久久久精品国产一区二区 | 六月婷色 | 三级av免费观看 | 欧美色精品天天在线观看视频 | 精品久操 | 久久无码精品一区二区三区 | 狠狠色丁香婷婷综合欧美 | 免费久久久 | 久久手机免费视频 | 国产精品自产拍在线观看桃花 | 四虎永久免费网站 | 欧美性生活免费 | 最近中文字幕完整高清 | 午夜在线免费观看 | 色999在线 | 91av在线看 | 97国产在线视频 | 国产精品久久久久免费 | 午夜视频在线观看一区二区三区 | 国产综合精品一区二区三区 | 日韩精品专区 | 久久国产精品一区二区三区四区 | 久久精品欧美一 | 欧美一区二区在线 | 一区二区三区四区在线免费观看 | 精品国产美女在线 | 超碰97免费 | 精品9999 | 狠狠狠的干 | 天天曰视频 | 欧美一级黄色视屏 | 欧美少妇影院 | 丰满少妇在线观看网站 | 在线电影av | 丁香婷婷激情国产高清秒播 | 在线免费观看视频一区二区三区 | 国产一二三区在线观看 |