Messages in this thread | | | Subject | Re: [PATCH 4/8] sched: clean up move_task() and move_one_task() | From | Peter Zijlstra <> | Date | Wed, 20 Mar 2013 12:11:31 +0100 |
| |
On Wed, 2013-03-20 at 16:33 +0900, Joonsoo Kim wrote:
> > Right, so I'm not so taken with this one. The whole load stuff really > > is a balance heuristic that's part of move_tasks(), move_one_task() > > really doesn't care about that. > > > > So why did you include it? Purely so you didn't have to re-order the > > tests? I don't see any reason not to flip a tests around. > > I think that I'm not fully understand what you are concerning, because of > my poor English. If possible, please elaborate on a problem in more detail.
OK, so your initial Changelog said it wanted to remove some code duplication between move_tasks() and move_one_task(); but then you put in the load heuristics and add a boolean argument to only enable those for move_tasks() -- so clearly that wasn't duplicated.
So why move that code.. I proposed that this was due a reluctance to re-arrange the various tests that stop the migration from happening.
Now you say:
> ... Just moving up can_migrate_task() above > load evaluation code may raise side effect, because can_migrate_task() have > other checking which is 'cache hottness'. I don't want a side effect. So > embedding load evaluation to can_migrate_task() and re-order checking and > makes load evaluation disabled for move_one_task().
Which pretty much affirms this. However I also said that I don't think the order really matters that much; each test will cancel the migration of this task; the order of these tests seem immaterial.
> If your recommandation is to move up can_mirate_task() above > load evaluation code, yes, I can, and will do that. :)
I would actually propose moving the throttled test into can_migrate_task() and leave it at that.
| |