All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: Philippe Gerum <rpm@xenomai.org>
Cc: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] [PATCH 00/23] [git pull] procfs overflow fixes and seq_file conversions
Date: Fri, 30 Apr 2010 08:43:03 +0200	[thread overview]
Message-ID: <4BDA7BF7.9090507@domain.hid> (raw)
In-Reply-To: <1272577158.24705.16.camel@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 3891 bytes --]

Philippe Gerum wrote:
> On Mon, 2010-04-26 at 19:09 +0200, Gilles Chanteperdrix wrote: 
>> Jan Kiszka wrote:
>>> Jan Kiszka wrote:
>>>> The following changes since commit 113ea4d56e8b215cb56ae7673013163ea5a5987d:
>>>>   Gilles Chanteperdrix (1):
>>>>         switchtest: increase stack sizes
>>>>
>>>> are available in the git repository at:
>>>>
>>>>   git://git.xenomai.org/xenomai-jki.git queues/proc
>>>>
>>>> This series fixes some of the potential (but when they happen fatal)
>>>> overflows in our procfs outputs. Specifically, it fixes all issues in
>>>> RTDM (one of them hit us in the field) and the recently reported
>>>> overflow in /proc/xenomai/heap. Moreover, Wolfgang started the lengthy
>>>> conversion of the registry by introducing a new seq_file-based interface
>>>> and already moving the native skin over.
>>>>
>>>> The future belongs to seq_file, so some of the patches are strictly
>>>> spoken not yet required. But we better start this effort before the last
>>>> legacy interface user was converted and the old interface is suddenly
>>>> dropped from the kernel. This may not be that far away. A patch of mine
>>>> to improve error reporting of the old interface was rejected with
>>>> "->read_proc is going to be removed, so there is no point."
>>> Did you already have a chance to look into this series?
>> Not yet, that is a big series. With a high potential for kernel crashes,
>> memory leaks and other things like that. I am trying to find a way to
>> test it. Maybe we can try and run it with kmemcheck?
>>
> 
> Looking at this series, I eventually made my mind about the kind of
> support I'd wish in this area. It boils down to:
> 
> - getting rid of the PAGE_SIZE limitation on read as this series does,
> - reducing the impact on latency of large outputs,
> - hiding discrepancies between linux kernel
> releases, regarding the proper way to export kernel object states
> to userland (like the planned deprecation of read procs).
> - providing a common encapsulation to do that, which brings all the
> previous properties in a normalized way, and helps removing direct
> dependencies of other core code on PROC_FS
> - rebasing the registry support on top of this feature, so that skins
> are automatically feature-enabled when going through the registry to
> export stuff to userland (as they should).
> 
> To this end, I came up with the so-called "virtual file" (aka vfile)
> support for the nucleus, and have toyed with those ideas here: 
> git://git.xenomai.org/xenomai-rpm.git	queue/vfile
> 
> This is still early work in progress, not all the codebase was converted
> to use the vfiles (registry and native API were), and I tested the
> result only in a very limited manner; so this is not for inclusion into
> 2.5.x given the amount of code that touches anyway. But I will likely
> submit this for inclusion at some point into any upcoming 2.6.x, if
> vfiles turn out to fit the job.
> 

Looks good on first sight to simplify all our revision-based list walks
(and those that should better work like that). To make it a universal
abstraction for /proc/xenomai (or what ever it will be in the future), I
think just a bit more flexibility is required.

Specifically, we a way to modify the locking and data acquisition
strategy. We have nodes that do not require any locking at all but still
want to use the seq_file pattern. And we have some nodes that use
different locks, including Linux semaphores/mutexes. I think if you
allow to specify the lock to be used and its type (xnlock or Linux mutex
- BTW, a good chance to wrap away semaphores for legacy kernels), all
required use cases should be covered:
 - xnlock -> revision-based ahead-of-print data acquisition
 - Linux mutex -> simply hold the lock while printing
 - NULL -> provide lockless seq_file printing

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

  reply	other threads:[~2010-04-30  6:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-18 14:15 [Xenomai-core] [PATCH 00/23] [git pull] procfs overflow fixes and seq_file conversions Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 01/23] hal: Mark file ops of rthal_add_proc_seq const Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 02/23] RTDM: Plug race between proc_read_dev_info and device deregistration Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 03/23] RTDM: Properly clean up on proc setup errors Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 04/23] RTDM: Convert fildes proc to single-seq Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 05/23] RTDM: Convert device information proc entry " Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 06/23] RTDM: Convert open_fildes reading to seq_file Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 07/23] RTDM: Extend device name space in open_fildes proc output Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 08/23] RTDM: Convert device listings to seq_file Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 09/23] nucleus: Convert heap proc entry " Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 10/23] nucleus: Convert irq proc entry to seqfile Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 11/23] nucleus: Convert faults proc entry to seq_file mechanism Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 12/23] nucleus: Convert apc proc file to the " Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 13/23] nucleus: Add infrastructure for supporting the seq_file mechanism in registry objects Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 14/23] native: Convert the alarm registry proc entry to seq_single Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 15/23] native: Convert buffer registry proc entry to the seq_file mechanism Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 16/23] native: Convert cond " Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 17/23] native: convert the proc entry for the semaphore registry to seq_file Jan Kiszka
2010-04-18 14:15 ` [Xenomai-core] [PATCH 18/23] native: Convert intr registry proc files " Jan Kiszka
2010-04-18 14:16 ` [Xenomai-core] [PATCH 19/23] native: Convert event registry proc file " Jan Kiszka
2010-04-18 14:16 ` [Xenomai-core] [PATCH 20/23] native: Convert heap " Jan Kiszka
2010-04-18 14:16 ` [Xenomai-core] [PATCH 21/23] native: Convert mutex registry proc entry " Jan Kiszka
2010-04-18 14:16 ` [Xenomai-core] [PATCH 22/23] native: Convert queue " Jan Kiszka
2010-04-18 14:16 ` [Xenomai-core] [PATCH 23/23] nucleus: Convert timebases " Jan Kiszka
2010-04-26  7:47 ` [Xenomai-core] [PATCH 00/23] [git pull] procfs overflow fixes and seq_file conversions Jan Kiszka
2010-04-26 17:09   ` Gilles Chanteperdrix
2010-04-26 18:00     ` Jan Kiszka
2010-04-29 21:39     ` Philippe Gerum
2010-04-30  6:43       ` Jan Kiszka [this message]
2010-05-01 16:02         ` Philippe Gerum

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=4BDA7BF7.9090507@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=rpm@xenomai.org \
    --cc=xenomai@xenomai.org \
    /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.