[lc-checkins] CVS: linux/include/linux comp_cache.h,1.29,1.30 mm.h,1.8,1.9 swap.h,1.11,1.12 sysctl.h
Status: Beta
Brought to you by:
nitin_sf
|
From: Rodrigo S. de C. <rc...@us...> - 2001-12-12 20:45:50
|
Update of /cvsroot/linuxcompressed/linux/include/linux
In directory usw-pr-cvs1:/tmp/cvs-serv17791/include/linux
Modified Files:
comp_cache.h mm.h swap.h sysctl.h
Log Message:
- 0.20pre2 version updated from 2.4.10 to 2.4.16.
- Code was rewritten in swapfile.c to work with the new swap file functions
(swap_free, swap_duplicate, swap_info_get, swap_info_put, etc).
Index: comp_cache.h
===================================================================
RCS file: /cvsroot/linuxcompressed/linux/include/linux/comp_cache.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -r1.29 -r1.30
*** comp_cache.h 2001/10/08 14:56:35 1.29
--- comp_cache.h 2001/12/12 20:45:46 1.30
***************
*** 2,6 ****
* linux/mm/comp_cache.h
*
! * Time-stamp: <2001-10-06 17:17:13 rcastro>
*
* Linux Virtual Memory Compressed Cache
--- 2,6 ----
* linux/mm/comp_cache.h
*
! * Time-stamp: <2001-12-11 12:56:38 rcastro>
*
* Linux Virtual Memory Compressed Cache
***************
*** 349,353 ****
#define vswap_address_available() (!list_empty(&vswap_address_free_head))
! #define virtual_swap_address(entry) (SWP_TYPE(entry) == COMP_CACHE_SWP_TYPE)
#define real_swap_address(offset) (vswap_address[offset]->real_entry.val)
#define vswap_locked(offset) (down_trylock(&vswap_address[offset]->sem))
--- 349,354 ----
#define vswap_address_available() (!list_empty(&vswap_address_free_head))
! #define vswap_info_struct(p) (p == &swap_info[COMP_CACHE_SWP_TYPE])
! #define vswap_address(entry) (SWP_TYPE(entry) == COMP_CACHE_SWP_TYPE)
#define real_swap_address(offset) (vswap_address[offset]->real_entry.val)
#define vswap_locked(offset) (down_trylock(&vswap_address[offset]->sem))
***************
*** 361,365 ****
void comp_cache_swp_duplicate(swp_entry_t);
! void comp_cache_swp_free_generic(swp_entry_t, int);
int comp_cache_swp_count(swp_entry_t);
--- 362,366 ----
void comp_cache_swp_duplicate(swp_entry_t);
! int comp_cache_swp_free_generic(swp_entry_t, int);
int comp_cache_swp_count(swp_entry_t);
Index: mm.h
===================================================================
RCS file: /cvsroot/linuxcompressed/linux/include/linux/mm.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** mm.h 2001/09/29 20:30:14 1.8
--- mm.h 2001/12/12 20:45:46 1.9
***************
*** 44,48 ****
struct mm_struct * vm_mm; /* The address space we belong to. */
unsigned long vm_start; /* Our start address within vm_mm. */
! unsigned long vm_end; /* Our end address within vm_mm. */
/* linked list of VM areas per task, sorted by address */
--- 44,49 ----
struct mm_struct * vm_mm; /* The address space we belong to. */
unsigned long vm_start; /* Our start address within vm_mm. */
! unsigned long vm_end; /* The first byte after our end address
! within vm_mm. */
/* linked list of VM areas per task, sorted by address */
***************
*** 111,114 ****
--- 112,119 ----
#define VM_RandomReadHint(v) ((v)->vm_flags & VM_RAND_READ)
+ /* read ahead limits */
+ extern int vm_min_readahead;
+ extern int vm_max_readahead;
+
/*
* mapping from the currently active vm_flags protection bits (the
***************
*** 126,130 ****
void (*open)(struct vm_area_struct * area);
void (*close)(struct vm_area_struct * area);
! struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int write_access);
};
--- 131,135 ----
void (*open)(struct vm_area_struct * area);
void (*close)(struct vm_area_struct * area);
! struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int unused);
};
***************
*** 271,277 ****
#define PG_uptodate 3
#define PG_dirty 4
! #define PG_decr_after 5
! #define PG_active 6
! #define PG_inactive 7
#define PG_slab 8
#define PG_skip 10
--- 276,282 ----
#define PG_uptodate 3
#define PG_dirty 4
! #define PG_unused 5
! #define PG_lru 6
! #define PG_active 7
#define PG_slab 8
#define PG_skip 10
***************
*** 280,292 ****
#define PG_arch_1 13
#define PG_reserved 14
!
#ifdef CONFIG_COMP_CACHE
! #define PG_comp_cache 15
#endif
#ifdef CONFIG_COMP_SWAP
! #define PG_comp_swap_cache 16
#endif
/* Make it prettier to test the above... */
#define Page_Uptodate(page) test_bit(PG_uptodate, &(page)->flags)
#define SetPageUptodate(page) set_bit(PG_uptodate, &(page)->flags)
--- 285,298 ----
#define PG_arch_1 13
#define PG_reserved 14
! #define PG_launder 15 /* written out by VM pressure.. */
#ifdef CONFIG_COMP_CACHE
! #define PG_comp_cache 16
#endif
#ifdef CONFIG_COMP_SWAP
! #define PG_comp_swap_cache 17
#endif
/* Make it prettier to test the above... */
+ #define UnlockPage(page) unlock_page(page)
#define Page_Uptodate(page) test_bit(PG_uptodate, &(page)->flags)
#define SetPageUptodate(page) set_bit(PG_uptodate, &(page)->flags)
***************
*** 300,311 ****
#define PageChecked(page) test_bit(PG_checked, &(page)->flags)
#define SetPageChecked(page) set_bit(PG_checked, &(page)->flags)
!
! extern void __set_page_dirty(struct page *);
! static inline void set_page_dirty(struct page * page)
! {
! if (!test_and_set_bit(PG_dirty, &page->flags))
! __set_page_dirty(page);
! }
/*
--- 306,313 ----
#define PageChecked(page) test_bit(PG_checked, &(page)->flags)
#define SetPageChecked(page) set_bit(PG_checked, &(page)->flags)
! #define PageLaunder(page) test_bit(PG_launder, &(page)->flags)
! #define SetPageLaunder(page) set_bit(PG_launder, &(page)->flags)
! extern void FASTCALL(set_page_dirty(struct page *));
/*
***************
*** 315,325 ****
* parallel wait_on_page).
*/
- #define UnlockPage(page) do { \
- smp_mb__before_clear_bit(); \
- if (!test_and_clear_bit(PG_locked, &(page)->flags)) BUG(); \
- smp_mb__after_clear_bit(); \
- if (waitqueue_active(&(page)->wait)) \
- wake_up(&(page)->wait); \
- } while (0)
#define PageError(page) test_bit(PG_error, &(page)->flags)
#define SetPageError(page) set_bit(PG_error, &(page)->flags)
--- 317,320 ----
***************
*** 329,335 ****
#define ClearPageReferenced(page) clear_bit(PG_referenced, &(page)->flags)
#define PageTestandClearReferenced(page) test_and_clear_bit(PG_referenced, &(page)->flags)
- #define PageDecrAfter(page) test_bit(PG_decr_after, &(page)->flags)
- #define SetPageDecrAfter(page) set_bit(PG_decr_after, &(page)->flags)
- #define PageTestandClearDecrAfter(page) test_and_clear_bit(PG_decr_after, &(page)->flags)
#define PageSlab(page) test_bit(PG_slab, &(page)->flags)
#define PageSetSlab(page) set_bit(PG_slab, &(page)->flags)
--- 324,327 ----
***************
*** 338,345 ****
#ifdef CONFIG_COMP_CACHE
! #define PageCompCache(page) test_bit(PG_comp_cache, &(page)->flags)
! #define PageSetCompCache(page) set_bit(PG_comp_cache, &(page)->flags)
! #define PageClearCompCache(page) clear_bit(PG_comp_cache, &(page)->flags)
! #define PageTestandSetCompCache(page) test_and_set_bit(PG_comp_cache, &(page)->flags)
#endif
#ifdef CONFIG_COMP_SWAP
--- 330,337 ----
#ifdef CONFIG_COMP_CACHE
! #define PageCompCache(page) test_bit(PG_comp_cache, &(page)->flags)
! #define PageSetCompCache(page) set_bit(PG_comp_cache, &(page)->flags)
! #define PageClearCompCache(page) clear_bit(PG_comp_cache, &(page)->flags)
! #define PageTestandSetCompCache(page) test_and_set_bit(PG_comp_cache, &(page)->flags)
#endif
#ifdef CONFIG_COMP_SWAP
***************
*** 353,364 ****
#define SetPageActive(page) set_bit(PG_active, &(page)->flags)
#define ClearPageActive(page) clear_bit(PG_active, &(page)->flags)
- #define TestandSetPageActive(page) test_and_set_bit(PG_active, &(page)->flags)
- #define TestandClearPageActive(page) test_and_clear_bit(PG_active, &(page)->flags)
! #define PageInactive(page) test_bit(PG_inactive, &(page)->flags)
! #define SetPageInactive(page) set_bit(PG_inactive, &(page)->flags)
! #define ClearPageInactive(page) clear_bit(PG_inactive, &(page)->flags)
! #define TestandSetPageInactive(page) test_and_set_bit(PG_inactive, &(page)->flags)
! #define TestandClearPageInactive(page) test_and_clear_bit(PG_inactive, &(page)->flags)
#ifdef CONFIG_HIGHMEM
--- 345,352 ----
#define SetPageActive(page) set_bit(PG_active, &(page)->flags)
#define ClearPageActive(page) clear_bit(PG_active, &(page)->flags)
! #define PageLRU(page) test_bit(PG_lru, &(page)->flags)
! #define TestSetPageLRU(page) test_and_set_bit(PG_lru, &(page)->flags)
! #define TestClearPageLRU(page) test_and_clear_bit(PG_lru, &(page)->flags)
#ifdef CONFIG_HIGHMEM
***************
*** 430,434 ****
extern void clear_page_tables(struct mm_struct *, unsigned long, int);
! struct page * shmem_nopage(struct vm_area_struct * vma, unsigned long address, int no_share);
struct file *shmem_file_setup(char * name, loff_t size);
extern void shmem_lock(struct file * file, int lock);
--- 418,423 ----
extern void clear_page_tables(struct mm_struct *, unsigned long, int);
! extern int fail_writepage(struct page *);
! struct page * shmem_nopage(struct vm_area_struct * vma, unsigned long address, int unused);
struct file *shmem_file_setup(char * name, loff_t size);
extern void shmem_lock(struct file * file, int lock);
***************
*** 451,454 ****
--- 440,444 ----
extern int ptrace_detach(struct task_struct *, unsigned int);
extern void ptrace_disable(struct task_struct *);
+ extern int ptrace_check_attach(struct task_struct *task, int kill);
/*
***************
*** 484,501 ****
}
! /*
! * Work out if there are any other processes sharing this
! * swap cache page. Never mind the buffers.
! */
! static inline int exclusive_swap_page(struct page *page)
! {
! if (!PageLocked(page))
! BUG();
! if (!PageSwapCache(page))
! return 0;
! if (page_count(page) - !!page->buffers != 2) /* 2: us + cache */
! return 0;
! return swap_count(page) == 1; /* 1: just cache */
! }
extern void __free_pte(pte_t);
--- 474,479 ----
}
! extern int can_share_swap_page(struct page *);
! extern int remove_exclusive_swap_page(struct page *);
extern void __free_pte(pte_t);
Index: swap.h
===================================================================
RCS file: /cvsroot/linuxcompressed/linux/include/linux/swap.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** swap.h 2001/10/08 14:56:35 1.11
--- swap.h 2001/12/12 20:45:46 1.12
***************
*** 11,20 ****
#ifdef CONFIG_COMP_CACHE
! /* some architectures may deal with SWP_ENTRY differently, such as
! * UML. Use MAX_SWAPFILES for COMP_CACHE_SWP_TYPE may cause problems,
! * so let's decrease the maximum number in order to use safely the
! * last swap file type (in this case 31) */
! #define MAX_SWAPFILES 31
#else
#define MAX_SWAPFILES 32
--- 11,20 ----
#ifdef CONFIG_COMP_CACHE
! /* Some architectures may deal with SWP_ENTRY differently, such as
! * UML. Using MAX_SWAPFILES for COMP_CACHE_SWP_TYPE may cause
! * problems, so let's decrease the maximum number in order to use
! * safely the last swap file type (in this case 31) */
+ #define MAX_SWAPFILES 31
#else
#define MAX_SWAPFILES 32
***************
*** 93,96 ****
--- 93,100 ----
extern int nr_swap_pages;
+
+ /* Swap 50% full? Release swapcache more aggressively.. */
+ #define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)
+
extern unsigned int nr_free_pages(void);
extern unsigned int nr_free_buffer_pages(void);
***************
*** 115,122 ****
extern void FASTCALL(lru_cache_del(struct page *));
- extern void FASTCALL(deactivate_page(struct page *));
- extern void FASTCALL(deactivate_page_nolock(struct page *));
extern void FASTCALL(activate_page(struct page *));
- extern void FASTCALL(activate_page_nolock(struct page *));
extern void swap_setup(void);
--- 119,123 ----
***************
*** 133,138 ****
/* linux/mm/swap_state.c */
extern void show_swap_cache_info(void);
! extern void add_to_swap_cache(struct page *, swp_entry_t);
extern void __delete_from_swap_cache(struct page *page);
extern void delete_from_swap_cache(struct page *page);
--- 134,142 ----
/* linux/mm/swap_state.c */
+ #define SWAP_CACHE_INFO
+ #ifdef SWAP_CACHE_INFO
extern void show_swap_cache_info(void);
! #endif
! extern int add_to_swap_cache(struct page *, swp_entry_t);
extern void __delete_from_swap_cache(struct page *page);
extern void delete_from_swap_cache(struct page *page);
***************
*** 142,148 ****
/* linux/mm/oom_kill.c */
! extern void oom_kill(void);
/* linux/mm/swapfile.c */
extern unsigned int nr_swapfiles;
extern struct swap_info_struct swap_info[];
--- 146,153 ----
/* linux/mm/oom_kill.c */
! extern void out_of_memory(void);
/* linux/mm/swapfile.c */
+ extern int total_swap_pages;
extern unsigned int nr_swapfiles;
extern struct swap_info_struct swap_info[];
***************
*** 156,159 ****
--- 161,165 ----
extern int valid_swaphandles(swp_entry_t, unsigned long *);
extern void swap_free(swp_entry_t);
+ extern void free_swap_and_cache(swp_entry_t);
struct swap_list_t {
int head; /* head of priority-ordered swapfile list */
***************
*** 164,176 ****
asmlinkage long sys_swapon(const char *, int);
- #define SWAP_CACHE_INFO
-
- #ifdef SWAP_CACHE_INFO
- extern unsigned long swap_cache_add_total;
- extern unsigned long swap_cache_del_total;
- extern unsigned long swap_cache_find_total;
- extern unsigned long swap_cache_find_success;
- #endif
-
extern spinlock_t pagemap_lru_lock;
--- 170,173 ----
***************
*** 183,191 ****
#define DEBUG_LRU_PAGE(page) \
do { \
! if (PageActive(page)) \
! BUG(); \
! if (PageInactive(page)) \
BUG(); \
! if (page_count(page) == 0) \
BUG(); \
} while (0)
--- 180,186 ----
#define DEBUG_LRU_PAGE(page) \
do { \
! if (!PageLRU(page)) \
BUG(); \
! if (PageActive(page)) \
BUG(); \
} while (0)
***************
*** 202,206 ****
do { \
DEBUG_LRU_PAGE(page); \
- SetPageInactive(page); \
list_add(&(page)->lru, &inactive_list); \
nr_inactive_pages++; \
--- 197,200 ----
***************
*** 212,216 ****
ClearPageActive(page); \
nr_active_pages--; \
- DEBUG_LRU_PAGE(page); \
} while (0)
--- 206,209 ----
***************
*** 218,239 ****
do { \
list_del(&(page)->lru); \
- ClearPageInactive(page); \
nr_inactive_pages--; \
- DEBUG_LRU_PAGE(page); \
} while (0)
-
- /*
- * Ugly ugly ugly HACK to make sure the inactive lists
- * don't fill up with unfreeable ramdisk pages. We really
- * want to fix the ramdisk driver to mark its pages as
- * unfreeable instead of using dirty buffer magic, but the
- * next code-change time is when 2.5 is forked...
- */
- #ifndef _LINUX_KDEV_T_H
- #include <linux/kdev_t.h>
- #endif
- #ifndef _LINUX_MAJOR_H
- #include <linux/major.h>
- #endif
extern spinlock_t swaplock;
--- 211,216 ----
Index: sysctl.h
===================================================================
RCS file: /cvsroot/linuxcompressed/linux/include/linux/sysctl.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** sysctl.h 2001/10/01 22:43:59 1.1
--- sysctl.h 2001/12/12 20:45:46 1.2
***************
*** 63,67 ****
CTL_DEV=7, /* Devices */
CTL_BUS=8, /* Busses */
! CTL_ABI=9 /* Binary emulation */
};
--- 63,68 ----
CTL_DEV=7, /* Devices */
CTL_BUS=8, /* Busses */
! CTL_ABI=9, /* Binary emulation */
! CTL_CPU=10 /* CPU stuff (speed scaling, etc) */
};
***************
*** 122,125 ****
--- 123,127 ----
KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */
KERN_CORE_USES_PID=52, /* int: use core or core.%pid */
+ KERN_TAINTED=53, /* int: various kernel tainted flags */
KERN_CADPID=54, /* int: PID of the process to notify on CAD */
};
***************
*** 138,146 ****
VM_PAGERDAEMON=8, /* struct: Control kswapd behaviour */
VM_PGT_CACHE=9, /* struct: Set page table cache parameters */
- #ifdef CONFIG_COMP_CACHE
VM_PAGE_CLUSTER=10, /* int: set number of pages to swap together */
! VM_CTL_COMP_CACHE=11
#else
! VM_PAGE_CLUSTER=10 /* int: set number of pages to swap together */
#endif
};
--- 140,150 ----
VM_PAGERDAEMON=8, /* struct: Control kswapd behaviour */
VM_PGT_CACHE=9, /* struct: Set page table cache parameters */
VM_PAGE_CLUSTER=10, /* int: set number of pages to swap together */
! VM_MIN_READAHEAD=12, /* Min file readahead */
! #ifdef CONFIG_COMP_CACHE
! VM_MAX_READAHEAD=13, /* Max file readahead */
! VM_CTL_COMP_CACHE=14
#else
! VM_MAX_READAHEAD=13 /* Max file readahead */
#endif
};
|