Subject: Re: UVM aobj: Large VM objects.
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Cherry George Mathew <cherry@mahiti.org>
List: tech-kern
Date: 03/07/2006 11:28:25
>>>>> "yamt" == YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp> writes:
[...]
yamt> however, i don't think long is appropriate here. please
yamt> introduce a 64-bit "page offset" type. "typedef voff_t
yamt> pgoff_t" should be fine.
I don't have access to CVS. Could you check in the following, if
appropriate ?
Thanks,
--
Cherry
*** uvm_extern.h 28 Jun 2005 22:41:44 +0530 1.1.1.1
--- uvm_extern.h 07 Mar 2006 10:47:04 +0530
***************
*** 88,93 ****
--- 88,94 ----
typedef int vm_inherit_t; /* XXX: inheritance codes */
typedef off_t voff_t; /* XXX: offset within a uvm_object */
+ typedef voff_t pgoff_t; /* XXX: number of pages within a uvm object */
/*
* defines
*** uvm_aobj.c 05 Mar 2006 11:24:26 +0530 1.1.1.1
--- uvm_aobj.c 07 Mar 2006 10:43:34 +0530
***************
*** 152,158 ****
struct uvm_aobj {
struct uvm_object u_obj; /* has: lock, pgops, memq, #pages, #refs */
! int u_pages; /* number of pages in entire object */
int u_flags; /* the flags (see uvm_aobj.h) */
int *u_swslots; /* array of offset->swapslot mappings */
/*
--- 152,158 ----
struct uvm_aobj {
struct uvm_object u_obj; /* has: lock, pgops, memq, #pages, #refs */
! pgoff_t u_pages; /* number of pages in entire object */
int u_flags; /* the flags (see uvm_aobj.h) */
int *u_swslots; /* array of offset->swapslot mappings */
/*
***************
*** 476,482 ****
{
static struct uvm_aobj kernel_object_store;
static int kobj_alloced = 0;
! int pages = round_page(size) >> PAGE_SHIFT;
struct uvm_aobj *aobj;
int refs;
--- 476,482 ----
{
static struct uvm_aobj kernel_object_store;
static int kobj_alloced = 0;
! pgoff_t pages = round_page(size) >> PAGE_SHIFT;
struct uvm_aobj *aobj;
int refs;