From: "David Härdeman" <david@hardeman.nu>
To: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: linux-media@vger.kernel.org, linux-input@vger.kernel.org
Subject: Re: [PATCH 3/4] ir-core: move decoding state to ir_raw_event_ctrl
Date: Mon, 7 Jun 2010 21:00:03 +0200 [thread overview]
Message-ID: <20100607190003.GC19390@hardeman.nu> (raw)
In-Reply-To: <4BDF2B45.9060806@redhat.com>
On Mon, May 03, 2010 at 05:00:05PM -0300, Mauro Carvalho Chehab wrote:
> David Härdeman wrote:
> > This patch moves the state from each raw decoder into the
> > ir_raw_event_ctrl struct.
> >
> > This allows the removal of code like this:
> >
> > spin_lock(&decoder_lock);
> > list_for_each_entry(data, &decoder_list, list) {
> > if (data->ir_dev == ir_dev)
> > break;
> > }
> > spin_unlock(&decoder_lock);
> > return data;
> >
> > which is currently run for each decoder on each event in order
> > to get the client-specific decoding state data.
> >
> > In addition, ir decoding modules and ir driver module load
> > order is now independent. Centralizing the data also allows
> > for a nice code reduction of about 30% per raw decoder as
> > client lists and client registration callbacks are no longer
> > necessary.
>
> The registration callbacks will likely still be needed by lirc,
> as you need to create/delete lirc_dev interfaces, when the module
> is registered, but I might be wrong. It would be interesting to
> add lirc_dev first, in order to be sure about the better interfaces
> for it.
Or the lirc_dev patch can add whatever interfaces it needs. Anyway, the
current interfaces are not good enough since it'll break if lirc_dev is
loaded after the hardware modules.
> Also, from one side, you reduced the code size, but, on the other hand,
> you've increased the memory usage, as now the protocol data will be
> stored even for protocols that weren't compiled/loaded.
In <4BBF3309.6020909@infradead.org>, Mauro Carvalho Chehab wrote:
>> Andy Walls wrote:
>>> Encoding pulse vs space with a negative sign, even if now hidden
>>> with macros, is still just using a sign instead of a boolean.
>>> Memory in modern computers (and now microcontrollers) is cheap and
>>> only getting cheaper. Don't give up readability, flexibility, or
>>> mainatainability, for the sake of saving memory.
>
> That was my point since the beginning: the amount of saved memory
> doesn't justify the lack of readability.
Are you worried about memory usage now?
> Probably, the code size savings are big enough to justify the runtime
> memory footprint, at least with the current decoders. Not sure how big
> this will become when we add lirc_dev and other decoders that might be
> missing.
Right now, the "reasonable default" is a user machine with one hardware
decoder and with all of the rc-core decoders loaded (cause that's how
his/her distro will set it up). For that machine, the patch will save a
lot of memory, not waste it (~380 lines less code...I'll assure you it's
a net gain).
In addition, random module load order is currently broken (try loading
decoders first and hardware later and you'll see). With this patch, it
works again.
Anyway, I'll post a new patch series this evening and then we can go
back to our regular arguing :)
--
David Härdeman
next prev parent reply other threads:[~2010-06-07 19:00 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-24 21:13 [PATCH 0/4] ir-core sysfs protocol selection simplification David Härdeman
2010-04-24 21:13 ` David Härdeman
2010-04-24 21:14 ` [PATCH 1/4] ir-core: remove IR_TYPE_PD David Härdeman
2010-04-24 21:14 ` David Härdeman
2010-04-24 21:14 ` [PATCH 2/4] ir-core: centralize sysfs raw decoder enabling/disabling David Härdeman
2010-05-03 19:49 ` Mauro Carvalho Chehab
2010-05-03 19:49 ` Mauro Carvalho Chehab
2010-06-07 18:48 ` David Härdeman
2010-04-24 21:14 ` [PATCH 3/4] ir-core: move decoding state to ir_raw_event_ctrl David Härdeman
2010-05-03 20:00 ` Mauro Carvalho Chehab
2010-05-03 20:00 ` Mauro Carvalho Chehab
2010-06-07 19:00 ` David Härdeman [this message]
2010-06-07 20:15 ` Jarod Wilson
2010-06-08 17:50 ` David Härdeman
2010-06-08 17:50 ` David Härdeman
2010-06-09 3:46 ` Jarod Wilson
2010-06-09 13:29 ` Jarod Wilson
2010-06-09 17:56 ` David Härdeman
2010-06-09 17:56 ` David Härdeman
2010-06-09 18:15 ` Jarod Wilson
2010-06-10 1:25 ` Jarod Wilson
2010-06-10 1:25 ` Jarod Wilson
2010-06-13 20:29 ` David Härdeman
2010-06-13 20:29 ` David Härdeman
2010-06-16 20:04 ` Jarod Wilson
2010-06-16 20:04 ` Jarod Wilson
2010-06-16 20:41 ` Jarod Wilson
2010-06-17 12:14 ` Andy Walls
2010-06-17 15:11 ` Jarod Wilson
2010-06-21 0:47 ` Andy Walls
2010-06-21 3:51 ` Jarod Wilson
2010-06-21 3:51 ` Jarod Wilson
2010-06-21 11:04 ` Andy Walls
2010-07-06 17:12 ` Jarod Wilson
2010-07-06 17:12 ` Jarod Wilson
2010-04-24 21:14 ` [PATCH 4/4] ir-core: remove ir-functions usage from cx231xx David Härdeman
2010-04-24 21:14 ` David Härdeman
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=20100607190003.GC19390@hardeman.nu \
--to=david@hardeman.nu \
--cc=linux-input@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.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.