public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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 

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox