Memory controller remove control_type feature
Subsystems (2)
RFC PATCH 1/1 Memory controller remove control_type feature
Based on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt that control_type might not be a good thing to implement right away. We can add this flexibility at a later point when required.
---
include/linux/memcontrol.h | 6 -- mm/memcontrol.c | 91 ++++++++------------------------------------- 2 files changed, 18 insertions(+), 79 deletions(-)
mm/memcontrol.c renamed from mm/memcontrol.c~memory-controller-no-more-control-type +17 -74
@@ -131,7 +131,6 @@ struct mem_cgroup {*/ struct mem_cgroup_lru_info info; -unsigned long control_type;/* control RSS or RSS+Pagecache */ int prev_priority;/* for recording reclaim priority */ /* * statistics.
@@ -718,24 +717,17 @@ int mem_cgroup_cache_charge(struct page gfp_t gfp_mask) {int ret =0 ; -struct mem_cgroup *mem;if (!mm) mm = &init_mm; -rcu_read_lock (); - mem =rcu_dereference (mm->mem_cgroup); -css_get (&mem->css); -rcu_read_unlock (); -if (mem->control_type ==MEM_CGROUP_TYPE_ALL ) - ret =mem_cgroup_charge_common (page, mm, gfp_mask, + ret =mem_cgroup_charge_common (page, mm, gfp_mask,MEM_CGROUP_CHARGE_TYPE_CACHE ); -css_put (&mem->css);return ret; }/* * Uncharging is always a welcome operation, we never complain, simply -* uncharge. +* uncharge. This routine should be called with lock_page_cgroup held */ void mem_cgroup_uncharge (struct page_cgroup *pc) {
@@ -745,8 +737,7 @@ void mem_cgroup_uncharge(struct page_cgrunsigned long flags;/* -* This can handle cases when a page is not charged at all and we -* are switching between handling the control_type. +* Check if our page_cgroup is valid */ if (!pc)return ;
@@ -758,6 +749,7 @@ void mem_cgroup_uncharge(struct page_cgr* get page->cgroup and clear it under lock. * force_empty can drop page->cgroup without checking refcnt. */ +unlock_page_cgroup (page);if (clear_page_cgroup (page, pc) == pc) { mem = pc->mem_cgroup;css_put (&mem->css);
@@ -767,9 +759,17 @@ void mem_cgroup_uncharge(struct page_cgrspin_unlock_irqrestore (&mz->lru_lock, flags);kfree (pc); } +lock_page_cgroup (page); } } +void mem_cgroup_uncharge_page (struct page *page) +{ +lock_page_cgroup (page); +mem_cgroup_uncharge (page_get_page_cgroup (page)); +unlock_page_cgroup (page); +} +/* * Returns non-zero if a page (under migration) has valid page_cgroup member. * Refcnt of page_cgroup is incremented.
@@ -789,8 +789,12 @@ int mem_cgroup_prepare_migration(structvoid mem_cgroup_end_migration (struct page *page) { -struct page_cgroup *pc =page_get_page_cgroup (page); +struct page_cgroup *pc; + +lock_page_cgroup (page); + pc =page_get_page_cgroup (page);mem_cgroup_uncharge (pc); +unlock_page_cgroup (page); }/* * We know both *page* and *newpage* are now not-on-LRU and Pg_locked.
@@ -945,61 +949,6 @@ static ssize_t mem_cgroup_write(struct c mem_cgroup_write_strategy); } -static ssize_t mem_control_type_write (struct cgroup *cont, -struct cftype *cft,struct file *file, -const char __user *userbuf, -size_t nbytes,loff_t *pos) -{ -int ret; -char *buf, *end; -unsigned long tmp; -struct mem_cgroup *mem; - - mem =mem_cgroup_from_cont (cont); - buf =kmalloc (nbytes +1 ,GFP_KERNEL ); - ret = -ENOMEM ; -if (buf ==NULL ) - goto out; - - buf[nbytes] =0 ; - ret = -EFAULT ; -if (copy_from_user (buf, userbuf, nbytes)) - goto out_free; - - ret = -EINVAL ; - tmp =simple_strtoul (buf, &end,10 ); -if (*end !='\0' ) - goto out_free; - -if (tmp <=MEM_CGROUP_TYPE_UNSPEC || tmp >=MEM_CGROUP_TYPE_MAX ) - goto out_free; - - mem->control_type = tmp; - ret = nbytes; -out_free: -kfree (buf); -out: -return ret; -} - -static ssize_t mem_control_type_read (struct cgroup *cont, -struct cftype *cft, -struct file *file,char __user *userbuf, -size_t nbytes,loff_t *ppos) -{ -unsigned long val; -char buf[64 ], *s; -struct mem_cgroup *mem; - - mem =mem_cgroup_from_cont (cont); - s = buf; - val = mem->control_type; - s +=sprintf (s,"%lu\n" , val); -return simple_read_from_buffer ((void __user *)userbuf, nbytes, - ppos, buf, s - buf); -} - - static ssize_t mem_force_empty_write(struct cgroup *cont, struct cftype *cft, struct file *file, const char __user *userbuf,
@@ -1098,11 +1047,6 @@ static struct cftype mem_cgroup_files[] .read = mem_cgroup_read, }, { - .name = "control_type", - .write = mem_control_type_write, - .read = mem_control_type_read, - }, - { .name = "force_empty", .write = mem_force_empty_write, .read = mem_force_empty_read,
@@ -1170,7 +1114,6 @@ mem_cgroup_create(struct cgroup_subsys *res_counter_init (&mem->res); - mem->control_type =MEM_CGROUP_TYPE_ALL ;memset (&mem->info,0 ,sizeof (mem->info));for_each_node_state (node,N_POSSIBLE )
include/linux/memcontrol.h renamed from include/linux/memcontrol.h~memory-controller-no-more-control-type +1 -5
@@ -35,6 +35,7 @@ extern struct page_cgroup *page_get_pageextern int mem_cgroup_charge (struct page *page,struct mm_struct *mm,gfp_t gfp_mask);extern void mem_cgroup_uncharge (struct page_cgroup *pc); +extern void mem_cgroup_uncharge_page (struct page *page);extern void mem_cgroup_move_lists (struct page_cgroup *pc,bool active); extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, struct list_head *dst,
@@ -52,11 +53,6 @@ static inline struct mem_cgroup *mm_cgroreturn rcu_dereference (mm->mem_cgroup); } -static inline void mem_cgroup_uncharge_page (struct page *page) -{ -mem_cgroup_uncharge (page_get_page_cgroup (page)); -} -extern int mem_cgroup_prepare_migration (struct page *page);extern void mem_cgroup_end_migration (struct page *page);extern void mem_cgroup_page_migration (struct page *page,struct page *newpage);
_
Signature · 4 lines
Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
Quoted 9 lines · On Fri, 21 Dec 2007 00:23:58 +0530 Balbir Singh <[email protected]>…
Based on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt that
control_typemight not be a good thing to implement right away. We can add this flexibility at a later point when required.Signed-off-by Balbir Singh <[email protected]>---
I agree with this direction.
Thanks,
-Kame
Andrew Morton
maintainerQuoted 3 lines · On Fri, 21 Dec 2007 00:23:58 +0530 Balbir Singh <[email protected]>…
Based on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt that
control_typemight not be a good thing to implement right away. We can add this flexibility at a later point when required.
Gee the memory controller patchset is turning into a mess.
memory-controller-add-documentation.patch
memcgroup-temporarily-revert-swapoff-mod.patch
memory-controller-resource-counters-v7.patch
memory-controller-containers-setup-v7.patch
memory-controller-accounting-setup-v7.patch
memory-controller-memory-accounting-v7.patch
memory-controller-memory-accounting-v7-move-page_assign_page_cgroup-to-vm_bug_on-in-free_hot_cold_page.patch
memory-controller-task-migration-v7.patch
memory-controller-add-per-container-lru-and-reclaim-v7.patch
memory-controller-add-per-container-lru-and-reclaim-v7-memcgroup-fix-try_to_free-order.patch
memory-controller-improve-user-interface.patch memory-controller-improve-user-interface-memory-controller-enhancements-for-reclaiming-take2-possible-race-fix-in-res_counter.patch memory-controller-oom-handling-v7.patch
memory-controller-add-switch-to-control-what-type-of-pages-to-limit-v7.patch
memory-controller-make-page_referenced-container-aware-v7.patch
memory-controller-make-charging-gfp-mask-aware.patch
memory-controller-make-charging-gfp-mask-aware-fix.patch
memcgroup-reinstate-swapoff-mod.patch
memory-controller-bug_on.patch
mem-controller-gfp-mask-fix.patch
memcontrol-move-mm_cgroup-to-header-file.patch
memcontrol-move-oom-task-exclusion-to-tasklist.patch
oom-add-sysctl-to-enable-task-memory-dump.patch
kswapd-should-only-wait-on-io-if-there-is-io.patch
bugfix-for-memory-cgroup-controller-charge-refcnt-race-fix.patch
bugfix-for-memory-cgroup-controller-fix-error-handling-path-in-mem_charge_cgroup.patch bugfix-for-memory-controller-add-helper-function-for-assigning-cgroup-to-page.patch bugfix-for-memory-cgroup-controller-avoid-pagelru-page-in-mem_cgroup_isolate_pages.patch bugfix-for-memory-cgroup-controller-avoid-pagelru-page-in-mem_cgroup_isolate_pages-fix.patch
memcgroup-fix-zone-isolation-oom.patch
memcgroup-revert-swap_state-mods.patch
bugfix-for-memory-cgroup-controller-migration-under-memory-controller-fix.patch
#
memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page.patch memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page-warning-fix.patch memory-cgroup-enhancements-force_empty-interface-for-dropping-all-account-in-empty-cgroup.patch memory-cgroup-enhancements-remember-a-page-is-charged-as-page-cache.patch
memory-controller-use-rcu_read_lock-in-mem_cgroup_cache_charge.patch
memcgroup-tidy-up-mem_cgroup_charge_common.patch
memcgroup-fix-hang-with-shmem-tmpfs.patch
memory-cgroup-enhancements-remember-a-page-is-on-active-list-of-cgroup-or-not.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-checkpatch-fixes.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-fix-1.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-uninlining.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-fix-2.patch
memory-cgroup-enhancements-add-memorystat-file.patch
memory-cgroup-enhancements-add-memorystat-file-checkpatch-fixes.patch
memory-cgroup-enhancements-add-memorystat-file-printk-fix.patch
memory-cgroup-enhancements-add-pre_destroy-handler.patch
memory-cgroup-enhancements-implicit-force_empty-at-rmdir.patch
#
per-zone-and-reclaim-enhancements-for-memory-controller-take-3-add-scan_global_lru-macro.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-nid-zid-helper-function-for-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter-memory-controller-enhancements-for-reclaiming-take2-clean-up-remove-unused-variable.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter-memory-controller-enhancements-for-reclaiming-take2-add-bug_on-in-mem_cgroup_zoneinfo.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-calculate-mapper_ratio-per-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-calculate-active-inactive-imbalance-per-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup-fix.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup-fix-2.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-calculate-the-number-of-pages-to-be-scanned-per-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity-fix.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity-fix-accounting-in-vmscanc-for-memory-controller.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup-bugfix-for-memory-cgroup-per-zone-struct-allocation.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup-memory-controller-enhancements-for-reclaiming-take2-define-free_mem_cgroup_per_zone_info.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lock-for-cgroup.patch
memory-controller-remove-control_type-feature.patch
update-documentation-controller-memorytxt.patch
Hopefully it'll look a bit better once I do a big patch-folding but we still have patches interesecting everywhere and now we have patches which add a feature and later ones which take it away again.
But I don't think it's worth the time and risk of a huge rip-up-and-refactor.
Quoted 8 lines · Andrew Morton
Quoted 3 lines · On Fri, 21 Dec 2007 00:23:58 +0530 Balbir Singh <[email protected]>…
Based on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt that
control_typemight not be a good thing to implement right away. We can add this flexibility at a later point when required.Gee the memory controller patchset is turning into a mess.
Yes, the patchset has expanded and we have several useful bug fixes and cleanups and some new features.
Quoted 73 lines
memory-controller-add-documentation.patch
memcgroup-temporarily-revert-swapoff-mod.patch
memory-controller-resource-counters-v7.patch
memory-controller-containers-setup-v7.patch
memory-controller-accounting-setup-v7.patch
memory-controller-memory-accounting-v7.patch
memory-controller-memory-accounting-v7-move-page_assign_page_cgroup-to-vm_bug_on-in-free_hot_cold_page.patch
memory-controller-task-migration-v7.patch
memory-controller-add-per-container-lru-and-reclaim-v7.patch
memory-controller-add-per-container-lru-and-reclaim-v7-memcgroup-fix-try_to_free-order.patch
memory-controller-improve-user-interface.patch memory-controller-improve-user-interface-memory-controller-enhancements-for-reclaiming-take2-possible-race-fix-in-res_counter.patch memory-controller-oom-handling-v7.patch
memory-controller-add-switch-to-control-what-type-of-pages-to-limit-v7.patch
memory-controller-make-page_referenced-container-aware-v7.patch
memory-controller-make-charging-gfp-mask-aware.patch
memory-controller-make-charging-gfp-mask-aware-fix.patch
memcgroup-reinstate-swapoff-mod.patch
memory-controller-bug_on.patch
mem-controller-gfp-mask-fix.patch
memcontrol-move-mm_cgroup-to-header-file.patch
memcontrol-move-oom-task-exclusion-to-tasklist.patch
oom-add-sysctl-to-enable-task-memory-dump.patch
kswapd-should-only-wait-on-io-if-there-is-io.patch
bugfix-for-memory-cgroup-controller-charge-refcnt-race-fix.patch
bugfix-for-memory-cgroup-controller-fix-error-handling-path-in-mem_charge_cgroup.patch bugfix-for-memory-controller-add-helper-function-for-assigning-cgroup-to-page.patch bugfix-for-memory-cgroup-controller-avoid-pagelru-page-in-mem_cgroup_isolate_pages.patch bugfix-for-memory-cgroup-controller-avoid-pagelru-page-in-mem_cgroup_isolate_pages-fix.patch
memcgroup-fix-zone-isolation-oom.patch
memcgroup-revert-swap_state-mods.patch
bugfix-for-memory-cgroup-controller-migration-under-memory-controller-fix.patch
#
memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page.patch memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page-warning-fix.patch memory-cgroup-enhancements-force_empty-interface-for-dropping-all-account-in-empty-cgroup.patch memory-cgroup-enhancements-remember-a-page-is-charged-as-page-cache.patch
memory-controller-use-rcu_read_lock-in-mem_cgroup_cache_charge.patch
memcgroup-tidy-up-mem_cgroup_charge_common.patch
memcgroup-fix-hang-with-shmem-tmpfs.patch
memory-cgroup-enhancements-remember-a-page-is-on-active-list-of-cgroup-or-not.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-checkpatch-fixes.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-fix-1.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-uninlining.patch memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-fix-2.patch
memory-cgroup-enhancements-add-memorystat-file.patch
memory-cgroup-enhancements-add-memorystat-file-checkpatch-fixes.patch
memory-cgroup-enhancements-add-memorystat-file-printk-fix.patch
memory-cgroup-enhancements-add-pre_destroy-handler.patch
memory-cgroup-enhancements-implicit-force_empty-at-rmdir.patch
#
per-zone-and-reclaim-enhancements-for-memory-controller-take-3-add-scan_global_lru-macro.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-nid-zid-helper-function-for-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter-memory-controller-enhancements-for-reclaiming-take2-clean-up-remove-unused-variable.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter-memory-controller-enhancements-for-reclaiming-take2-add-bug_on-in-mem_cgroup_zoneinfo.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-calculate-mapper_ratio-per-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-calculate-active-inactive-imbalance-per-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup-fix.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup-fix-2.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-calculate-the-number-of-pages-to-be-scanned-per-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity-fix.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity-fix-accounting-in-vmscanc-for-memory-controller.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup-bugfix-for-memory-cgroup-per-zone-struct-allocation.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup-memory-controller-enhancements-for-reclaiming-take2-define-free_mem_cgroup_per_zone_info.patch per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lock-for-cgroup.patch
memory-controller-remove-control_type-feature.patch
update-documentation-controller-memorytxt.patch
Quoted 4 lines
Hopefully it'll look a bit better once I do a big patch-folding but we still have patches interesecting everywhere and now we have patches which add a feature and later ones which take it away again.
I think folding will help. I understand your concern w.r.t getting the correct set of patches with a good changelog.
Quoted 3 lines
But I don't think it's worth the time and risk of a huge rip-up-and-refactor.
I agree, given the proximity of the new merge window for 2.6.25. We could review the patches after folding them and see how to consolidate further in case the patches continue to look messy.
Signature · 4 lines
Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
Quoted 6 lines · Balbir Singh
Quoted 5 lines · Andrew Morton
Quoted 3 lines · On Fri, 21 Dec 2007 00:23:58 +0530 Balbir Singh <[email protected]>…
Based on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt that
control_typemight not be a good thing to implement right away. We can add this flexibility at a later point when required.
Not studied closely, but your patch looks both too much and too little to me, Balbir.
Too much in that it appears to bundle in some significant little locking changes without any mention in the commment.
Too little in that it leaves behind lots of junk relating to the different control_types: the enums, the different kinds of call that needn't now be different, no change to the various callsites. Needs more cleanup, I'd say. Of course, that could be yet another separate patch.
Quoted 1 line
Quoted 1 line
Gee the memory controller patchset is turning into a mess.
A mess indeed.
Quoted 2 lines
Yes, the patchset has expanded and we have several useful bug fixes and cleanups and some new features.
Hah, a career in politics beckons ;)
Quoted 8 lines
Quoted 4 lines
Hopefully it'll look a bit better once I do a big patch-folding but we still have patches interesecting everywhere and now we have patches which add a feature and later ones which take it away again.
I think folding will help. I understand your concern w.r.t getting the correct set of patches with a good changelog.
Quoted 7 lines
Quoted 3 lines
But I don't think it's worth the time and risk of a huge rip-up-and-refactor.
I agree, given the proximity of the new merge window for 2.6.25. We could review the patches after folding them and see how to consolidate further in case the patches continue to look messy.
Personally, I think it could benefit a lot from a rip-up-and-refactor. But if we're rushing headlong for 2.6.25, yes, I agree it's too late. And I'm afraid it's not something I can volunteer for at this time.
Hugh
Quoted 8 lines · Hugh Dickins
Quoted 6 lines · Balbir Singh
Quoted 5 lines · Andrew Morton
Quoted 3 lines · On Fri, 21 Dec 2007 00:23:58 +0530 Balbir Singh <[email protected]>…
Based on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt that
control_typemight not be a good thing to implement right away. We can add this flexibility at a later point when required.
Quoted 6 lines
Not studied closely, but your patch looks both too much and too little to me, Balbir.
Too much in that it appears to bundle in some significant little locking changes without any mention in the commment.
I can create and send across a new changelog, but what it does is make the check for !pc under the page_group lock (lock_page_group()). I sent out a pointer to the URL of our discussion. Yes, I should have been more willing to write a more detailed changelog.
Quoted 6 lines
Too little in that it leaves behind lots of junk relating to the different
control_types: the enums, the different kinds of call that needn't now be different, no change to the various callsites. Needs more cleanup, I'd say. Of course, that could be yet another separate patch.
Yes, my dilemma, that still remains (Andrew very aptly noted) is that we have a bunch of patches adding in the feature and then a patch removing it. I have noted your point, which is correct about cleaning up unused parameters.
Quoted 23 lines
Quoted 1 line
Quoted 1 line
Gee the memory controller patchset is turning into a mess.
A mess indeed.
Quoted 2 lines
Yes, the patchset has expanded and we have several useful bug fixes and cleanups and some new features.
Hah, a career in politics beckons ;)
Quoted 7 lines
Quoted 4 lines
Hopefully it'll look a bit better once I do a big patch-folding but we still have patches interesecting everywhere and now we have patches which add a feature and later ones which take it away again.
I think folding will help. I understand your concern w.r.t getting the correct set of patches with a good changelog.
Quoted 6 lines
Quoted 3 lines
But I don't think it's worth the time and risk of a huge rip-up-and-refactor.
I agree, given the proximity of the new merge window for 2.6.25. We could review the patches after folding them and see how to consolidate further in case the patches continue to look messy.
Quoted 5 lines
Personally, I think it could benefit a lot from a rip-up-and-refactor. But if we're rushing headlong for 2.6.25, yes, I agree it's too late. And I'm afraid it's not something I can volunteer for at this time.
Hugh
I want to spend as much time as possible testing the memory controller.
Signature · 4 lines
Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL