* Avi Kivity (avi@xxxxxxxxxx) wrote:On 08/11/2010 05:34 PM, Steven Rostedt wrote:The bigger the buffers, the lower the probabilities of success are. My usersSo, I want to allocate a 10Meg buffer. I need to make sure the kernelWith memory compaction, the cpu churns for a while, then you have your
has 10megs of memory available. If the memory is quite fragmented, then
too bad, I lose out.
buffer. Of course there's still no guarantee, just a significantly
higher probability of success.
often allocate buffers as large as a few GB per cpu. Relying on compaction does
not seem like a viable solution in this case.
You seem to underestimate the frequency at which trace events can be generated.Oh wait, I could also use vmalloc. But then again, now I'm blastingMost trace entries will occupy much less than a page, and are accessed
valuable TLB entries for a tracing utility, thus making the tracer have
a even bigger impact on the entire system.
sequentially, so I don't think this will have a large impact.
E.g., by the time you run the scheduler once (which we can consider a very hot
kernel path), some tracing modes will generate thousands of events, which will
touch a very significant amount of TLB entries.