<feed xmlns='http://www.w3.org/2005/Atom'>
<title>systemtap-steved/runtime/transport, branch master</title>
<subtitle>Unnamed repository; edit this file to name it for gitweb.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/'/>
<entry>
<title>Fixed PR 11148 by reworking transport directory locks.</title>
<updated>2010-01-08T19:26:47+00:00</updated>
<author>
<name>David Smith</name>
<email>dsmith@redhat.com</email>
</author>
<published>2010-01-08T19:26:47+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=50f2701f68c86e2ec2d03ec39ff6a9099f330c6f'/>
<id>50f2701f68c86e2ec2d03ec39ff6a9099f330c6f</id>
<content type='text'>
* runtime/transport/transport.c (_stp_get_root_dir): No longer
  locks/unlocks the transport directory.
  (_stp_remove_root_dir): Ditto.
  (_stp_transport_fs_init): Locks and unlocks the transport directory.
  Ensures that the root directory can't be deleted between calling
  _stp_get_root_dir() and creating the module dir.
  (_stp_transport_fs_close): Locks and unlocks the transport directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* runtime/transport/transport.c (_stp_get_root_dir): No longer
  locks/unlocks the transport directory.
  (_stp_remove_root_dir): Ditto.
  (_stp_transport_fs_init): Locks and unlocks the transport directory.
  Ensures that the root directory can't be deleted between calling
  _stp_get_root_dir() and creating the module dir.
  (_stp_transport_fs_close): Locks and unlocks the transport directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>PR11015 Support shared library reloading (in different processes)</title>
<updated>2009-12-22T22:44:29+00:00</updated>
<author>
<name>Mark Wielaard</name>
<email>mjw@redhat.com</email>
</author>
<published>2009-12-21T12:02:19+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=2d0ddea123e8d5d1113b80692689a80f37d46e6f'/>
<id>2d0ddea123e8d5d1113b80692689a80f37d46e6f</id>
<content type='text'>
* runtime/task_finder_vma.c (stap_remove_vma_map_info): Return negative
  status on failure.
  (stap_find_vma_map_info): Likewise.
  (stap_find_vma_map_info_user): New function.
  (stap_drop_vma_maps): New function.
* runtime/sym.h (addr): Renamed to static_addr, to store addresses for
  sections which are always mapped at the same address.
  (_stp_module_relocate): Add extra struct task_struct *tsk argument.
* runtime/sym.c (_stp_tf_exec_cb): New callback, calls stap_drop_vma_maps.
  (_stp_tf_mmap_cb): Don't store address in module.section, but call
  stap_add_vma_map_info() per tsk-&gt;group_leader for matched module.
  Don't register empty/null modules.
  (_stp_module_relocate): Take extra struct task_struct *tsk argument,
  cache last tsk used. Only use section-&gt;static_addr for none dynamic
  modules. Use stap_find_vma_map_info_user() to locate dynamic modules.
  (_stp_mod_sec_lookup): Add extra argument unsigned long *rel_addr to
  optionally store relative address when module/section found.
  (_stp_kallsyms_lookup): Use _stp_mod_sec_lookup to find relative address.
  (_stp_sym_init): Register _stp_tf_exec_cb in stap_task_finder_target.
  Add error check to see if task finder could be initialized.
* dwflpp.cxx (emit_address): Pass NULL for kernel/modules and current for
  user tasks to _stp_module_relocate.
* runtime/transport/symbols.c (_stp_do_relocation): Set new static_addr
  _stp_section field.
* runtime/unwind.c (adjustStartLoc): Take new struct task_struct *tsk
  argument and pass to stap_find_vma_map_info_user and _stp_module_relocate
  to find adjusted addr.
  (_stp_search_unwind_hdr): Pass through struct task_struct *tsk.
  (unwind_frame): Likewise.
* tapset/context-symbols.stp (probemod): Add NULL to _stp_mod_sec_lookup
  call to indicate we aren't interested in relative address.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_init): Pass NULL to
  _stp_module_relocate to indicate kernel/module address.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* runtime/task_finder_vma.c (stap_remove_vma_map_info): Return negative
  status on failure.
  (stap_find_vma_map_info): Likewise.
  (stap_find_vma_map_info_user): New function.
  (stap_drop_vma_maps): New function.
* runtime/sym.h (addr): Renamed to static_addr, to store addresses for
  sections which are always mapped at the same address.
  (_stp_module_relocate): Add extra struct task_struct *tsk argument.
