>>>>> "David" == David Miller <davem@davemloft.net> writes: David> From: Christoph Lameter <clameter@sgi.com> Date: Tue, 25 Mar David> 2008 10:48:19 -0700 (PDT)David> Transparent automatic hugepages are definitely doable, I don't David> know why you think this requires application changes. It's actually harder than it looks. Ian Wienand just finished his Master's project in this area, so we have *lots* of data. The main issue is that, at least on Itanium, you have to turn off the hardware page table walker for hugepages if you want to mix superpages and standard pages in the same region. (The long format VHPT isn't the panacea we'd like it to be because the hash function it uses depends on the page size). This means that although you have fewer TLB misses with larger pages, the cost of those TLB misses is three to four times higher than with the standard pages. In addition, to set up a large page takes more effort... and it turns out there are few applications where the cost is amortised enough, so on SpecCPU for example, some tests improved performance slightly, some got slightly worse. What we saw was essentially that we could almost eliminate DTLB misses, other than the first, for a huge page. For most applications, though, the extra cost of that first miss, plus the cost of setting up the huge page, was greater than the few hundred DTLB misses we avoided. I'm expecting Ian to publish the full results soon. Other architectures (where the page size isn't tied into the hash function, so the hardware walked can be used for superpages) will have different tradeoffs. -- Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au http://www.ertos.nicta.com.au ERTOS within National ICT Australia --
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
git: | |
| David Miller | Re: [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 05/37] dccp: Cleanup routines for feature negotiation |
| Lennert Buytenhek | [PATCH 16/39] mv643xx_eth: get rid of ETH_/ethernet_/eth_ prefixes |
