From: Maxim Levitsky <maximlevitsky@gmail.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Andy Walls <awalls@radix.net>,
Mauro Carvalho Chehab <mchehab@redhat.com>,
Ray Lee <ray-lk@madrabbit.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Krzysztof Halasa <khc@pm.waw.pl>,
Christoph Bartelmus <lirc@bartelmus.de>,
dmitry.torokhov@gmail.com, j@jannau.net, jarod@redhat.com,
jarod@wilsonet.com, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
stefanr@s5r6.in-berlin.de, superm1@ubuntu.com
Subject: Re: [RFC] What are the goals for the architecture of an in-kernel IR system?
Date: Mon, 30 Nov 2009 17:04:21 +0200 [thread overview]
Message-ID: <1259593461.13049.49.camel@maxim-laptop> (raw)
In-Reply-To: <9e4733910911300601x513e8ac5n86b9b745536ca955@mail.gmail.com>
On Mon, 2009-11-30 at 09:01 -0500, Jon Smirl wrote:
> On Mon, Nov 30, 2009 at 8:43 AM, Maxim Levitsky <maximlevitsky@gmail.com> wrote:
> > On Mon, 2009-11-30 at 07:57 -0500, Andy Walls wrote:
> >> On Mon, 2009-11-30 at 09:56 -0200, Mauro Carvalho Chehab wrote:
> >> > Andy Walls wrote:
> >> > > On Sun, 2009-11-29 at 09:49 -0800, Ray Lee wrote:
> >> > >> On Sun, Nov 29, 2009 at 9:28 AM, Maxim Levitsky <maximlevitsky@gmail.com> wrote:
> >> > >>> This has zero advantages besides good developer feeling that "My system
> >> > >>> has one less daemon..."
> >> > >> Surely it's clear that having an unnecessary daemon is introducing
> >> > >> another point of failure?
> >> > >
> >> > > A failure in a userspace IR daemon is worst case loss of IR
> >> > > functionality.
> >> > >
> >> > > A failure in kernel space can oops or panic the machine.
> >> >
> >> > If IR is the only interface between the user and the system (like in a TV
> >> > or a Set Top Box), both will give you the same practical result: the system
> >> > will be broken, if you got a crash at the IR driver.
> >>
> >> Yes, true. I had forgotten about the embedded space.
> >>
> >> Nonetheless I'd still rather debug a problem with a dead process in
> >> userspace than an oops or panic (not that an end user cares) and avoid
> >> the risk of filesystem corruption.
> >>
> >> > Userspace is much more flexible.
> >> >
> >> > Why? The flexibility about the same on both kernelspace and userspace,
> >> > except for the boot time.
> >>
> >> I suppose my best answer to that is question back to you: Why does udev
> >> run in userspace versus a kernel thread?
> >>
> >>
> >> My personal thoughts on why user space is more flexible:
> >>
> >> 1. You have all of *NIX available to you to use as tools to achieve your
> >> requirements.
> >>
> >> 2. You are not constrained to use C.
> >>
> >> 3. You can link in libraries with functions that are not available in
> >> the kernel. (udev has libudev IIRC to handle complexities)
> >>
> >> 4. Reading a configuration file or other file from the filesystem is
> >> trivial - file access from usespace is easy.
> >>
> >> 5. You don't have to be concerned about the running context (am I
> >> allowed to sleep here or not?).
> >
> >
> > 6. You can modify userspace driver easily to cope with all weird setups.
> > Like you know that there are remotes that send whole packet of data that
> > consist of many numbers that are also displayed on the LCD of the
> > remote.
> > Otherwise you will have to go through same fight for every minor thing
> > you like to add to kernel...
> >
> >
> > 7. You don't have an ABI constraints, your userspace program can read a
> > configuration file in any format you wish.
> > I for example was thinking about putting all lirc config files into an
> > sqllite database, and pulling them out when specific remote is detected.
>
> Linux is not a microkernel it is a monolithic kernel.
> http://en.wikipedia.org/wiki/Microkernel
The above is trolling.
Maybe it will come as a surprise to you, but I am quite big supporter of
in-kernel code.
For example I don't quite like that alsa doesn't do mixing and
re-sampling in kernel.
These days pulseaudio works quite well, but it still sucks in some sense
sometimes.
I know about dmix/dsnoop, etc, these are nice, but still I would be
happy if kernel did that critical for both performance and latency thing
in kernel.
Some time ago an idea to move kernel VT support in userspace surfaced,
and I was against it too.
However, following established concept in philosophy, extremes are
equally bad.
Both pushing everything out of kernel, and shoving everything in is
equally bad.
So I am not blindly saying that, 'Everything belongs to kernel!'
or 'Lets put everything out, its more stable that way!, Moore law will
take care of performance...'
Instead I consider the pros and cons of both solutions, picking the best
one.
In that particular case I was even happy to see your kernel patches at
first glance, but then, after deep review I found that in-kernel
approach will create only problems, won't eliminate userspace decoding,
and solve only one problem, that is give good feeling about 'one less
daemon in system'.
> Once things get into the kernel they become far harder to change.
> Stop for a minute and think about designing the best IR system for
> Linux and forget about making a cross platform solution. IR is an
> input device, it should be integrated into the Linux input subsystem.
> You may not like the designs I have proposed, but running IR in user
> space and injecting a keystroke at the end of the process is not
> integrating it into the input subsystem.
Yes it is, like it or not.
Best regards,
Maxim Levitsky
>
>
> >
> >
> >>
> >>
> >>
> >>
> >>
> >>
> >> > A kernelspace input device driver can start working since boot time.
> >> > On the other hand, an userspace device driver will be available only
> >> > after mounting the filesystems and starting the deamons
> >> > (e. g. after running inittab).
> >> >
> >> > So, you cannot catch a key that would be affecting the boot
> >> > (for example to ask the kernel to run a different runlevel or entering
> >> > on some administrative mode).
> >>
> >> Right. That's another requirement that makes sense, if we're talking
> >> about systems that don't have any other keyboard handy to the user.
> >>
> >> So are we optimizing for the embedded/STB and HTPC with no keyboard use
> >> case, or the desktop or HTPC with a keyboard for maintencance?
> >>
> >>
> >> Regards,
> >> Andy
> >>
> >>
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> >
> >
>
>
>
next prev parent reply other threads:[~2009-11-30 15:04 UTC|newest]
Thread overview: 254+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-27 15:57 [RFC] What are the goals for the architecture of an in-kernel IR system? Jon Smirl
2009-11-27 16:57 ` Andy Walls
2009-11-27 17:29 ` Christoph Bartelmus
2009-11-27 17:49 ` Jon Smirl
2009-11-27 19:03 ` Ferenc Wagner
2009-11-27 19:21 ` Jon Smirl
2009-11-28 1:34 ` Dmitry Torokhov
2009-11-29 12:01 ` Christoph Bartelmus
2009-11-30 10:41 ` Mauro Carvalho Chehab
2009-11-30 19:49 ` Krzysztof Halasa
2009-11-30 21:35 ` Jon Smirl
2009-12-01 7:45 ` Christoph Bartelmus
2009-12-01 11:38 ` Andy Walls
2009-12-01 14:10 ` Maxim Levitsky
2009-12-03 17:31 ` Krzysztof Halasa
2009-11-28 9:04 ` Simon Kenyon
2009-11-28 11:21 ` Mauro Carvalho Chehab
2009-11-29 11:50 ` Christoph Bartelmus
2009-11-30 12:34 ` Mauro Carvalho Chehab
2009-12-01 9:52 ` Gerd Hoffmann
2009-12-01 13:11 ` Mauro Carvalho Chehab
2009-12-01 14:32 ` Jarod Wilson
2009-12-01 10:20 ` Gerd Hoffmann
2009-12-01 14:14 ` Mauro Carvalho Chehab
2009-12-01 15:28 ` Gerd Hoffmann
2009-12-03 4:29 ` Jarod Wilson
2009-12-03 12:09 ` Gerd Hoffmann
2009-12-03 17:55 ` Dmitry Torokhov
2009-12-03 18:33 ` Mauro Carvalho Chehab
2009-12-04 10:06 ` Dmitry Torokhov
2009-12-04 14:12 ` Mauro Carvalho Chehab
2009-12-04 15:42 ` Jon Smirl
2009-12-06 7:09 ` Dmitry Torokhov
2009-12-06 11:03 ` Mauro Carvalho Chehab
2009-12-06 20:19 ` Krzysztof Halasa
2009-12-08 0:00 ` Mauro Carvalho Chehab
2009-12-08 14:06 ` Krzysztof Halasa
2009-12-07 7:48 ` Dmitry Torokhov
2009-12-07 15:34 ` Mauro Carvalho Chehab
2009-12-07 18:34 ` Dmitry Torokhov
2009-12-07 23:01 ` Mauro Carvalho Chehab
2009-12-06 7:14 ` Dmitry Torokhov
2009-12-06 11:23 ` Mauro Carvalho Chehab
2009-12-03 18:56 ` Jon Smirl
2009-12-03 21:10 ` Mauro Carvalho Chehab
2009-12-03 21:51 ` Christoph Bartelmus
2009-12-03 22:12 ` Dmitry Torokhov
2009-12-04 7:37 ` Christoph Bartelmus
2009-12-04 14:33 ` Mauro Carvalho Chehab
2009-12-04 21:46 ` Christoph Bartelmus
2009-12-04 22:07 ` Dmitry Torokhov
2009-12-04 23:01 ` Christoph Bartelmus
2009-12-04 23:15 ` Dmitry Torokhov
2009-12-06 11:58 ` Christoph Bartelmus
2009-12-07 7:51 ` Dmitry Torokhov
2009-12-08 22:27 ` Christoph Bartelmus
2009-12-05 0:28 ` Jon Smirl
2009-12-05 1:48 ` Andy Walls
2009-12-05 2:10 ` Andy Walls
2009-12-05 3:45 ` Jon Smirl
2009-12-06 2:30 ` Andy Walls
2009-12-06 17:26 ` Krzysztof Halasa
2009-12-12 22:52 ` david
2009-12-06 3:36 ` hermann pitton
2009-12-06 6:55 ` Dmitry Torokhov
2009-12-06 11:46 ` Mauro Carvalho Chehab
2009-12-06 17:48 ` Krzysztof Halasa
2009-12-06 17:52 ` Jon Smirl
2009-12-06 20:34 ` Krzysztof Halasa
2009-12-06 21:23 ` Jon Smirl
2009-12-07 23:44 ` Mauro Carvalho Chehab
2009-12-08 0:28 ` Jon Smirl
2009-12-08 11:17 ` Mauro Carvalho Chehab
2009-12-08 13:34 ` Jon Smirl
2009-12-08 14:56 ` Mauro Carvalho Chehab
2009-12-08 22:25 ` Christoph Bartelmus
2009-12-08 17:04 ` Dmitry Torokhov
2009-12-08 13:54 ` Krzysztof Halasa
2009-12-08 4:23 ` Dmitry Torokhov
2009-12-08 11:58 ` Mauro Carvalho Chehab
2009-12-08 14:01 ` Krzysztof Halasa
2009-12-08 14:13 ` Mauro Carvalho Chehab
2009-12-08 15:26 ` Krzysztof Halasa
2009-12-08 15:41 ` Mauro Carvalho Chehab
2009-12-08 17:12 ` Dmitry Torokhov
2009-12-08 13:57 ` Krzysztof Halasa
2009-12-08 17:25 ` Dmitry Torokhov
2009-12-08 13:52 ` Krzysztof Halasa
2009-12-08 14:07 ` Mauro Carvalho Chehab
2009-12-08 14:51 ` Jon Smirl
2009-12-08 15:29 ` Krzysztof Halasa
2009-12-08 15:49 ` Mauro Carvalho Chehab
2009-12-08 16:26 ` Jon Smirl
2009-12-08 4:10 ` Andy Walls
2009-12-08 22:30 ` Christoph Bartelmus
2009-12-09 2:21 ` Andy Walls
2009-12-07 18:41 ` Dmitry Torokhov
2009-12-07 20:08 ` Krzysztof Halasa
2009-12-07 21:38 ` Dmitry Torokhov
2009-12-08 15:24 ` Krzysztof Halasa
2009-12-08 0:44 ` Jon Smirl
2009-12-08 11:23 ` Mauro Carvalho Chehab
2009-12-13 12:14 ` Mauro Carvalho Chehab
2009-12-15 11:50 ` Pavel Machek
2009-12-15 13:33 ` Mauro Carvalho Chehab
2009-12-15 13:43 ` Jon Smirl
2009-12-15 14:19 ` Mauro Carvalho Chehab
2009-12-15 19:58 ` Pavel Machek
2009-12-15 20:14 ` Jon Smirl
2009-12-15 20:19 ` Pavel Machek
2009-12-15 20:29 ` Jon Smirl
2009-12-15 20:33 ` Pavel Machek
2009-12-15 20:45 ` Jon Smirl
2009-12-15 21:05 ` Pavel Machek
2009-12-15 21:38 ` Jon Smirl
2010-03-25 14:42 ` Mauro Carvalho Chehab
2010-03-25 18:32 ` Pavel Machek
2010-03-25 19:00 ` Mauro Carvalho Chehab
2010-03-26 11:04 ` David Härdeman
2010-03-26 11:27 ` David Härdeman
2010-03-26 14:40 ` Mauro Carvalho Chehab
2010-03-26 16:01 ` Dmitry Torokhov
2010-03-26 17:22 ` Mauro Carvalho Chehab
2010-03-26 19:07 ` David Härdeman
2010-03-26 22:37 ` Jon Smirl
2010-03-27 8:27 ` David Härdeman
2010-03-28 23:22 ` Mauro Carvalho Chehab
2010-03-29 0:51 ` Mauro Carvalho Chehab
2010-03-30 11:01 ` David Härdeman
2010-03-31 6:01 ` Mauro Carvalho Chehab
2010-03-30 11:09 ` David Härdeman
2010-03-30 12:43 ` Mauro Carvalho Chehab
2010-03-26 12:23 ` David Härdeman
2010-03-26 15:17 ` Mauro Carvalho Chehab
2010-03-26 19:21 ` David Härdeman
2010-03-27 5:56 ` Pavel Machek
2010-04-09 7:21 ` James Hogan
2010-04-09 10:50 ` Andy Walls
2010-04-09 12:58 ` Jarod Wilson
2010-04-09 13:02 ` Jon Smirl
2010-04-09 13:01 ` Mauro Carvalho Chehab
2010-04-09 21:42 ` James Hogan
2010-04-09 21:55 ` Devin Heitmueller
2010-04-09 22:14 ` Andy Walls
2010-04-09 23:32 ` Mauro Carvalho Chehab
2010-04-10 0:18 ` Jon Smirl
2010-04-10 1:01 ` Mauro Carvalho Chehab
2010-04-10 0:38 ` hermann pitton
2009-12-07 15:36 ` Mauro Carvalho Chehab
2009-12-06 11:59 ` Christoph Bartelmus
2009-12-15 11:47 ` Pavel Machek
2009-12-06 12:12 ` Christoph Bartelmus
2009-12-06 16:38 ` Jon Smirl
2009-12-06 20:22 ` Krzysztof Halasa
2009-12-07 23:50 ` Mauro Carvalho Chehab
2009-12-03 23:45 ` Andy Walls
2009-12-03 17:47 ` Krzysztof Halasa
2009-11-27 21:49 ` Stefan Richter
2009-11-28 1:08 ` Maxim Levitsky
2009-11-28 11:20 ` Krzysztof Halasa
2009-11-28 14:42 ` Maxim Levitsky
2009-11-28 15:25 ` Krzysztof Halasa
2009-11-28 15:35 ` Maxim Levitsky
2009-11-28 15:44 ` Krzysztof Halasa
2009-11-28 16:26 ` Maxim Levitsky
2009-11-28 16:44 ` Krzysztof Halasa
2009-11-28 16:47 ` Christoph Bartelmus
2009-11-28 17:06 ` Jon Smirl
2009-11-28 17:35 ` Krzysztof Halasa
2009-11-28 17:37 ` Jon Smirl
2009-11-28 17:40 ` Krzysztof Halasa
2009-11-28 23:26 ` Andy Walls
2009-11-29 4:58 ` Dmitry Torokhov
2009-11-29 20:27 ` Krzysztof Halasa
2009-11-29 20:44 ` Jon Smirl
2009-11-29 21:29 ` Dmitry Torokhov
2009-11-29 21:47 ` Jon Smirl
2009-11-29 22:48 ` Dmitry Torokhov
2009-11-29 21:31 ` Dmitry Torokhov
2009-11-30 4:50 ` Jarod Wilson
2009-11-30 0:48 ` Andy Walls
2009-12-01 10:46 ` Gerd Hoffmann
2009-12-01 11:49 ` Andy Walls
2009-12-01 14:02 ` Gerd Hoffmann
2009-12-01 14:18 ` Mauro Carvalho Chehab
2009-11-30 17:45 ` Lennart Sorensen
2009-11-29 4:32 ` Andy Walls
2009-11-29 4:50 ` Dmitry Torokhov
2009-11-29 12:40 ` Alan Cox
2009-11-29 17:28 ` Maxim Levitsky
2009-11-29 17:49 ` Ray Lee
2009-11-29 18:13 ` Alan Cox
2009-11-29 18:52 ` Ray Lee
2009-11-29 19:04 ` Alan Cox
2009-11-29 19:16 ` Jon Smirl
2009-11-29 19:29 ` Alan Cox
2009-11-29 19:49 ` Christoph Bartelmus
2009-11-30 0:05 ` Andy Walls
2009-11-29 23:35 ` Andy Walls
2009-11-30 2:15 ` Ray Lee
2009-11-30 9:58 ` Artur Skawina
2009-11-30 11:56 ` Mauro Carvalho Chehab
2009-11-30 12:57 ` Andy Walls
2009-11-30 13:23 ` Jon Smirl
2009-11-30 13:24 ` Mauro Carvalho Chehab
2009-11-30 16:14 ` kevin granade
2009-11-30 17:33 ` Mauro Carvalho Chehab
2009-11-30 18:02 ` Dmitry Torokhov
2009-11-30 18:27 ` Mauro Carvalho Chehab
2009-11-30 19:07 ` Dmitry Torokhov
2009-11-30 20:07 ` Krzysztof Halasa
2009-11-30 13:43 ` Maxim Levitsky
2009-11-30 14:01 ` Jon Smirl
2009-11-30 15:04 ` Maxim Levitsky [this message]
2009-11-30 16:19 ` Mauro Carvalho Chehab
2009-11-30 20:03 ` Krzysztof Halasa
2009-11-29 18:19 ` Jon Smirl
2009-11-29 19:00 ` Alan Cox
2009-11-30 9:57 ` Mauro Carvalho Chehab
2009-11-28 18:17 ` Stefan Richter
2009-11-28 18:58 ` Jon Smirl
2009-11-28 19:45 ` Stefan Richter
2009-11-28 20:08 ` Jon Smirl
2009-11-28 20:21 ` Krzysztof Halasa
2009-12-12 19:33 ` Pavel Machek
2009-11-28 20:29 ` Stefan Richter
2009-11-28 20:34 ` Stefan Richter
2009-11-28 20:46 ` Jon Smirl
2009-11-28 21:46 ` Stefan Richter
2009-11-28 22:10 ` Jon Smirl
2009-11-28 22:18 ` Jon Smirl
2009-11-29 4:59 ` Dmitry Torokhov
2009-11-29 16:01 ` Mauro Carvalho Chehab
2009-11-29 16:18 ` Mauro Carvalho Chehab
2009-11-29 11:24 ` Christoph Bartelmus
2009-11-29 16:01 ` Mauro Carvalho Chehab
2009-11-28 19:55 ` Krzysztof Halasa
2009-11-28 20:14 ` Jon Smirl
2009-11-28 20:29 ` Krzysztof Halasa
2009-11-28 17:21 ` Krzysztof Halasa
2009-11-29 11:07 ` Christoph Bartelmus
2009-11-28 16:45 ` Jon Smirl
2009-11-28 18:45 ` Maxim Levitsky
2009-11-28 18:56 ` Jon Smirl
2009-11-28 19:16 ` Maxim Levitsky
2009-11-28 19:30 ` Stefan Richter
2009-11-28 19:32 ` Jon Smirl
2009-11-28 19:48 ` Stefan Richter
2009-11-29 2:47 ` Mike Lampard
2009-11-29 4:55 ` Dmitry Torokhov
2009-11-29 5:31 ` Mike Lampard
2009-11-29 7:14 ` Dmitry Torokhov
2009-11-29 21:59 ` Artur Skawina
2009-11-30 12:13 ` Mauro Carvalho Chehab
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=1259593461.13049.49.camel@maxim-laptop \
--to=maximlevitsky@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=awalls@radix.net \
--cc=dmitry.torokhov@gmail.com \
--cc=j@jannau.net \
--cc=jarod@redhat.com \
--cc=jarod@wilsonet.com \
--cc=jonsmirl@gmail.com \
--cc=khc@pm.waw.pl \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=lirc@bartelmus.de \
--cc=mchehab@redhat.com \
--cc=ray-lk@madrabbit.org \
--cc=stefanr@s5r6.in-berlin.de \
--cc=superm1@ubuntu.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;
as well as URLs for NNTP newsgroup(s).