public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* draft 1.3 release notes
@ 2010-07-08 19:33 David Smith
  2010-07-08 19:42 ` Dave Brolley
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: David Smith @ 2010-07-08 19:33 UTC (permalink / raw)
  To: Systemtap List

[-- Attachment #1: Type: text/plain, Size: 322 bytes --]

We're getting close to releasing 1.3, and I've put together draft
release notes.  I've marked several FIXMEs for completion/clarification.

Please review the notes and let me know of fixes/additions/corrections/etc.

-- 
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)

[-- Attachment #2: release-1.3.txt --]
[-- Type: text/plain, Size: 12653 bytes --]

The systemtap team announces release 1.3.

FIXME - better summary?

  integrated compile server client, automatic structure printing, user
  space stack traces, interesting new sample scripts, kernel versions
  2.6.9 through 2.6.35-rc4

= Where to get it

  http://sourceware.org/systemtap/ - our project page
  http://sourceware.org/systemtap/ftp/releases/systemtap-1.3.tar.gz
  http://koji.fedoraproject.org/koji/packageinfo?packageID=615
  git tag release-1.3 (commit FIXME)

= How to build it

  See the README and NEWS files at
  http://sourceware.org/git/?p=systemtap.git;a=tree
  Further information at http://sourceware.org/systemtap/wiki/

= Systemtap frontend (stap) changes

FIXME - anything else?

- A new integrated compile server client is now available as part of stap.

  o 'stap --server ...' is equivalent to 'stap-client ...'
  o 'stap --server-status' is equivalent to 'stap-find-servers'
  o 'stap --server-status=online' is equivalent to 'stap-find-servers --all'
  o stap-client and its related tools will soon be deprecated.
  o the nss-devel and avahi-devel packages are required for building stap with
    the integrated client (checked during configuration).
  o nss and avahi are required to run the integrated client.

- The new "--ldd" option automatically adds any additional shared
  libraries needed by probed or -d-listed userspace binaries to the -d
  list, to enable symbolic backtracing through them.  Similarly, the
  new "--all-modules" option automatically adds any currently loaded
  kernel modules (listed in /proc/modules) to the -d list.

- By default the systemtap-runtime RPM builds now include a shared
  library, staplog.so, that allows crash to extract systemtap data from
  a vmcore image.

- Backward compatibility flags (--compatible=VERSION, and matching
  script preprocessing predicate %( systemtap_v CMP "version" %)
  and a deprecation policy are being introduced, in case future
  tapset/language changes break valid scripts.

- The <sys/sdt.h> user-space markers no longer default to an implicit
  MARKER_NAME_ENABLED() semaphore check for each marker.  To check for
  enabled markers use a .d declaration file, then:
     if (MARKER_NAME_ENABLED()) MARKER_NAME()

- Hyphenated <sys/sdt.h> marker names such as process(...).mark("foo-bar")
  are now accepted in scripts.  They are mapped to the double-underscore
  form ("foo__bar").

- Prototype support for debuginfo-less <sys/sdt.h> user-space markers
  is included for some architectures (i686 and x86-64 initially).
  Compile your sdt.h-instrumented program with -DSTAP_SDT_V2 to
  activate this mode.  This implementation also supports preserving
  the "provider" name associated with a marker:
    probe process("foo").provider("bar").mark("baz") to match
    STAP_PROBE<n>(bar, baz <...>)

= Systemtap script language changes

FIXME - anything else?

- Iterating with "foreach" can now explicitly save the value for the loop.
     foreach(v = [i,j] in array)
       printf("array[%d,%s] = %d\n", i, j, v /* array[i,j] */)

- A new operator @entry is available for automatically saving an expression
  at entry time for use in a .return probe.
   probe foo.return { println(get_cycles() - @entry(get_cycles())) }

- Probe $target variables and @cast() can now use a suffix to print complex
  data types as strings.  Use a single '$' for a shallow view, or '$$' for a
  deeper view that includes nested types.  For example, with fs_struct:
   $fs$ : "{.users=%i, .lock={...}, .umask=%i,
            .in_exec=%i, .root={...}, .pwd={...}}"
   $fs$$ : "{.users=%i, .lock={.raw_lock={.lock=%u}}, .umask=%i, .in_exec=%i,
             .root={.mnt=%p, .dentry=%p}, .pwd={.mnt=%p, .dentry=%p}}"

- Embedded-C may be used within expressions as values, when in guru mode:
     num = %{ LINUX_VERSION_CODE %}               // int64_t
     name = %{ /* string */ THIS_MODULE->name %}  // const char*
     printf ("%s %x\n", name, num)
  The usual /* pure */, /* unprivileged */, and /* guru */ markers may be used 
  as with embedded-C functions.

- Probe wildcards can now use '**' to cross the '.' separator.
     $ stap -l 'sys**open'
     syscall.mq_open
     syscall.open

= Systemtap tapset changes

FIXME - anything else?

- It is now possible in some situations to use print_ubacktrace() to
  get a user space stack trace from a kernel probe point. e.g. for
  user backtraces when there is a pagefault:
  $ stap -d /bin/sort --ldd -e 'probe vm.pagefault {
      if (pid() == target()) {
         printf("pagefault @0x%x\n", address); print_ubacktrace();
      } }' -c /bin/sort
  [...]
  pagefault @0x7fea0595fa70
   0x000000384f07f958 : __GI_strcmp+0x12b8/0x1440 [libc-2.12.so]
   0x000000384f02824e : __gconv_lookup_cache+0xee/0x5a0 [libc-2.12.so]
   0x000000384f021092 : __gconv_find_transform+0x92/0x2cf [libc-2.12.so]
   0x000000384f094896 : __wcsmbs_load_conv+0x106/0x2b0 [libc-2.12.so]
   0x000000384f08bd90 : mbrtowc+0x1b0/0x1c0 [libc-2.12.so]
   0x0000000000404199 : ismbblank+0x39/0x90 [sort]
   0x0000000000404a4f : inittables_mb+0xef/0x290 [sort]
   0x0000000000406934 : main+0x174/0x2510 [sort]
   0x000000384f01ec5d : __libc_start_main+0xfd/0x1d0 [libc-2.12.so]
   0x0000000000402509 : _start+0x29/0x2c [sort]
  [...]

- New tapset functions to get a string representation of a stack trace:
  sprint_[u]backtrace() and sprint_[u]stack().

- New tapset function to get the module (shared library) name for a
  user space address umodname:string(long). The module name will now
  also be in the output of usymdata() and in backtrace addresses even
  when they were not given with -d at the command line.

- A new family of set_kernel_* functions make it easier for gurus to write
  new values at arbitrary memory addresses.

= New script examples

- profiling/errno.stp      Show which processes and system calls
                           return errors most frequently
- io/deviceseeks.stp       Histograms of seek behavior for each device
- process/noptrace.stp     Disable ptrace(2) from hierarchies of processes
- general/sizeof.stp       Print the size of a C type
- profiling/linetimes.stp  Show time spent on each line if a function
- process/cycle_thief.stp  Track IRQs and other processes stealing
                           cycles from a task

= Contributors for this release

  Adrien Kunysz Charley Wang, Dave Brolley, David Smith, Don Domingo,
  Frank Ch. Eigler, Josh Stone, Lars R. Damerow, Lukas Berk, Mark
  Wielaard, Przemysław Pawełczyk, Roland McGrath, Srikar Dronamraju,
  Stan Cox, Tom Callaway, Tony Jones, Wenji Huang, William Cohen

= Examples of tested kernel versions

  2.6.9 (el4/i686)
  2.6.18 (el5/ia64/i686/x86_64)
  2.6.32 (el6/i686/x86_64)
  2.6.32 (f12/i686/x86_64)
  2.6.33 (f13/i686/x86_64)
  2.6.35-rc4 (rawhide/x86_64)

= Known issues with this release

FIXME any other issues?

- When using the systemtap client and server udp port 5353 must be
  open in your firewall in order for the clent to find servers using
  avahi-browse.

- The stap-server may not be sufficiently robust to operate on an open
  untrusted network.

- Some kernel crashes continue to be reported when a script probes
  broad kernel function wildcards.

= Bugs fixed for this release

   1155  inline function parameters
   2049  revise $target->subfield syntax
   2168  incomplete translation of histogram bucket foreach
   2228  benchmark suite
   3672  Support formatted dump of struct $pointers
   3833  nfs_proc.stp and LKET/nfs_proc.stp tapset files broken
   4396  script to dump hung task's kernel stack
   4529  tapset coverage option
   4978  need better printf() documentation
   5151  rpc-all-probes.stp fails on 2.6.23-rc9 kernel
   5621  RFE: support for a general buffer kread()
   5949  instruction/block tracing for userspace
   6582  register() needs pt_regs check
   6731  improve -l (listing mode) to list probe/alias variables
   6739  global alias cache too slow
   6819  stapprobes(5) - syntactically (in)valid probepoints
   6826  shorthand or variable for probed executable's path
   6898  marker $$args / $$parms
   6902  optimize use of elfutils offline module search
   7030  signal tapset may be referring to inline functions.
   7070  registration error (rc -22), module probes, missing reloc info
   9958  Provide a way for C tapset functions to assert guru mode
   9998  Update tapset/i686/registers.stp per pt_regs change
  10025  wildcards lose when embedded in conditional %(%) expressions
  10054  improve $expr->foo->bar->zoo error messages
  10065  Create modules for Hardware Breakpoint
  10115  Regression with inet_sock @cast from 0.9 to 0.9.7 on 2.6.9 kernel
  10228  Add more vma-tracking for user space symbol/backtraces
  10245  Allow "-" in static marker names
  10327  follow symbol aliases for debuginfo search
  10393  sdt.exp utrace tests fail on 2.6.31 rawhide kernel
  10599  Always print module/map names for kernel/executable addresses
  10665  backtrace() is too slow
  10830  new pp() variant for source-level probe point name
  10913  bad/misleading translator error message
  10943  Support generic @entry saving in .return probes
  10978  Getting the size of a data type
  11095  Support "provider" for mark() probes
  11222  ABRT interface
  11266  var_expanding_visitor barfs on non-assignment lvalues
  11340  directly-accessed tracepoint args are surviving target_symbols
  11343  backward compatibility flags/conditionals
  11399  Allow ** in matching probe points
  11425  probefunc() broken when used with kprobe.function
  11427  systemtap 1.2 does not compile on sparc/sparc64
  11443  Add a "list unprivileged" option to stap
  11446  Server installed by systemtap-server rpm should be locally trusted
  11455  use XDG_DATA_DIRS for tapset path searching
  11473  Support optional "VALUE =" in foreach loops
  11474  iotop example is very slow in pass-2
  11480  bad kfail for rpc-all-probes.stp test
  11498  don't have a cow with oversize debug_frame
  11508  automate -d option for shared library searching
  11514  nd_syscall.exp takes 10 times longer than syscall.exp testcase
  11553  need better message for return probe on inline function
  11556  @cast() with array indexing on pointers
  11566  embedded-C expressions
  11573  uprobe_get_pc, sayonara
  11575  TRYLOCKDELAY too short
  11590  optimized pre/postfix operators throw away initial assignment
  11592  sdt.h should have a 'disable-semaphores' override option
  11598  @defined() should allow the address-of operator "&"
  11599  Support data pointer in tracepoint callbacks
  11609  -d ALL_LOADED_MODULES option
  11617  Gluing string literals doesn't work with token substitution
  11641  FAIL: fib (19 1) backtrace from uretprobe fails
  11649  workarounds for incomplete kernel include/linux/events/*.h decls
  11661  recvmmsg missing from syscall tapset
  11663  switch to embedded-c-expressions for kernel-marker tapset functions
  11664  try-catch squashes normal exits from next/return
  11665  umodname tapset function
  11672  utrace_report_syscall_exit crash
  11678  stap -d /bin/prog --ldd doesn't pick up ld.so
  11680  Systemtap build broken on PPC64
  11684  eliminate duplication between language reference guide and tapset docs
  11690  Semaphores are broken under STAP_SDT_V2
  11698  stap fails to figure out powerpc function aliases
  11706  unautoconfiscation of most stap*.in man pages
  11707  on ppc, all nd_syscall probes fail
  11708  SDT on i686 is register-poor
  11710  on s390x, all nd_syscall probes fail
  11713  listing of available $variables should include $
  11719  on ppc, the cmd_parse.exp and preprocessor.exp test fail
  11721  the usymbols.exp testcase shouldn't touch '__user' memory directly
  11722  on ppc, usymbols.exp should be probing syscall.rt_sigaction32
  11723  transok/buildko.stp fails incorrectly
  11725  on RHEL5 ppc, systemtap.printf/bin6.exp fails
  11726  on ppc, systemtap.printf/memory1.exp fails with compile errors
  11752  on ppc, the signal.handle_signal tapset alias needs to be updated
  11761  stap -L 'kernel.mark("*")' only lists $arg1..$argN variables
  11762  the systemtap.base/flightrec*.exp tests randomly fail
  11771  on ppc, the syscall.pipe tapset alias fails when accessing pipe0/pipe1
  11778  sprint_ustack & sprint_stack 

FIXME also list CVEs? RHBZs?

= Test results on various systems

- After running "sudo make installcheck" from the test suite, on a
  suitably equipped machine (kernel debugging data and other stuff
  installed), you should see 1000-1100 passes and a small handful of
  failures.  Those enjoying utrace in their kernels should see several
  hundred more passes.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: draft 1.3 release notes
  2010-07-08 19:33 draft 1.3 release notes David Smith
@ 2010-07-08 19:42 ` Dave Brolley
  2010-07-12 19:09 ` Frank Ch. Eigler
  2010-07-20 11:41 ` Mark Wielaard
  2 siblings, 0 replies; 4+ messages in thread
