-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2012, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
pg->addr = (void *)((__u64)addr & (~((__u64)PAGE_SIZE-1)));
pg->mapping = addr;
cfs_atomic_set(&pg->count, 1);
- cfs_set_bit(PG_virt, &(pg->flags));
+ set_bit(PG_virt, &(pg->flags));
cfs_enter_debugger();
return pg;
}
ASSERT(pg->addr != NULL);
ASSERT(cfs_atomic_read(&pg->count) <= 1);
- if (!cfs_test_bit(PG_virt, &pg->flags)) {
+ if (!test_bit(PG_virt, &pg->flags)) {
cfs_mem_cache_free(cfs_page_p_slab, pg->addr);
cfs_atomic_dec(&libcfs_total_pages);
} else {
cfs_mem_cache_free(cfs_page_t_slab, pg);
}
-cfs_page_t *cfs_alloc_pages(unsigned int flags, unsigned int order)
-{
- cfs_page_t *pg;
- pg = cfs_mem_cache_alloc(cfs_page_t_slab, 0);
-
- if (NULL == pg) {
- cfs_enter_debugger();
- return NULL;
- }
-
- memset(pg, 0, sizeof(cfs_page_t));
- pg->addr = cfs_alloc((CFS_PAGE_SIZE << order),0);
- cfs_atomic_set(&pg->count, 1);
-
- if (pg->addr) {
- if (cfs_is_flag_set(flags, CFS_ALLOC_ZERO)) {
- memset(pg->addr, 0, CFS_PAGE_SIZE << order);
- }
- cfs_atomic_add(1 << order, &libcfs_total_pages);
- } else {
- cfs_enter_debugger();
- cfs_mem_cache_free(cfs_page_t_slab, pg);
- pg = NULL;
- }
-
- return pg;
-}
-
-void __cfs_free_pages(cfs_page_t *pg, unsigned int order)
-{
- ASSERT(pg != NULL);
- ASSERT(pg->addr != NULL);
- ASSERT(cfs_atomic_read(&pg->count) <= 1);
-
- cfs_atomic_sub(1 << order, &libcfs_total_pages);
- cfs_free(pg->addr);
- cfs_mem_cache_free(cfs_page_t_slab, pg);
-}
-
int cfs_mem_is_in_cache(const void *addr, const cfs_mem_cache_t *kmem)
{
KdPrint(("cfs_mem_is_in_cache: not implemented. (should maintain a"
ExFreeToNPagedLookasideList(&(kmc->npll), buf);
}
-cfs_spinlock_t shrinker_guard = {0};
+spinlock_t shrinker_guard = {0};
CFS_LIST_HEAD(shrinker_hdr);
cfs_timer_t shrinker_timer = {0};
{
struct cfs_shrinker * s = (struct cfs_shrinker *)
cfs_alloc(sizeof(struct cfs_shrinker), CFS_ALLOC_ZERO);
- if (s) {
- s->cb = cb;
- s->seeks = seeks;
- s->nr = 2;
- cfs_spin_lock(&shrinker_guard);
- cfs_list_add(&s->list, &shrinker_hdr);
- cfs_spin_unlock(&shrinker_guard);
- }
-
- return s;
+ if (s) {
+ s->cb = cb;
+ s->seeks = seeks;
+ s->nr = 2;
+ spin_lock(&shrinker_guard);
+ cfs_list_add(&s->list, &shrinker_hdr);
+ spin_unlock(&shrinker_guard);
+ }
+
+ return s;
}
void cfs_remove_shrinker(struct cfs_shrinker *s)
{
- struct cfs_shrinker *tmp;
- cfs_spin_lock(&shrinker_guard);
+ struct cfs_shrinker *tmp;
+ spin_lock(&shrinker_guard);
#if TRUE
cfs_list_for_each_entry_typed(tmp, &shrinker_hdr,
struct cfs_shrinker, list) {
#else
cfs_list_del(&s->list);
#endif
- cfs_spin_unlock(&shrinker_guard);
- cfs_free(s);
+ spin_unlock(&shrinker_guard);
+ cfs_free(s);
}
/* time ut test proc */
void shrinker_timer_proc(ulong_ptr_t arg)
{
- struct cfs_shrinker *s;
- cfs_spin_lock(&shrinker_guard);
-
- cfs_list_for_each_entry_typed(s, &shrinker_hdr,
- struct cfs_shrinker, list) {
- s->cb(s->nr, __GFP_FS);
- }
- cfs_spin_unlock(&shrinker_guard);
- cfs_timer_arm(&shrinker_timer, 300);
+ struct cfs_shrinker *s;
+ spin_lock(&shrinker_guard);
+
+ cfs_list_for_each_entry_typed(s, &shrinker_hdr,
+ struct cfs_shrinker, list) {
+ s->cb(s->nr, __GFP_FS);
+ }
+ spin_unlock(&shrinker_guard);
+ cfs_timer_arm(&shrinker_timer, 300);
}
int start_shrinker_timer()