]> www.infradead.org Git - users/jedix/linux-maple.git/log
users/jedix/linux-maple.git
13 years agoFix signed division and modulo operations in DIF.
Kris Van Hees [Tue, 17 Jan 2012 20:03:17 +0000 (15:03 -0500)]
Fix signed division and modulo operations in DIF.
Ensure that SDT probe points are patched with a NOP sequence at boot time.
Remove debugging output during SDT registration.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoForgot to commit the changes to the header file.
Kris Van Hees [Thu, 12 Jan 2012 22:34:35 +0000 (17:34 -0500)]
Forgot to commit the changes to the header file.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoThe idr_empty() macro is no longer needed.
Kris Van Hees [Thu, 12 Jan 2012 21:39:42 +0000 (16:39 -0500)]
The idr_empty() macro is no longer needed.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoFix for incorrect handling of BUFSIZE = 0. The handling of aggregations was
Kris Van Hees [Thu, 12 Jan 2012 21:36:54 +0000 (16:36 -0500)]
Fix for incorrect handling of BUFSIZE = 0.  The handling of aggregations was
flawed in that even without any ECBs with aggregation, the code logic was
assuming there was at least one aggregation (the sentinel in the IDR).  The
handling of the aggregations IDR in the DTrace state has been updated to use
an explicit counter because the IDR functionality does not provide us with an
API function to determine the amount of elements in the IDR.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoInitial values for min and max aggregate functions were incorrectly set to be
Kris Van Hees [Thu, 12 Jan 2012 20:15:15 +0000 (15:15 -0500)]
Initial values for min and max aggregate functions were incorrectly set to be
UINT64 values rather than INT64 values, causing the initial minimum value to
be -1, and the initial maximum value to be 0.  Corrected to be INT64 values.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoEnsure that the trap handler is regisstered only once.
Kris Van Hees [Thu, 12 Jan 2012 14:25:35 +0000 (09:25 -0500)]
Ensure that the trap handler is regisstered only once.
Register with first use,

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoEnsure that the die notifier hook is installed whenever DTrace is enabled,
Kris Van Hees [Wed, 11 Jan 2012 06:18:41 +0000 (01:18 -0500)]
Ensure that the die notifier hook is installed whenever DTrace is enabled,
since page fault and general protection fault handling depends on it, and that
is needed for safe memory access support in DTrace.

