Messages in this thread | | | Date | Tue, 30 Sep 2008 12:48:18 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [PATCH v10 Golden] Unified trace buffer |
| |
On Tue, 30 Sep 2008, Linus Torvalds wrote: > > Trace buffers are different, though. Do people realize that doing the > overloading means that you never EVER can use those buffers for anything > else? Do people realize that it means that splice() and friends are out of > the question? > > > Trouble is, looking at it I see no easy way out, > > Quite frankly, we could just put it at the head of the page itself. Having > a "whole page" for the trace data is not possible anyway, since the trace > header itself will always eat 8 bytes. > > And I do think it would potentially be a better model. Or at least safer.
Actually, looking at the code, there is no reason I need to keep this in the frame buffer itself. I've also encapsulated the accesses to the incrementing of the pointers so it would be trivial to try other approaches.
The problem we had with the big array struct is that we can want large buffers and to do that with pointers means we would need to either come up with a large allocator or use vmap.
But I just realized that I could also just make a link list of page pointers and do the exact same thing without having to worry about page frames. Again, the way I coded this up, it is quite trivial to replace the handling of the pages with other schemes.
-- Steve
| |