From: Dave Brolley @ 2010-07-08 19:42 UTC (permalink / raw)
  To: David Smith; +Cc: Systemtap List

David Smith wrote:
> We're getting close to releasing 1.3, and I've put together draft
> release notes.  I've marked several FIXMEs for completion/clarification.
>
> Please review the notes and let me know of fixes/additions/corrections/etc.
>   
Hi David,

One nit: fche has suggested to me that we refer to the compile-server 
using hyphenated spelling so that terms like "compile server client" 
don't seem to oxymoronic. "compile-server client" makes it more clear 
which is the noun and which are the adjectives.

Also, stay tuned for the consensus on the option names for the 
integrated compile-server client.

Dave

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: draft 1.3 release notes
  2010-07-08 19:33 draft 1.3 release notes David Smith
  2010-07-08 19:42 ` Dave Brolley
@ 2010-07-12 19:09 ` Frank Ch. Eigler
  2010-07-20 11:41 ` Mark Wielaard
  2 siblings, 0 replies; 4+ messages in thread
From: Frank Ch. Eigler @ 2010-07-12 19:09 UTC (permalink / raw)
  To: David Smith; +Cc: Systemtap List

David Smith <dsmith@redhat.com> writes:

> [...]
> The systemtap team announces release 1.3.
>
> FIXME - better summary?

#   integrated compile-server client, automatic structure
#   pretty-printing, much faster & better stack backtraces
#   (user+kernel space), interesting new sample scripts,
#   prototype debuginfo-less <sys/sdt.h> userspace markers,
#   kernel versions 2.6.9 through 2.6.35-rc4


> = Where to get it
>
>   http://sourceware.org/systemtap/ - our project page
>   http://sourceware.org/systemtap/ftp/releases/systemtap-1.3.tar.gz
>   http://koji.fedoraproject.org/koji/packageinfo?packageID=615
>   git tag release-1.3 (commit FIXME)

It would be nice to include the number of commits since the last release.


>   o 'stap --server ...' is equivalent to 'stap-client ...'
>   o 'stap --server-status' is equivalent to 'stap-find-servers'
>   o 'stap --server-status=online' is equivalent to 'stap-find-servers --all'
>   o stap-client and its related tools will soon be deprecated.
>   o the nss-devel and avahi-devel packages are required for building stap with
>     the integrated client (checked during configuration).
>   o nss and avahi are required to run the integrated client.

(Note renamed options.)


> [...]
> = Systemtap tapset changes
>
> FIXME - anything else?

As the release wiki page suggests, the git log should be searched for
anything new.

> = New script examples
>
> - profiling/errno.stp      Show which processes and system calls
>                            return errors most frequently
> - io/deviceseeks.stp       Histograms of seek behavior for each device
> - process/noptrace.stp     Disable ptrace(2) from hierarchies of processes
> - general/sizeof.stp       Print the size of a C type
> - profiling/linetimes.stp  Show time spent on each line if a function
> - process/cycle_thief.stp  Track IRQs and other processes stealing
>                            cycles from a task

OK.

> = Contributors for this release
> [...]
> = Bugs fixed for this release
> [...]

(These and some other sections will need a last-minute refresh just as
the tags are being made.)

> FIXME also list CVEs? RHBZs?

Relevant RHBZs are generally duplicated to our bugzilla server,
and there have been no CVE's against us lately.


> = Test results on various systems
>
> - After running "sudo make installcheck" from the test suite, on a
>   suitably equipped machine (kernel debugging data and other stuff
>   installed), you should see 1000-1100 passes and a small handful of
>   failures.  Those enjoying utrace in their kernels should see several
>   hundred more passes.

The utrace numbers are more like 1400-1600 passes.  We should add a
utrace-less figure too: 800 or so for a recent RHEL4 run.

- FChE

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: draft 1.3 release notes
  2010-07-08 19:33 draft 1.3 release notes David Smith
  2010-07-08 19:42 ` Dave Brolley
  2010-07-12 19:09 ` Frank Ch. Eigler
@ 2010-07-20 11:41 ` Mark Wielaard
  2 siblings, 0 replies; 4+ messages in thread
From: Mark Wielaard @ 2010-07-20 11:41 UTC (permalink / raw)
  To: David Smith; +Cc: Systemtap List

On Thu, 2010-07-08 at 14:32 -0500, David Smith wrote:
> The systemtap team announces release 1.3.
> 
> FIXME - better summary?
> 
>   integrated compile server client, automatic structure printing, user
>   space stack traces, interesting new sample scripts, kernel versions
>   2.6.9 through 2.6.35-rc4

"user space stack traces" might not really describe what is new with
1.3. Since we have had those for some time. What is new is "user space
stack traces from kernel probe contexts" (e.g. what was my application
doing during a profile timer trigger, syscall, perf hardware event, page
fault, kernel function probe, etc.)

Also (if there is room in the short summary) stack traces are now
"faster and more accurate" (although both of those features could just
be regarded as bugs in the old versions of course).

Cheers,

Mark

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-07-20 11:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-08 19:33 draft 1.3 release notes David Smith
2010-07-08 19:42 ` Dave Brolley
2010-07-12 19:09 ` Frank Ch. Eigler
2010-07-20 11:41 ` Mark Wielaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).