Messages in this thread |  | | Date | Thu, 28 Dec 2000 15:36:00 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: test13-pre5 |
| |
On Fri, 29 Dec 2000, Andi Kleen wrote:
> On Thu, Dec 28, 2000 at 02:54:52PM -0800, David S. Miller wrote: > > Date: Thu, 28 Dec 2000 23:58:36 +0100 > > From: Andi Kleen <ak@suse.de> > > > > Why exactly a power of two ? To get rid of ->index ? > > > > To make things like "page - mem_map" et al. use shifts instead of > > expensive multiplies... > > I thought that is what ->index is for ?
No. "index" only gives the virtual index.
"page - mem_map" is how you get the _physical_ index in the zone in question, which is common for physical tranlations (ie "pte_page()", "page_to_virt()" or "page_to_phys()")
> Also gcc seems to be already quite clever at dividing through small > integers, e.g. using mul and shift and sub, so it may not be even worth to reach > for a real power-of-two.
Look at the code - it's a big multiply to do a divide by 68 or similar. Quite expensive.
Doing "page->address - TASK_SIZE" on x86 for the non-highmem case would probably be faster.
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |