diff options
author | Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | 2007-02-10 04:45:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-11 13:51:28 -0500 |
commit | 23c887522e912ca494950796a95df8dd210f4b01 (patch) | |
tree | da8c244fd7fd7eef7a413ad8df2f19b32d4a7c52 /Documentation/filesystems | |
parent | 138c5d258cf06c278f5d7fe0a806e50fe413a08f (diff) |
[PATCH] Relay: add CPU hotplug support
Mathieu originally needed to add this for tracing Xen, but it's something
that's needed for any application that can be tracing while cpus are added.
unplug isn't supported by this patch. The thought was that at minumum a new
buffer needs to be added when a cpu comes up, but it wasn't worth the effort
to remove buffers on cpu down since they'd be freed soon anyway when the
channel was closed.
[zanussi@us.ibm.com: avoid lock_cpu_hotplug deadlock]
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Tom Zanussi <zanussi@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/relay.txt | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Documentation/filesystems/relay.txt b/Documentation/filesystems/relay.txt index d6788dae0349..7fbb6ffe5769 100644 --- a/Documentation/filesystems/relay.txt +++ b/Documentation/filesystems/relay.txt | |||
@@ -157,7 +157,7 @@ TBD(curr. line MT:/API/) | |||
157 | channel management functions: | 157 | channel management functions: |
158 | 158 | ||
159 | relay_open(base_filename, parent, subbuf_size, n_subbufs, | 159 | relay_open(base_filename, parent, subbuf_size, n_subbufs, |
160 | callbacks) | 160 | callbacks, private_data) |
161 | relay_close(chan) | 161 | relay_close(chan) |
162 | relay_flush(chan) | 162 | relay_flush(chan) |
163 | relay_reset(chan) | 163 | relay_reset(chan) |
@@ -251,7 +251,7 @@ static struct rchan_callbacks relay_callbacks = | |||
251 | 251 | ||
252 | And an example relay_open() invocation using them: | 252 | And an example relay_open() invocation using them: |
253 | 253 | ||
254 | chan = relay_open("cpu", NULL, SUBBUF_SIZE, N_SUBBUFS, &relay_callbacks); | 254 | chan = relay_open("cpu", NULL, SUBBUF_SIZE, N_SUBBUFS, &relay_callbacks, NULL); |
255 | 255 | ||
256 | If the create_buf_file() callback fails, or isn't defined, channel | 256 | If the create_buf_file() callback fails, or isn't defined, channel |
257 | creation and thus relay_open() will fail. | 257 | creation and thus relay_open() will fail. |
@@ -289,6 +289,11 @@ they use the proper locking for such a buffer, either by wrapping | |||
289 | writes in a spinlock, or by copying a write function from relay.h and | 289 | writes in a spinlock, or by copying a write function from relay.h and |
290 | creating a local version that internally does the proper locking. | 290 | creating a local version that internally does the proper locking. |
291 | 291 | ||
292 | The private_data passed into relay_open() allows clients to associate | ||
293 | user-defined data with a channel, and is immediately available | ||
294 | (including in create_buf_file()) via chan->private_data or | ||
295 | buf->chan->private_data. | ||
296 | |||
292 | Channel 'modes' | 297 | Channel 'modes' |
293 | --------------- | 298 | --------------- |
294 | 299 | ||