Re: [patch 1/2] x86_64 page fault NMI-safe

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Steven Rostedt
Date: Wednesday, August 11, 2010 - 7:34 am

Egad! Go on vacation and the world falls apart.

On Wed, 2010-08-04 at 08:27 +0200, Peter Zijlstra wrote:

So, I want to allocate a 10Meg buffer. I need to make sure the kernel
has 10megs of memory available. If the memory is quite fragmented, then
too bad, I lose out.

Oh wait, I could also use vmalloc. But then again, now I'm blasting
valuable TLB entries for a tracing utility, thus making the tracer have
a even bigger impact on the entire system.

BAH!

I originally wanted to go with the continuous buffer, but I was
convinced after trying to implement it, that it was a bad choice.
Specifically, because of needing to 1) get large amounts of memory that
is continuous, or 2) eating up TLB entries and causing the system to
perform poorer.

I chose page size "sub-buffers" to solve the above. It also made
implementing splice trivial. OK, I admit, I never thought about mmapping
the buffers, just because I figured splice was faster. But I do have
patches that allow a user to mmap the entire ring buffer, but only in a
"producer/consumer" mode.

Note, I use page size sub-buffers, but the design could work with any
size sub-buffers. I just never implemented that (even though, when I
wrote the code it was secretly on my todo list).



The answer to that is to make a macro to do the assignment of the event,
and add a new API.

	event = ring_buffer_reserve_unlimited();

	ring_buffer_assign(event, data1);
	ring_buffer_assign(event, data2);

	ring_buffer_commit(event);

The ring_buffer_reserve_unlimited() could reserve a bunch of space
beyond one ring buffer. It could reserve data in fragments. Then the
ring_buffer_assgin() could either copy directly to the event (if the
event exists on one sub buffer) or do a copy the space was fragmented.

Of course, userspace would need to know how to read it. And it can get
complex due to interrupts coming in and also reserving between
fragments, or what happens if a partial fragment is overwritten. But all
these are not impossible to solve.

-- Steve



--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 0/2] x86: NMI-safe trap handlers, Mathieu Desnoyers, (Wed Jul 14, 8:49 am)
[patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 8:49 am)
[patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Wed Jul 14, 8:49 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 9:28 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Maciej W. Rozycki, (Wed Jul 14, 9:42 am)
Re: [patch 0/2] x86: NMI-safe trap handlers, Andi Kleen, (Wed Jul 14, 10:06 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 10:06 am)
Re: [patch 0/2] x86: NMI-safe trap handlers, Mathieu Desnoyers, (Wed Jul 14, 10:08 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 11:10 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Wed Jul 14, 11:12 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Jul 14, 11:46 am)
Re: [patch 0/2] x86: NMI-safe trap handlers, Andi Kleen, (Wed Jul 14, 11:56 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 12:14 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Maciej W. Rozycki, (Wed Jul 14, 12:21 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 12:36 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 12:41 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 12:54 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Wed Jul 14, 12:56 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Wed Jul 14, 12:58 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 1:05 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Wed Jul 14, 1:07 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Wed Jul 14, 1:08 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 1:17 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Maciej W. Rozycki, (Wed Jul 14, 1:36 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 1:39 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 1:55 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Jul 14, 2:18 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 2:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Maciej W. Rozycki, (Wed Jul 14, 2:45 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 2:52 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 3:14 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 3:21 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 3:31 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Maciej W. Rozycki, (Wed Jul 14, 3:31 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 3:31 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 3:37 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 3:48 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Jeremy Fitzhardinge, (Wed Jul 14, 3:51 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 3:56 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 4:02 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Wed Jul 14, 4:09 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Jul 14, 4:11 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 4:22 pm)
Re: [patch 0/2] x86: NMI-safe trap handlers, Tejun Heo, (Wed Jul 14, 4:29 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Tejun Heo, (Wed Jul 14, 4:32 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Wed Jul 14, 4:38 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Wed Jul 14, 4:40 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Jeremy Fitzhardinge, (Wed Jul 14, 4:54 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 6:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Wed Jul 14, 6:45 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Thu Jul 15, 7:11 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Thu Jul 15, 7:35 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Thu Jul 15, 7:46 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 7:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 8:38 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 9:26 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 9:44 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 9:49 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 10:38 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 11:31 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 11:43 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 11:48 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 1:44 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 3:01 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 3:16 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 3:24 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 3:26 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Jul 15, 3:30 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 3:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Thu Jul 15, 3:58 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 4:20 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 4:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 4:41 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Thu Jul 15, 4:44 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, H. Peter Anvin, (Thu Jul 15, 4:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Andi Kleen, (Thu Jul 15, 4:48 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Fri Jul 16, 3:47 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Fri Jul 16, 4:21 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Fri Jul 16, 4:43 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Fri Jul 16, 5:00 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 5:28 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Fri Jul 16, 5:54 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 7:49 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 8:34 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 8:40 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 9:47 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 9:58 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 10:54 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Fri Jul 16, 11:05 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 11:15 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Fri Jul 16, 11:17 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 11:22 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 11:25 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 11:28 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 11:32 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 11:37 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Jul 16, 12:13 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 12:26 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:28 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Fri Jul 16, 12:29 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:30 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 12:32 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:32 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 12:34 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Fri Jul 16, 12:39 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 2:39 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 3:07 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 3:26 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Mathieu Desnoyers, (Fri Jul 16, 3:40 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Andi Kleen, (Fri Jul 16, 3:41 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Linus Torvalds, (Fri Jul 16, 6:15 pm)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Sun Jul 18, 2:23 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Avi Kivity, (Sun Jul 18, 2:26 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Jul 18, 4:03 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 10:36 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Jul 18, 11:04 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 11:17 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 11:22 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Sun Jul 18, 11:43 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Sun Jul 18, 12:26 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Mon Jul 19, 12:32 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Tue Aug 3, 10:18 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 11:25 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Tue Aug 3, 11:56 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 12:45 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Linus Torvalds, (Tue Aug 3, 1:02 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Tue Aug 3, 1:10 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Tue Aug 3, 1:21 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 1:54 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Tue Aug 3, 2:16 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Tue Aug 3, 11:27 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Dave Chinner, (Tue Aug 3, 11:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Tue Aug 3, 11:46 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Aug 4, 12:14 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Ingo Molnar, (Wed Aug 4, 12:21 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, Peter Zijlstra, (Wed Aug 4, 2:46 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Aug 4, 7:06 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Wed Aug 4, 7:45 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Wed Aug 4, 7:50 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Wed Aug 4, 7:56 am)
Re: [patch 2/2] x86 NMI-safe INT3 and Page Fault, H. Peter Anvin, (Wed Aug 4, 1:23 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Aug 5, 6:42 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Thu Aug 5, 6:49 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Masami Hiramatsu, (Thu Aug 5, 11:18 pm)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 2:50 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 2:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 3:11 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Peter Zijlstra, (Fri Aug 6, 4:14 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 6:37 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 6:46 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 7:13 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Fri Aug 6, 7:15 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Masami Hiramatsu, (Sat Aug 7, 2:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Frederic Weisbecker, (Mon Aug 9, 9:53 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Wed Aug 11, 7:34 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Steven Rostedt, (Wed Aug 11, 7:44 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Sun Aug 15, 6:35 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Aug 15, 9:33 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Sun Aug 15, 9:44 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Sun Aug 15, 9:51 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Mathieu Desnoyers, (Sun Aug 15, 11:31 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Mon Aug 16, 3:49 am)
Re: [patch 1/2] x86_64 page fault NMI-safe, Avi Kivity, (Mon Aug 16, 4:29 am)