您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ClearPageSwapCache函数代码示例

51自学网 2021-06-01 20:11:17
  C++
这篇教程C++ ClearPageSwapCache函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ClearPageSwapCache函数的典型用法代码示例。如果您正苦于以下问题:C++ ClearPageSwapCache函数的具体用法?C++ ClearPageSwapCache怎么用?C++ ClearPageSwapCache使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ClearPageSwapCache函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: add_to_swap_cache

/* * add_to_swap_cache resembles add_to_page_cache_locked on swapper_space, * but sets SwapCache flag and private instead of mapping and index. */int add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp_mask){	int error;	VM_BUG_ON(!PageLocked(page));	VM_BUG_ON(PageSwapCache(page));	VM_BUG_ON(!PageSwapBacked(page));	error = radix_tree_preload(gfp_mask);	if (!error) {		page_cache_get(page);		SetPageSwapCache(page);		set_page_private(page, entry.val);		spin_lock_irq(&swapper_space.tree_lock);		error = radix_tree_insert(&swapper_space.page_tree,						entry.val, page);		if (likely(!error)) {			total_swapcache_pages++;			__inc_zone_page_state(page, NR_FILE_PAGES);			INC_CACHE_INFO(add_total);		}		spin_unlock_irq(&swapper_space.tree_lock);		radix_tree_preload_end();		if (unlikely(error)) {			set_page_private(page, 0UL);			ClearPageSwapCache(page);			page_cache_release(page);		}	}	return error;}
开发者ID:feravolt,项目名称:FeraLab_GB_Firmware--archive,代码行数:37,


示例2: __add_to_swap_cache

/* * __add_to_swap_cache resembles add_to_page_cache_locked on swapper_space, * but sets SwapCache flag and private instead of mapping and index. */static int __add_to_swap_cache(struct page *page, swp_entry_t entry){	int error;	VM_BUG_ON(!PageLocked(page));	VM_BUG_ON(PageSwapCache(page));	VM_BUG_ON(!PageSwapBacked(page));	page_cache_get(page);	SetPageSwapCache(page);	set_page_private(page, entry.val);	spin_lock_irq(&swapper_space.tree_lock);	error = radix_tree_insert(&swapper_space.page_tree, entry.val, page);	if (likely(!error)) {		total_swapcache_pages++;		__inc_zone_page_state(page, NR_FILE_PAGES);		INC_CACHE_INFO(add_total);	}	spin_unlock_irq(&swapper_space.tree_lock);	if (unlikely(error)) {		/*		 * Only the context which have set SWAP_HAS_CACHE flag		 * would call add_to_swap_cache().		 * So add_to_swap_cache() doesn't returns -EEXIST.		 */		VM_BUG_ON(error == -EEXIST);		set_page_private(page, 0UL);		ClearPageSwapCache(page);		page_cache_release(page);	}	return error;}
开发者ID:yl849646685,项目名称:linux-2.6.32,代码行数:39,


示例3: __delete_from_swap_cache

/** * __delete_from_swap_cache:page从交换区高速缓存中删去 */void __delete_from_swap_cache(struct page *page){	VM_BUG_ON(!PageLocked(page));	VM_BUG_ON(!PageSwapCache(page));	VM_BUG_ON(PageWriteback(page));	radix_tree_delete(&swapper_space.page_tree, page_private(page));	set_page_private(page, 0);	ClearPageSwapCache(page);	total_swapcache_pages--;	__dec_zone_page_state(page, NR_FILE_PAGES);	INC_CACHE_INFO(del_total);}
开发者ID:yl849646685,项目名称:linux-2.6.32,代码行数:16,


示例4: __delete_from_swap_cache

/* * This must be called only on pages that have * been verified to be in the swap cache. */void __delete_from_swap_cache(struct page *page){	BUG_ON(!PageLocked(page));	BUG_ON(!PageSwapCache(page));	BUG_ON(PageWriteback(page));	BUG_ON(PagePrivate(page));	radix_tree_delete(&swapper_space.page_tree, page_private(page));	set_page_private(page, 0);	ClearPageSwapCache(page);	total_swapcache_pages--;	pagecache_acct(-1);	INC_CACHE_INFO(del_total);}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-e-f_fw-20-10-7-5,代码行数:18,


示例5: __add_to_swap_cache

