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: 25+ 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:14 ` [PATCH 1/4] ir-core: remove IR_TYPE_PD 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-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-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-09 3:46 ` Jarod Wilson
2010-06-09 13:29 ` Jarod Wilson
2010-06-09 17:56 ` David Härdeman
2010-06-09 18:15 ` Jarod Wilson
2010-06-10 1:25 ` Jarod Wilson
2010-06-13 20:29 ` David Härdeman
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 11:04 ` Andy Walls
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
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 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).