On Wed, Mar 19, 2008 at 03:45:16PM -0700, Ulrich Drepper wrote:What chaos exactly? For me it looks rather that a separatate database would be a recipe for chaos. e.g. for example how would you make sure the database keeps track of changing executables? The only minor issue is rpm -Va and similar, but that can be handled in the same way as prelinking is handled there by using filter scripts that reset the bitmap before taking a checksum. Also the current way does not require relinking by using the shdr hack. I have a simple program that adds a bitmap shdr to any executable. But if the binutils leanred about this and added a bitmap phdr (it tends to be only a few hundred bytes even on very large executables) one seek could be avoided. Can you elaborate what you think will be broken? We are talking about 32bytes for each MB worth of executable. You can hardly call that "all that data". Besides the prefetcher supports in theory larger page sizes, so if you wanted you could even reduce that even more by e.g. using 64k prefetch blocks. But the overhead is so tiny that it doesn't make much difference. Yes as I said using the SHDR currently requires an additional seek (although in practice i expect it to be served out of the track buffer of the hard disk if the executable is not too large and is continuous on disk). If binutils were taught of generating a phdr that minor problem would go away. I agree. It is not too bad, but could be certainly better. I outlined some possible ways to improve the algorithms in my original way. It would be a nice research project for someone to investigate the various ways (anyone interested?) Sorry that doesnt make sense. Anything that is read at startup has to be prefetched, even if that code is only executed once. Otherwise the whole scheme is rather useless. Because even a single access requires the IO to read it from disk. Yes that is what the "mmap_flush" hack (last patch does) I actually have some numbers on a older kernel and in some cases it really does quite well. But it also has a few problems (e.g. interaction with data mmaps and memory waste) that are unpleasant. -Andi --
| Peter Zijlstra | [PATCH 6/6] sched: disabled rt-bandwidth by default |
| Tejun Heo | [PATCHSET] FUSE: extend FUSE to support more operations |
| Avi Kivity | [PATCH 041/104] KVM: Don't assign vcpu->cr3 if it's invalid: check first, set last |
| Vegard Nossum | [RFC][PATCH] bitfields API |
git: | |
| Rogan Dawes | Re: kernel.org mirroring (Re: [GIT PULL] MMC update) |
| David Kastrup | Terminology question about remote branches. |
| Tony Stubbs | git svn rebase - could not detach HEAD |
| Nicolas Pitre | Re: Understanding version 4 packs |
| James Hartley | scp batch mode? |
| Firas Kraiem | Possible mug in mini_sendmail-chroot. |
| Gregory Edigarov | Question on interface enumeration |
| bsd_news | LC_COLLATE and PostgreSQL |
| Jeff Garzik | Re: [PATCH] drivers/net: remove network drivers' last few uses of IRQF_SAMPLE_RANDOM |
| Jay Vosburgh | [PATCH 6/9] net/bonding: Handlle wrong assumptions that slave is always an Etherne... |
| Radu Rendec | Re: Endianness problem with u32 classifier hash masks |
| Robert Olsson | [PATCH] pktgen multiqueue etc |