/* * __add_to_swap_cache resembles add_to_page_cache_locked on swapper_space, * but sets SwapCache flag and private instead of mapping and index. */int __add_to_swap_cache(struct page *page, swp_entry_t entry){	int error, i, nr = hpage_nr_pages(page);	struct address_space *address_space;	pgoff_t idx = swp_offset(entry);	VM_BUG_ON_PAGE(!PageLocked(page), page);	VM_BUG_ON_PAGE(PageSwapCache(page), page);	VM_BUG_ON_PAGE(!PageSwapBacked(page), page);	page_ref_add(page, nr);	SetPageSwapCache(page);	address_space = swap_address_space(entry);	spin_lock_irq(&address_space->tree_lock);	for (i = 0; i < nr; i++) {		set_page_private(page + i, entry.val + i);		error = radix_tree_insert(&address_space->page_tree,					  idx + i, page + i);		if (unlikely(error))			break;	}	if (likely(!error)) {		address_space->nrpages += nr;		__mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, nr);		ADD_CACHE_INFO(add_total, nr);	} else {		/*		 * Only the context which have set SWAP_HAS_CACHE flag		 * would call add_to_swap_cache().		 * So add_to_swap_cache() doesn't returns -EEXIST.		 */		VM_BUG_ON(error == -EEXIST);		set_page_private(page + i, 0UL);		while (i--) {			radix_tree_delete(&address_space->page_tree, idx + i);			set_page_private(page + i, 0UL);		}		ClearPageSwapCache(page);		page_ref_sub(page, nr);	}	spin_unlock_irq(&address_space->tree_lock);	return error;}
开发者ID:mdamt,项目名称:linux,代码行数:49,


示例6: __delete_from_swap_cache

/* * This must be called only on pages that have * been verified to be in the swap cache. */void __delete_from_swap_cache(struct page *page){    swp_entry_t entry;    struct address_space *address_space;    VM_BUG_ON_PAGE(!PageLocked(page), page);    VM_BUG_ON_PAGE(!PageSwapCache(page), page);    VM_BUG_ON_PAGE(PageWriteback(page), page);    entry.val = page_private(page);    address_space = swap_address_space(entry);    radix_tree_delete(&address_space->page_tree, page_private(page));    set_page_private(page, 0);    ClearPageSwapCache(page);    address_space->nrpages--;    __dec_zone_page_state(page, NR_FILE_PAGES);    INC_CACHE_INFO(del_total);}
开发者ID:oldzhu,项目名称:linux,代码行数:22,


示例7: __add_to_swap_cache

/* * __add_to_swap_cache resembles add_to_page_cache_locked on swapper_space, * but sets SwapCache flag and private instead of mapping and index. */int __add_to_swap_cache(struct page *page, swp_entry_t entry){    int error;    struct address_space *address_space;    VM_BUG_ON_PAGE(!PageLocked(page), page);    VM_BUG_ON_PAGE(PageSwapCache(page), page);    VM_BUG_ON_PAGE(!PageSwapBacked(page), page);    get_page(page);    SetPageSwapCache(page);    set_page_private(page, entry.val);    address_space = swap_address_space(entry);    spin_lock_irq(&address_space->tree_lock);    error = radix_tree_insert(&address_space->page_tree,                              entry.val, page);    if (likely(!error)) {        address_space->nrpages++;        __inc_zone_page_state(page, NR_FILE_PAGES);        INC_CACHE_INFO(add_total);    }    spin_unlock_irq(&address_space->tree_lock);    if (unlikely(error)) {        /*         * Only the context which have set SWAP_HAS_CACHE flag         * would call add_to_swap_cache().         * So add_to_swap_cache() doesn't returns -EEXIST.         */        VM_BUG_ON(error == -EEXIST);        set_page_private(page, 0UL);        ClearPageSwapCache(page);        put_page(page);    }    return error;}
开发者ID:oldzhu,项目名称:linux,代码行数:42,


示例8: __delete_from_swap_cache

/* * This must be called only on pages that have * been verified to be in the swap cache. */void __delete_from_swap_cache(struct page *page){	struct address_space *address_space;	int i, nr = hpage_nr_pages(page);	swp_entry_t entry;	pgoff_t idx;	VM_BUG_ON_PAGE(!PageLocked(page), page);	VM_BUG_ON_PAGE(!PageSwapCache(page), page);	VM_BUG_ON_PAGE(PageWriteback(page), page);	entry.val = page_private(page);	address_space = swap_address_space(entry);	idx = swp_offset(entry);	for (i = 0; i < nr; i++) {		radix_tree_delete(&address_space->page_tree, idx + i);		set_page_private(page + i, 0);	}	ClearPageSwapCache(page);	address_space->nrpages -= nr;	__mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, -nr);	ADD_CACHE_INFO(del_total, nr);}
开发者ID:mdamt,项目名称:linux,代码行数:27,



注:本文中的ClearPageSwapCache函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ClearPageUptodate函数代码示例
C++ ClearPageReserved函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。