AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
#AC_WITH_LTDL # not needed ?
-AM_INIT_AUTOMAKE(lttv,0.12.7-20012009)
+AM_INIT_AUTOMAKE(lttv,0.12.8-27012009)
AM_CONFIG_HEADER(config.h)
AM_PROG_LIBTOOL
</tr>
+<tr>
+<td style="vertical-align: top;">
+0.12.8<br>
+</td>
+<td style="vertical-align: top;">
+0.87<br>
+</td>
+<td style="vertical-align: top;">
+0.60<br>
+0.61<br>
+0.62<br>
+0.63<br>
+0.64<br>
+</td>
+<td style="vertical-align: top;">
+obsolete<br>
+</td>
+<td style="vertical-align: top;">
+0.6<br>
+</td>
+<td style="vertical-align: top;">
+obsolete<br>
+</td>
+<td style="vertical-align: top;">
+2.3<br>
+</td>
+<td style="vertical-align: top;">
+2.6.28.2<br>
+</td>
+<td style="vertical-align: top;">
+LTTng 0.87 combines 4 page fault events into 2. This is a very high-speed
+tracing path.<br>
+LTTV 0.12.8 supports LTTng 0.87.<br>
+</td>
+<td style="vertical-align: top;">
+</td>
+<td style="vertical-align: top;">
+x86, alpha, arm26, avr32, cris, frv, h8300, m32r, m68knommu, parisc, sh, sh64,
+um, v850, xtensa.<br>
+arm, i686, ia64, m68k, mips, mipsel, x86_64, powerpc 405,
+powerpc64, s390, sparc, sparc64.<br>
+</td>
+</tr>
+
+
+
</tbody>
</table>
GQuark
LTT_EVENT_SYSCALL_ENTRY,
LTT_EVENT_SYSCALL_EXIT,
+ LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY,
+ LTT_EVENT_PAGE_FAULT_NOSEM_EXIT,
+ LTT_EVENT_PAGE_FAULT_ENTRY,
+ LTT_EVENT_PAGE_FAULT_EXIT,
LTT_EVENT_TRAP_ENTRY,
LTT_EVENT_TRAP_EXIT,
LTT_EVENT_IRQ_ENTRY,
NULL,
trap_exit, NULL, &hooks);
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ trap_entry, NULL, &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_EXIT,
+ NULL,
+ trap_exit, NULL, &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ trap_entry, NULL, &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_NOSEM_EXIT,
+ NULL,
+ trap_exit, NULL, &hooks);
+
lttv_trace_find_hook(ts->parent.t,
LTT_CHANNEL_KERNEL,
LTT_EVENT_IRQ_ENTRY,
LTT_EVENT_SYSCALL_EXIT = g_quark_from_string("syscall_exit");
LTT_EVENT_TRAP_ENTRY = g_quark_from_string("trap_entry");
LTT_EVENT_TRAP_EXIT = g_quark_from_string("trap_exit");
+ LTT_EVENT_PAGE_FAULT_ENTRY = g_quark_from_string("page_fault_entry");
+ LTT_EVENT_PAGE_FAULT_EXIT = g_quark_from_string("page_fault_exit");
+ LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY = g_quark_from_string("page_fault_nosem_entry");
+ LTT_EVENT_PAGE_FAULT_NOSEM_EXIT = g_quark_from_string("page_fault_nosem_exit");
LTT_EVENT_IRQ_ENTRY = g_quark_from_string("irq_entry");
LTT_EVENT_IRQ_EXIT = g_quark_from_string("irq_exit");
LTT_EVENT_SOFT_IRQ_RAISE = g_quark_from_string("softirq_raise");
LTT_EVENT_SYSCALL_EXIT,
LTT_EVENT_TRAP_ENTRY,
LTT_EVENT_TRAP_EXIT,
+ LTT_EVENT_PAGE_FAULT_ENTRY,
+ LTT_EVENT_PAGE_FAULT_EXIT,
+ LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY,
+ LTT_EVENT_PAGE_FAULT_NOSEM_EXIT,
LTT_EVENT_IRQ_ENTRY,
LTT_EVENT_IRQ_EXIT,
LTT_EVENT_SOFT_IRQ_RAISE,
events_request,
&hooks);
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_EXIT,
+ NULL,
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_NOSEM_EXIT,
+ NULL,
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
lttv_trace_find_hook(ts->parent.t,
LTT_CHANNEL_KERNEL,
LTT_EVENT_IRQ_ENTRY,
events_request,
&hooks);
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_EXIT,
+ NULL,
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY,
+ FIELD_ARRAY(LTT_FIELD_TRAP_ID),
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
+ lttv_trace_find_hook(ts->parent.t,
+ LTT_CHANNEL_KERNEL,
+ LTT_EVENT_PAGE_FAULT_NOSEM_EXIT,
+ NULL,
+ before_execmode_hook,
+ events_request,
+ &hooks);
+
lttv_trace_find_hook(ts->parent.t,
LTT_CHANNEL_KERNEL,
LTT_EVENT_IRQ_ENTRY,
/*
* Check for LTT_CHANNEL_KERNEL channel name and event ID
- * corresponding to LTT_EVENT_TRAP_ENTRY or LTT_EVENT_TRAP_EXIT.
+ * corresponding to LTT_EVENT_TRAP/PAGE_FAULT_ENTRY or
+ * LTT_EVENT_TRAP/PAGE_FAULT_EXIT.
*/
if (tfc->tf->name != LTT_CHANNEL_KERNEL)
return 0;
minfo = marker_get_info_from_id(tfc->tf->mdata, e->event_id);
g_assert(minfo != NULL);
- if (minfo->name == LTT_EVENT_TRAP_ENTRY) {
+ if (minfo->name == LTT_EVENT_TRAP_ENTRY
+ || minfo->name == LTT_EVENT_PAGE_FAULT_ENTRY
+ || minfo->name == LTT_EVENT_PAGE_FAULT_NOSEM_ENTRY) {
trap = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 0));
- } else if (minfo->name == LTT_EVENT_TRAP_EXIT) {
+ } else if (minfo->name == LTT_EVENT_TRAP_EXIT
+ || minfo->name == LTT_EVENT_PAGE_FAULT_EXIT
+ || minfo->name == LTT_EVENT_PAGE_FAULT_NOSEM_EXIT) {
trap = ts->cpu_states[cpu].last_trap;
} else
return 0;