* runtime/sym.c (_stp_tf_exec_cb): New callback, calls stap_drop_vma_maps.
  (_stp_tf_mmap_cb): Don't store address in module.section, but call
  stap_add_vma_map_info() per tsk-&gt;group_leader for matched module.
  Don't register empty/null modules.
  (_stp_module_relocate): Take extra struct task_struct *tsk argument,
  cache last tsk used. Only use section-&gt;static_addr for none dynamic
  modules. Use stap_find_vma_map_info_user() to locate dynamic modules.
  (_stp_mod_sec_lookup): Add extra argument unsigned long *rel_addr to
  optionally store relative address when module/section found.
  (_stp_kallsyms_lookup): Use _stp_mod_sec_lookup to find relative address.
  (_stp_sym_init): Register _stp_tf_exec_cb in stap_task_finder_target.
  Add error check to see if task finder could be initialized.
* dwflpp.cxx (emit_address): Pass NULL for kernel/modules and current for
  user tasks to _stp_module_relocate.
* runtime/transport/symbols.c (_stp_do_relocation): Set new static_addr
  _stp_section field.
* runtime/unwind.c (adjustStartLoc): Take new struct task_struct *tsk
  argument and pass to stap_find_vma_map_info_user and _stp_module_relocate
  to find adjusted addr.
  (_stp_search_unwind_hdr): Pass through struct task_struct *tsk.
  (unwind_frame): Likewise.
* tapset/context-symbols.stp (probemod): Add NULL to _stp_mod_sec_lookup
  call to indicate we aren't interested in relative address.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_init): Pass NULL to
  _stp_module_relocate to indicate kernel/module address.
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed extra declarations.</title>
<updated>2009-10-29T20:54:58+00:00</updated>
<author>
<name>David Smith</name>
<email>dsmith@redhat.com</email>
</author>
<published>2009-10-29T20:54:58+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=d855fc1db953a049b953d0c987f93a252232e6f2'/>
<id>d855fc1db953a049b953d0c987f93a252232e6f2</id>
<content type='text'>
* runtime/transport/transport.h: Removed extra declarations of
  _stp_transport_init() and _stp_transport_close().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* runtime/transport/transport.h: Removed extra declarations of
  _stp_transport_init() and _stp_transport_close().
</pre>
</div>
</content>
</entry>
<entry>
<title>PR10854: Use a mutex around transport startup/shutdown</title>
<updated>2009-10-27T19:15:29+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2009-10-27T19:15:29+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=a1995fef7f86ee6d1c3860cfb7e2652d986e4aa9'/>
<id>a1995fef7f86ee6d1c3860cfb7e2652d986e4aa9</id>
<content type='text'>
We had a race where the probe setup could be called during/after the
probe shutdown in abnormal circumstances, which leads to kernel
callbacks still registered after module unload.  (BOOM)

Now the setup/shutdown activities and related flags are guarded by a
mutex, so we should have strict ordering.

* runtime/transport/transport.c (_stp_transport_mutex): New.
  (_stp_handle_start): Grab the mutex, and make sure we're not exiting.
  (_stp_cleanup_and_exit): Grab the mutex.
  (_stp_lock_inode, _stp_unlock_inode): Use kernel version for checking
  inode locking type.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We had a race where the probe setup could be called during/after the
probe shutdown in abnormal circumstances, which leads to kernel
callbacks still registered after module unload.  (BOOM)

Now the setup/shutdown activities and related flags are guarded by a
mutex, so we should have strict ordering.

* runtime/transport/transport.c (_stp_transport_mutex): New.
  (_stp_handle_start): Grab the mutex, and make sure we're not exiting.
  (_stp_cleanup_and_exit): Grab the mutex.
  (_stp_lock_inode, _stp_unlock_inode): Use kernel version for checking
  inode locking type.
</pre>
</div>
</content>
</entry>
<entry>
<title>runtime shutdown errors: simplify, improve error specificity</title>
<updated>2009-10-13T21:33:29+00:00</updated>
<author>
<name>Frank Ch. Eigler</name>
<email>fche@elastic.org</email>
</author>
<published>2009-10-13T21:33:29+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=c4ca2da6ca875c0142a4e7ffd95e0aa0c573590b'/>
<id>c4ca2da6ca875c0142a4e7ffd95e0aa0c573590b</id>
<content type='text'>
* transport/control.c (*_cmd): Return -Ecodes rather than "-1" from
  file_operations callbacks.
* staprun/ctl.c (init_ctl_channel): Return distinct error codes.
* staprun/staprun.c (remove_module): Skip connection attempt to .ctl
  file; just do delete_module() with O_NONBLOCK.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* transport/control.c (*_cmd): Return -Ecodes rather than "-1" from
  file_operations callbacks.
