public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c
@ 2008-05-12 19:03 fche at redhat dot com
  2008-05-12 19:39 ` [Bug runtime/6504] " mhiramat at redhat dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: fche at redhat dot com @ 2008-05-12 19:03 UTC (permalink / raw)
  To: systemtap

Following from bug #6487, we need to reduce the regions of the kernel
that are dynamically reachable from probe handlers.  For this particular
case, _stp_print_flush should avoid calling into the relay subsystem
(on modern kernels) and instead use some other mechanism to flag
available data.

I'm told lttng uses more conservative code (setting a
flag; having a separate worker/timer thread manage data copying, or
something like that).  Considering the many copies we already suffer
in sending data to userspace, this sort of thing would not be a big
hit.

-- 
           Summary: change _stp_print_flush to avoid calling into
                    kernel/relay.c
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: runtime
        AssignedTo: systemtap at sources dot redhat dot com
        ReportedBy: fche at redhat dot com


http://sourceware.org/bugzilla/show_bug.cgi?id=6504

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

* [Bug runtime/6504] change _stp_print_flush to avoid calling into kernel/relay.c
  2008-05-12 19:03 [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c fche at redhat dot com
@ 2008-05-12 19:39 ` mhiramat at redhat dot com
  2008-05-15 11:01 ` mhiramat at redhat dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: mhiramat at redhat dot com @ 2008-05-12 19:39 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From mhiramat at redhat dot com  2008-05-09 21:03 -------
(In reply to comment #0)
> I'm told lttng uses more conservative code (setting a
> flag; having a separate worker/timer thread manage data copying, or
> something like that).

AFAIK, it has a separate interval timer which just wakes reader process
up, not copying data.

I think we can do similar thing by replacing relay_reserve/relay_flush with
original utt functions which do not call __mod_timer nor relay_switch_subbuf.


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=6504

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

* [Bug runtime/6504] change _stp_print_flush to avoid calling into kernel/relay.c
  2008-05-12 19:03 [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c fche at redhat dot com
  2008-05-12 19:39 ` [Bug runtime/6504] " mhiramat at redhat dot com
@ 2008-05-15 11:01 ` mhiramat at redhat dot com
  2008-05-16 18:52 ` mhiramat at redhat dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: mhiramat at redhat dot com @ 2008-05-15 11:01 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From mhiramat at redhat dot com  2008-05-14 20:43 -------
Created an attachment (id=2738)
 --> (http://sourceware.org/bugzilla/attachment.cgi?id=2738&action=view)
Add utt_switch_subbuf and an interval timer.

Hi,

This patch adds utt_switch_subbuf() (almost same as relay_switch_subbuf()) and
an interval timer to avoid calling __mod_timer from probe handler.

(Actually, this patch doesn't care about older relayfs than 2.6.15 kernel.)


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=6504

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

* [Bug runtime/6504] change _stp_print_flush to avoid calling into kernel/relay.c
  2008-05-12 19:03 [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c fche at redhat dot com
  2008-05-12 19:39 ` [Bug runtime/6504] " mhiramat at redhat dot com
  2008-05-15 11:01 ` mhiramat at redhat dot com
@ 2008-05-16 18:52 ` mhiramat at redhat dot com
  2008-05-19 22:51 ` mhiramat at redhat dot com
  2008-09-17 19:22 ` fche at redhat dot com
  4 siblings, 0 replies; 6+ messages in thread
From: mhiramat at redhat dot com @ 2008-05-16 18:52 UTC (permalink / raw)
  To: systemtap



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |6487
              nThis|                            |


http://sourceware.org/bugzilla/show_bug.cgi?id=6504

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

* [Bug runtime/6504] change _stp_print_flush to avoid calling into kernel/relay.c
  2008-05-12 19:03 [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c fche at redhat dot com
                   ` (2 preceding siblings ...)
  2008-05-16 18:52 ` mhiramat at redhat dot com
@ 2008-05-19 22:51 ` mhiramat at redhat dot com
  2008-09-17 19:22 ` fche at redhat dot com
  4 siblings, 0 replies; 6+ messages in thread
From: mhiramat at redhat dot com @ 2008-05-19 22:51 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From mhiramat at redhat dot com  2008-05-19 20:28 -------
(In reply to comment #2)
> This patch adds utt_switch_subbuf() (almost same as relay_switch_subbuf()) and
> an interval timer to avoid calling __mod_timer from probe handler.

Actually, I tried to fix this bug by just replacing timer with workqueue. However,
it was not safe because queue_delayed_work() used add_timer(), and queue_work()
used wake_up(). So it will cause another deadlock. That is why I decided to use 
an interval timer.


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=6504

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

* [Bug runtime/6504] change _stp_print_flush to avoid calling into kernel/relay.c
  2008-05-12 19:03 [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c fche at redhat dot com
                   ` (3 preceding siblings ...)
  2008-05-19 22:51 ` mhiramat at redhat dot com
@ 2008-09-17 19:22 ` fche at redhat dot com
  4 siblings, 0 replies; 6+ messages in thread
From: fche at redhat dot com @ 2008-09-17 19:22 UTC (permalink / raw)
  To: systemtap


------- Additional Comments From fche at redhat dot com  2008-09-17 19:20 -------
commit 7ef27e8

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


http://sourceware.org/bugzilla/show_bug.cgi?id=6504

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

end of thread, other threads:[~2008-09-17 19:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-12 19:03 [Bug runtime/6504] New: change _stp_print_flush to avoid calling into kernel/relay.c fche at redhat dot com
2008-05-12 19:39 ` [Bug runtime/6504] " mhiramat at redhat dot com
2008-05-15 11:01 ` mhiramat at redhat dot com
2008-05-16 18:52 ` mhiramat at redhat dot com
2008-05-19 22:51 ` mhiramat at redhat dot com
2008-09-17 19:22 ` fche at redhat dot com

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).