OpenVZ Forum


Home » Mailing lists » Devel » [PATCH 2/8] Add container pointer on struct page
[PATCH 2/8] Add container pointer on struct page [message #13584] Wed, 30 May 2007 15:23 Go to next message
Pavel Emelianov is currently offline  Pavel Emelianov
Messages: 1149
Registered: September 2006
Senior Member
Each page is supposed to have an owner - the container
that touched the page first. The owner stays alive during
the page lifetime even if the task that touched the page
dies or moves to another container.

This ownership is the forerunner for the "fair" page sharing
accounting, in which page has as may owners as it is really
used by.

Signed-off-by: Pavel Emelianov <xemul@openvz.org>

---

diff -upr linux-2.6.22-rc2-mm1.orig/include/linux/mm.h linux-2.6.22-rc2-mm1-0/include/linux/mm.h
--- linux-2.6.22-rc2-mm1.orig/include/linux/mm.h 2007-05-30 12:32:35.000000000 +0400
+++ linux-2.6.22-rc2-mm1-0/include/linux/mm.h 2007-05-30 16:13:09.000000000 +0400
@@ -250,6 +250,12 @@ struct vm_operations_struct {
struct mmu_gather;
struct inode;

+#ifdef CONFIG_RSS_CONTAINER
+#define page_container(page) (page->rss_container)
+#else
+#define page_container(page) (NULL)
+#endif
+
#define page_private(page) ((page)->private)
#define set_page_private(page, v) ((page)->private = (v))

diff -upr linux-2.6.22-rc2-mm1.orig/include/linux/mm_types.h linux-2.6.22-rc2-mm1-0/include/linux/mm_types.h
--- linux-2.6.22-rc2-mm1.orig/include/linux/mm_types.h 2007-05-30 12:32:35.000000000 +0400
+++ linux-2.6.22-rc2-mm1-0/include/linux/mm_types.h 2007-05-30 16:13:09.000000000 +0400
@@ -83,6 +83,9 @@ struct page {
unsigned int gfp_mask;
unsigned long trace[8];
#endif
+#ifdef CONFIG_RSS_CONTAINER
+ struct page_container *rss_container;
+#endif
};

#endif /* _LINUX_MM_TYPES_H */
Re: [PATCH 2/8] Add container pointer on struct page [message #13613 is a reply to message #13584] Wed, 30 May 2007 21:45 Go to previous message
Andrew Morton is currently offline  Andrew Morton
Messages: 127
Registered: December 2005
Senior Member
On Wed, 30 May 2007 19:28:04 +0400
Pavel Emelianov <xemul@openvz.org> wrote:

> +#ifdef CONFIG_RSS_CONTAINER
> +#define page_container(page) (page->rss_container)
> +#else
> +#define page_container(page) (NULL)
> +#endif

static inline C functions are nicer.
Previous Topic: [PATCH 1/8] Resource counters
Next Topic: [PATCH 3/8] Add container pointer on mm_struct
Goto Forum:
  


Current Time: Wed Jun 18 02:33:27 GMT 2025

Total time taken to generate the page: 0.02619 seconds