Work around an apparent bug in Xen where an invalid opcode fault is delivered
as a general protection failure instead.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoSupport for page fault and general protection fault detection for DTrace, to
Kris Van Hees [Wed, 14 Dec 2011 05:09:14 +0000 (00:09 -0500)]
Support for page fault and general protection fault detection for DTrace, to
ensure that DTrace memory access faults are non-fatal.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoSDT implementation (core kernel support for providing a list of static probe
Kris Van Hees [Mon, 5 Dec 2011 20:01:27 +0000 (15:01 -0500)]
SDT implementation (core kernel support for providing a list of static probe
points for the kernel pseudo-module, dtrace SDT meta-provider support, ...).
Also, new script (dtrace_sdt.sh) to extract locations of SDT probe points in
the core kernel.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoEnable processing the SDT probe point info at boot time (before SMP is actually
Kris Van Hees [Mon, 14 Nov 2011 15:17:45 +0000 (10:17 -0500)]
Enable processing the SDT probe point info at boot time (before SMP is actually
enabled), if DTrace SDT support has been enabled (built-in or as module).  For
now, provide some verbose info on the probe points getting resolved.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoFix resolving addresses of relocation records for SDT probe points. The
Kris Van Hees [Fri, 11 Nov 2011 07:34:04 +0000 (02:34 -0500)]
Fix resolving addresses of relocation records for SDT probe points.  The
addresses were being calculated based on the wrong starting point (_stext
whereas it ought to be _text), and the base was not taken into account.
Fixed the writing of NOPs in the location of the probe point calls, since
the existing case was causing kernel paging faults.  Made the add_nops()
function in alternative.c non-static so it can be used in sdt_register.
Use add_nops() to select the most appropriate NOP sequence for replacing the
probe point call, and write the NOPs using text_poke().

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoFixed the allocation of cyclics that was the cuase for some obscure crashes
Kris Van Hees [Thu, 3 Nov 2011 17:59:00 +0000 (13:59 -0400)]
Fixed the allocation of cyclics that was the cuase for some obscure crashes
during the testsuite execution.  Problem was that cyclics were being allocated
in chunks, with a new array being allocated as (prev-size + chink-size), and
then the old entries being copied over.  However, because the hrtimer struct is
embedded in the cyclic struct, this meant that hrtimer structs were being moved
outside the hrtimer code.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoHandle the case where regs (during cyclic processing) is NULL. This indicates
Kris Van Hees [Thu, 27 Oct 2011 17:15:26 +0000 (13:15 -0400)]
Handle the case where regs (during cyclic processing) is NULL.  This indicates
a bug but with this code change we'll survive that case and simply not have
meaningful PC and UPC values as argument to the probe, which is better than a
full scale OOPS due to NULL pointer dereference.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoRemoved dead code (was #if 0 ... #endif). Cleaned up ;; -> ;.
Kris Van Hees [Thu, 27 Oct 2011 15:18:38 +0000 (11:18 -0400)]
Removed dead code (was #if 0 ... #endif).  Cleaned up ;; -> ;.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoImplementation for tracing stub-based system calls. Due to the need for
Kris Van Hees [Thu, 27 Oct 2011 14:39:19 +0000 (10:39 -0400)]
Implementation for tracing stub-based system calls.  Due to the need for
specialized code handling (mainly passing in a pt_regs structure as one of
the arguments), some syscalls are called through a stub in assembly code.
We duplicate the stub cdode in dtrace_stubs_x86_64.S, but instead of calling
the actual syscall implementation code call our own syscall-specific handler,
which ensures that entry and return probes are called as enabled, and then
call the underlying implementation directly for handling the syscall.

Also removed debugging output that is no longer relevant (code cleanup).

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoStacktrace dumping has been moved to the GPL-licensed dtrace_os.c because it
Kris Van Hees [Fri, 14 Oct 2011 02:42:27 +0000 (22:42 -0400)]
Stacktrace dumping has been moved to the GPL-licensed dtrace_os.c because it
depends on a symbol that is exported as GPL-only.  Functionality in dtrace_isa
that requires stacktrace dumping can now use dtrace_stacktrace().

The GPL-licensed dtrace_os.h C header file is now made available through the
/include/linux hierarchy, and it is included in dtrace.h.

Fixed a bug in dtrace_relocs.c where section names where copied into a memory
area that was 1 byte short, causing various unpleasant forms of behaviour.

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoFix porting issues from 2.6.32 to 2.6.39.
Kris Van Hees [Thu, 13 Oct 2011 16:45:48 +0000 (12:45 -0400)]
Fix porting issues from 2.6.32 to 2.6.39.
Disable stub_* based syscalls (for now).

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
13 years agoMove cyclic.h into include/linux.
Nick Alcock [Tue, 4 Oct 2011 11:58:17 +0000 (12:58 +0100)]
Move cyclic.h into include/linux.

This is so that things in dtrace/ can pick it up.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
13 years agoFinish GPL/CDDL splitting work.
Nick Alcock [Mon, 3 Oct 2011 16:20:15 +0000 (17:20 +0100)]
Finish GPL/CDDL splitting work.

kernel/dtrace and all that it #includes is now GPLv2, with the aid of a new
systrace_os.h header containing the subset of systrace.h needed by the GPL shim.
Conversely, dtrace/ is entirely CDDL.

dtrace_ioctl.h is now an exported, header in include/linux/, to ease future
sharing by the userspace side. It is probably not copyrightable (as is essential
for interoperability and contains no creative elements), but if it has any license
at all it is GPLv2 like the other headers in that directory (many of which are
include them.)

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
13 years agoSet MODULE_LICENSE to CDDL.
Nick Alcock [Fri, 30 Sep 2011 18:39:22 +0000 (19:39 +0100)]
Set MODULE_LICENSE to CDDL.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
13 years agoCDDL copyrights for everything needing it.
Nick Alcock [Fri, 30 Sep 2011 18:29:33 +0000 (19:29 +0100)]
CDDL copyrights for everything needing it.

The stuff in kernel/dtrace gets just a (C) line: dual-licensed parts will need
further adjustment.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
13 years agoInitial commit of DTrace.
Nick Alcock [Fri, 30 Sep 2011 17:55:09 +0000 (18:55 +0100)]
Initial commit of DTrace.

Build via a simple 'make' if you're already running this kernel, or via 'make
KERNELDIR=/path/to/kernel/top/level' otherwise. Installed via 'make install'.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>