hi,
i implemented background reclamation for your memory controller and
did a few benchmarks with and without it. any comments?
YAMAMOTO Takashi
-
time make -j4 bzImage in a cgroup with 64MB limit:
without patch:
real22m22.389s
user
printing eip: f881b9f3 *pdpt = 3001 1*pde = 0480a067 *pte
=
^^^
Signed-off-by: Alexey Dobriyan [EMAIL PROTECTED]
---
arch/x86/mm/fault_32.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
Code is using knowledge that nf_sockopt_ops::list list_head is first
field in structure by using casts. Switch to list_for_each_entry()
itetators while I am at it.
Signed-off-by: Alexey Dobriyan [EMAIL PROTECTED]
---
net/netfilter/nf_sockopt.c | 12
1 file changed, 4
There are some pointers, that are used in protocols/drivers/etc
in this struct. E.g. br_port, macvlan_port, ec_ptr, etc. Some of
them can be simply compile out with ifdefs, some require a bit
closer look.
Here's the summary:
Compiled out in this set with appropriate ifdef:
* br_port
*
And add the forward declaration for br_handle_frame_hook in
include/linux/if_bridge.h
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
index 58e43e5..a718586 100644
--- a/include/linux/if_bridge.h
+++
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 469e04f..c41a5c4 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -703,8 +703,10 @@ struct net_device
/* bridge stuff */
struct
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index c41a5c4..504f843 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -580,7 +580,9 @@ struct net_device
void*dn_ptr;
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 504f843..472d9cc 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -579,7 +579,9 @@ struct net_device
void*ip_ptr;
And remove a BUG_TRAP from netdev_run_todo as well.
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 472d9cc..e94c636 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -577,7 +577,9 @@ struct
On Mon, Oct 22, 2007 at 04:33:33PM +0400, Pavel Emelyanov wrote:
And add the forward declaration for br_handle_frame_hook in
include/linux/if_bridge.h
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -699,8 +699,10 @@ struct net_device
/* Network namespace this
Alexey Dobriyan wrote:
On Mon, Oct 22, 2007 at 04:33:33PM +0400, Pavel Emelyanov wrote:
And add the forward declaration for br_handle_frame_hook in
include/linux/if_bridge.h
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -699,8 +699,10 @@ struct net_device
/*
Hi Alexey,
On 10/22/07, Alexey Dobriyan [EMAIL PROTECTED] wrote:
printing eip: f881b9f3 *pdpt = 3001 1*pde = 0480a067
*pte =
--- a/arch/x86/mm/fault_32.c
+++ b/arch/x86/mm/fault_32.c
@@ -550,7 +550,7 @@ no_context:
page =
Some are already declared in include/linux/netdevice.h, while
some others (xfrm ones) need to be declared.
The driver/net/rrunner.c just uses same extern as well, so
cleanup it also.
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/drivers/net/rrunner.c
Inconsistent prototype and real type for functions may have
worse consequences, than those for variables, so move them
into a header.
Since they are used privately in net/core, make this file
reside in the same place.
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git
Instead of ugly extern not-existing function.
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
diff --git a/net/core/flow.c b/net/core/flow.c
index 0ab5234..3ed2b4b 100644
--- a/net/core/flow.c
+++ b/net/core/flow.c
@@ -142,8 +142,6 @@ typedef u64 flow_compare_t;
typedef u32
In case the multiple tables config option is y, the ip_fib_local_table
is not a variable, but a macro, that calls fib_get_table(RT_TABLE_LOCAL).
Some code uses this variable *3* times in one place, thus implicitly
making 3 calls. Fix it.
Signed-off-by: Pavel Emelyanov [EMAIL PROTECTED]
---
YAMAMOTO Takashi wrote:
hi,
i implemented background reclamation for your memory controller and
did a few benchmarks with and without it. any comments?
YAMAMOTO Takashi
-
time make -j4 bzImage in a cgroup with 64MB limit:
without patch:
real22m22.389s
On Mon, 15 Oct 2007, Balbir Singh wrote:
Hugh Dickins wrote:
--- 2.6.23-rc8-mm2/mm/swapfile.c2007-09-27 12:03:36.0 +0100
+++ linux/mm/swapfile.c 2007-10-07 14:33:05.0 +0100
@@ -507,11 +507,23 @@ unsigned int count_swap_pages(int type,
* just let do_wp_page
Report CPU usage in CFS Cgroup directories
Adds a cpu.usage file to the CFS cgroup that reports CPU usage in
milliseconds for that cgroup's tasks
This replaces the example CPU Accounting CGroup subsystem that
was merged into mainline last week.
Signed-off-by: Paul Menage [EMAIL PROTECTED]
---
These two patches consist of a small cleanup to CFS, and adding a control file
reporting CPU usage in milliseconds in each CGroup directory. They're just
bundled together since the second patch depends slightly on the cleanups in the
first patch.
Clean up some CFS CGroup code
- replace cont with cgrp in a few places in the CFS cgroup code,
- use write_uint rather than write for cpu.shares write function
Signed-off-by: Paul Menage [EMAIL PROTECTED]
---
kernel/sched.c | 51 +--
1 file
On Mon, Oct 22, 2007 at 05:49:39PM -0700, Paul Menage wrote:
+static u64 cpu_usage_read(struct cgroup *cgrp, struct cftype *cft)
+{
+ struct task_group *tg = cgroup_tg(cgrp);
+ int i;
+ u64 res = 0;
+ for_each_possible_cpu(i) {
+ unsigned long flags;
+
On Mon, Oct 22, 2007 at 05:49:20PM -0700, Paul Menage wrote:
Clean up some CFS CGroup code
- replace cont with cgrp in a few places in the CFS cgroup code,
This change looks good to me. Thanks for doing it.
- use write_uint rather than write for cpu.shares write function
Minor nit: From
KAMEZAWA Hiroyuki wrote:
Because NODE_DATA(node)-node_zonelists[] is guaranteed to contain
all necessary zones, it is not necessary to use for_each_online_node.
And this for_each_online_node() makes reclaim routine start always
from node 0. This is bad.
But with this change, we'll start
On Tue, 23 Oct 2007 09:30:53 +0530
Balbir Singh [EMAIL PROTECTED] wrote:
KAMEZAWA Hiroyuki wrote:
Because NODE_DATA(node)-node_zonelists[] is guaranteed to contain
all necessary zones, it is not necessary to use for_each_online_node.
And this for_each_online_node() makes reclaim routine
25 matches
Mail list logo