|
|
发表于 2004-12-25 21:43:36
|
显示全部楼层
Post by whblackhorse
swap和内核版本没有必然的关系吧.
看一下mkswap的实现(在util-linux包中),
- static void
- init_signature_page(void) {
- #ifdef PAGE_SIZE
- defined_pagesize = PAGE_SIZE;
- #endif
- kernel_pagesize = getpagesize(); //this will return 4096 on my box!!!!!!
- pagesize = kernel_pagesize;
- if (user_pagesize) {
- if ((user_pagesize & (user_pagesize-1)) ||
- user_pagesize < 1024) {
- fprintf(stderr, _("Bad user-specified page size %d\n"),
- user_pagesize);
- exit(1);
- }
- pagesize = user_pagesize;
- }
- if (user_pagesize && user_pagesize != kernel_pagesize &&
- user_pagesize != defined_pagesize)
- fprintf(stderr, _("Using user-specified page size %d, "
- "instead of the system values %d/%d\n"),
- pagesize, kernel_pagesize, defined_pagesize);
- else if (defined_pagesize && pagesize != defined_pagesize)
- fprintf(stderr, _("Assuming pages of size %d (not %d)\n"),
- pagesize, defined_pagesize);
- signature_page = (long *) malloc(pagesize);
- memset(signature_page,0,pagesize);
- p = (struct swap_header_v1 *) signature_page;
- }
复制代码 页面大小是可以用-p参数指定的, 但必须是2的幂.
指定大小如果和内核返回大小不吻合, 还是会用指定大小
Oh! Sorry, the 128M limit is on the 2.0.x kernel, not 2.2.x.
Below is extracted from the Changes file in the 2.2.0 kernel source documentation.
Util-linux (including mount)
============================
Among other changes made in the development of Linux kernel 2.2, the
128 meg limit on IA32 swap partition sizes has been eliminated. To use
larger swap spaces, you need the new mkswap found in util-linux. You
also need to upgrade util-linux to get the latest version of mount. |
|