Messages in this thread |  | | | Date | Fri, 04 Apr 2008 00:58:00 +0530 | | From | Balbir Singh <> | | Subject | Re: [-mm] Add an owner to the mm_struct (v7) |
| |
Paul Menage wrote: > On Thu, Apr 3, 2008 at 11:51 AM, Balbir Singh <balbir@linux.vnet.ibm.com> wrote: >> >> + * delay_group_leader() ensures that if the group leader is around >> >> + * we need not select a new owner. >> >> + */ >> >> + ret = (mm && (atomic_read(&mm->mm_users) > 1) && (mm->owner == p) && >> >> + !delay_group_leader(p)); >> >> + return ret; >> >> +} >> > >> > Ugh. Could you please spell this out a bit more. I find that stuff >> > above really hard to read. Something like: >> > >> > if (!mm) >> > return 0; >> > if (atomic_read(&mm->mm_users) <= 1) >> > return 0; >> > if (mm->owner != p) >> > return 0; >> > if (delay_group_leader(p)) >> > return 0; >> > return 1; >> > >> >> The problem with code above is 4 branch instructions and the code I have just 4 >> AND operations. > > They'll be completely equivalent to the compiler, due to the > short-circuit evaluation of &&
Aahh.. Yes.. my bad.. I keep under-estimating compilers and their potential to optimize
Form (2) seems more readable, I'll move to that
-- Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
|  |