Hi! On Sat, May 10, 2008 at 1:04 PM, Bart Van Assche <bart.vanassche@gmail.com> wrote:Yes, I have learned of it not so long ago, around January or so. I wanted to stop kmemcheck development back then, but Ingo and Pekka convinced me that it could still be useful :-) (The link is http://bitwagon.com/valgrind+uml/index.html) I guess the main disadvantages of using kmemcheck over valgrind-memcheck are: - kmemcheck can only warn eagerly, whereas memcheck will wait until the uninitialized bits are actually used. This means that kmemcheck will report many false positives. (We have some workarounds but this is obviously not perfect.) - kmemcheck can only warn for dynamic memory, whereas kmemcheck I believe will also work for local variables, static variables, etc. It would be interesting to compare the output of kmemcheck vs. the output of memcheck, though. Thanks. I have actually seen the paper before, but not read all of it. From a quick glace, it seems that the optimizations described there apply to the tracking of individual bits within a byte, but since we are tracking by byte granularity (as opposed to bit granularity), it also seems irrelevant to kmemcheck. (I am not saying that it isn't interesting, however.) Currently, we are using a full byte for each shadowed byte. Since we actually only use two bits out of eight, we could save three fourths compared to what we use today. However, memory usage doesn't seem to be much of a problem. I actually think it might be worth saving the CPU cycles that are needed for the lookups/bit operations (memory is cheap, cycles aren't). How is the speed of Valgrind+UML, does anybody know? Isn't there a problem that Valgrind will have to emulate all the userspace programs as well? That, I believe, would make the Valgrinded system painfully slow to work with. I have no benchmarks or profiler results to refer to, but kmemcheck at least boots to full userspace+X and is still quite usable. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 --
| Linus Torvalds | Linux 2.6.21-rc4 |
| Jens Axboe | [PATCH 0/8] IO queuing and complete affinity |
| Nicholas A. Bellinger | Re: Integration of SCST in the mainstream Linux kernel |
| Robin Lee Powell | NFS hang + umount -f: better behaviour requested. |
git: | |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Ingo Molnar | Re: [crash] BUG: unable to handle kernel NULL pointer dereference at 0000000000000... |
| Gerrit Renker | [PATCH 19/37] dccp: Header option insertion routine for feature-negotiation |
| Gary Thomas | Marvell 88E609x switch? |
| Jamie Lokier | Re: silent semantic changes with reiser4 |
| Jan Kara | [PATCH 10/16] ext4: Remove syncing logic from ext4_file_write |
| Jack Stone | Re: Versioning file system |
| Jens Axboe | [PATCH 8/8] vm: Add an tuning knob for vm.max_writeback_pages |