* staprun/ctl.c (init_ctl_channel): Return distinct error codes.
* staprun/staprun.c (remove_module): Skip connection attempt to .ctl
  file; just do delete_module() with O_NONBLOCK.
</pre>
</div>
</content>
</entry>
<entry>
<title>No longer need buffer iterators.</title>
<updated>2009-09-25T20:12:10+00:00</updated>
<author>
<name>David Smith</name>
<email>dsmith@redhat.com</email>
</author>
<published>2009-09-25T20:12:10+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=d4297c65e61849beb0624db72b7f684c298dd74a'/>
<id>d4297c65e61849beb0624db72b7f684c298dd74a</id>
<content type='text'>
* runtime/tranport/ring_buffer.c: Removed 'USE_ITERS' definition.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* runtime/tranport/ring_buffer.c: Removed 'USE_ITERS' definition.
</pre>
</div>
</content>
</entry>
<entry>
<title>Forward-ported staplog.c crash support (PR 10644).</title>
<updated>2009-09-23T16:11:07+00:00</updated>
<author>
<name>David Smith</name>
<email>dsmith@redhat.com</email>
</author>
<published>2009-09-23T16:11:07+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=430411789c9c9540a8260bedc76d86fdf6053713'/>
<id>430411789c9c9540a8260bedc76d86fdf6053713</id>
<content type='text'>
* staplog.c (get_rchan): Separated original relayfs code and current
  relayfs code.
  (get_rchan_buf): Ditto.
  (output_cpu_logs): Ditto.
  (get_rchan_addr): Handles original relayfs code detection.
  (setup_global_data): Looks for '_stp_relay_data' structure instead of
  '_stp_utt' structure.
  (open_output_file): Improved error message.
* runtime/transport/relay_v2.c: Rearranged struct _stp_relay_data_type to
  make things a bit easier for staplog.c.
* runtime/transport/relayfs.c: Ditto
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* staplog.c (get_rchan): Separated original relayfs code and current
  relayfs code.
  (get_rchan_buf): Ditto.
  (output_cpu_logs): Ditto.
  (get_rchan_addr): Handles original relayfs code detection.
  (setup_global_data): Looks for '_stp_relay_data' structure instead of
  '_stp_utt' structure.
  (open_output_file): Improved error message.
* runtime/transport/relay_v2.c: Rearranged struct _stp_relay_data_type to
  make things a bit easier for staplog.c.
* runtime/transport/relayfs.c: Ditto
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow ring_buffer to be used if STP_USE_RING_BUFFER is defined.</title>
<updated>2009-09-10T17:36:32+00:00</updated>
<author>
<name>David Smith</name>
<email>dsmith@redhat.com</email>
</author>
<published>2009-09-10T17:36:32+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=1b79720abf041b35f8289ed74b77a504f3f5cb40'/>
<id>1b79720abf041b35f8289ed74b77a504f3f5cb40</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PR10602 prime: runtime: shrink stack frame of _stp_do_relocation().</title>
<updated>2009-09-09T17:46:42+00:00</updated>
<author>
<name>Frank Ch. Eigler</name>
<email>fche@elastic.org</email>
</author>
<published>2009-09-09T17:46:42+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=9084f0736c3c53e4210409fb000530fc12c03825'/>
<id>9084f0736c3c53e4210409fb000530fc12c03825</id>
<content type='text'>
* transport/symbols.c (_stp_do_relocation): Make msg static.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* transport/symbols.c (_stp_do_relocation): Make msg static.
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed unneeded casts.</title>
<updated>2009-09-09T16:04:05+00:00</updated>
<author>
<name>David Smith</name>
<email>dsmith@redhat.com</email>
</author>
<published>2009-09-09T16:04:05+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/steved/public_git/systemtap-steved/commit/?id=c2eefc9f0d8a601e4732d80ca5660b5748991595'/>
<id>c2eefc9f0d8a601e4732d80ca5660b5748991595</id>
<content type='text'>
* runtime/transport/ring_buffer.c (_stp_event_to_user): Removed unneeded
  cast.
  (_stp_data_write_reserve): Ditto.
  (_stp_data_write_commit): Ditto.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* runtime/transport/ring_buffer.c (_stp_event_to_user): Removed unneeded
  cast.
  (_stp_data_write_reserve): Ditto.
  (_stp_data_write_commit): Ditto.
</pre>
</div>
</content>
</entry>
</feed>
