From: Mathieu Desnoyers <compudj@krystal.dyndns.org>
To: Paul Mundt <lethal@linux-sh.org>,
Tom Zanussi <zanussi@us.ibm.com>, Greg KH <greg@kroah.com>,
linux-kernel@vger.kernel.org, axboe@suse.de, karim@opersys.com
Subject: Re: [PATCH, RFC] sysfs: relay channel buffers as sysfs attributes
Date: Mon, 20 Feb 2006 12:37:32 -0500 [thread overview]
Message-ID: <20060220173732.GA7238@Krystal> (raw)
In-Reply-To: <20060220171531.GA9381@linux-sh.org>
* Paul Mundt (lethal@linux-sh.org) wrote:
> On Mon, Feb 20, 2006 at 08:05:56AM -0500, Mathieu Desnoyers wrote:
> > LTTng currently uses some particular features from relayfs. I would like to make
> > sure that they will still be available.
> >
> > * LTTng uses the "void *private" private data pointer extensively. It's very
> > useful to pass a kernel client specific data structure to the client
> > callbacks.
> > * LTTng does have its own ltt_poll and ltt_ioctl that are all what is needed to
> > control the interaction with the file (along with the relayfs mmap/unmap).
> >
> > In this scenario, the sysfs relay attribute creation would look like :
> >
> > - create an empty attr
> > - fill some of attr members
> > - sysfs_create_relay_file(kobj, attr);
> > (it will overwrite some attr members : kobj, rchan, rchan_buf)
> > * set specific LTTng file operations on the inode
> > * set the "private" field of the rchan structure.
> >
> ->rchan is set after sysfs_create_relay_file(), you can set
> ->rchan->private after it's created. All that happens in
> sysfs_create_relay_file() as far as the relay interface is concerned is
> wrapping relay_open(), where ->rchan is first allocated.
>
I though about it, but it would create a race where the channel could be
accessed from user space before the private data pointer is set or the specific
inode operations are set.
> As far as setting specific file operations for the inode, that's
> definitely not in line with the sysfs way of doing things. If you need
> to do this, go with debugfs, or stick with the relayfs patch on top of
> CONFIG_RELAY as this stuff is clearly not going to be merged into
> mainline as Cristoph also pointed out.
>
Those inode operations are generic enough to eventually be integrated to
relayfs. The poll is enhanced to support multiple readers. For the ioctl, it's
just a matter of getting/pulling buffer segments, reading the number of
subbuffers and their size, which I think really fits the i/o control purpose for
such a file.
> debugfs gives you roughly all of the same functionality, and the kernel
> side implementation for what LTTng will need should be quite trivial. LTT
> is arguably a debugging thing anyways, so debugfs seems like a more
> appropriate match than trying to beat sysfs into submission with this
> workload.
>
debugfs seems to offer really too much flexibility for what LTTng needs. It
doesn't really have to redefine "new" operations : the poll/ioctl used by LTTng
could in fact be integrated into RelayFS and simplify the file reading
operation.
Mathieu
OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
next prev parent reply other threads:[~2006-02-20 17:37 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-19 17:17 [PATCH, RFC] sysfs: relay channel buffers as sysfs attributes Paul Mundt
2006-02-19 17:21 ` Christoph Hellwig
2006-02-19 17:56 ` Greg KH
2006-02-19 18:52 ` Paul Mundt
2006-02-20 5:29 ` Tom Zanussi
2006-02-20 9:20 ` Jens Axboe
2006-02-20 11:17 ` Paul Mundt
2006-02-20 13:05 ` Mathieu Desnoyers
2006-02-20 14:17 ` Christoph Hellwig
2006-02-20 17:15 ` Paul Mundt
2006-02-20 17:37 ` Mathieu Desnoyers [this message]
2006-02-20 22:27 ` Greg KH
2006-02-21 15:21 ` Paul Mundt
2006-02-21 16:48 ` Mathieu Desnoyers
2006-02-21 17:43 ` Greg KH
2006-02-22 21:27 ` Karim Yaghmour
2006-02-22 21:32 ` Greg KH
2006-02-20 22:24 ` Greg KH
2006-02-21 15:10 ` [PATCH] sysfs: Add __ATTR_RELAY() helper for relay attributes Paul Mundt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060220173732.GA7238@Krystal \
--to=compudj@krystal.dyndns.org \
--cc=axboe@suse.de \
--cc=greg@kroah.com \
--cc=karim@opersys.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=zanussi@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.