From: David Daney <ddaney.cavm@gmail.com>
To: "H. Peter Anvin" <hpa@kernel.org>
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
linux-embedded@vger.kernel.org, x86@kernel.org,
David Daney <david.daney@cavium.com>
Subject: Re: [PATCH RFC 1/5] scripts: Add sortextable to sort the kernel's exception table.
Date: Mon, 21 Nov 2011 10:51:06 -0800 [thread overview]
Message-ID: <4ECA9D9A.5040006@gmail.com> (raw)
In-Reply-To: <4EC98C97.50604@kernel.org>
On 11/20/2011 03:26 PM, H. Peter Anvin wrote:
> On 11/18/2011 11:37 AM, David Daney wrote:
>> From: David Daney<david.daney@cavium.com>
>>
>> Using this build-time sort saves time booting as we don't have to burn
>> cycles sorting the exception table.
>>
>
> If we're going to do this at build time, I would suggest using a
> collisionless hash instead. The lookup time for those are O(1), but
> they definitely need to be done at build time.
>
It is my understanding that such a hash table would be sparsely
populated, so space would have to be reserved for the empty buckets.
The current patch, which works in-place on the fully linked vmlinux,
doesn't have to worry about finding enough space for the table.
If we were to do the collisionless hash, we would somehow have to
reserve space for the empty buckets.
On my test kernel, there were only 1453 entries in the exception table,
So doing the binary search takes a maximum of 11 loads.
So, I guess I am not strongly opposed to using a collisionless hash, but
I think it may not be worth the extra effort.
David Daney
next prev parent reply other threads:[~2011-11-21 18:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-18 19:37 [PATCH RFC 0/5] Speed booting by sorting exception tables at build time David Daney
2011-11-18 19:37 ` David Daney
2011-11-18 19:37 ` [PATCH RFC 1/5] scripts: Add sortextable to sort the kernel's exception table David Daney
2011-11-18 19:37 ` David Daney
2011-11-20 23:22 ` Mike Frysinger
2011-11-20 23:22 ` Mike Frysinger
2011-11-21 18:25 ` David Daney
2011-11-21 18:50 ` Mike Frysinger
2011-11-21 19:16 ` David Daney
2011-11-21 20:08 ` Mike Frysinger
2011-11-21 20:08 ` Mike Frysinger
2011-11-20 23:26 ` H. Peter Anvin
2011-11-20 23:27 ` H. Peter Anvin
2011-11-20 23:28 ` David Woodhouse
2011-11-20 23:30 ` H. Peter Anvin
2011-11-21 18:51 ` David Daney [this message]
2011-11-21 18:51 ` David Daney
2011-11-18 19:37 ` [PATCH RFC 2/5] extable: Skip sorting if sorted at build time David Daney
2011-11-18 19:37 ` [PATCH RFC 3/5] kbuild/extable: Hook up sortextable into the build system David Daney
2011-11-20 13:45 ` Michal Marek
2011-11-22 21:38 ` David Daney
2011-11-18 19:37 ` [PATCH RFC 4/5] MIPS: Select BUILDTIME_EXTABLE_SORT David Daney
2011-11-18 19:37 ` David Daney
2011-11-18 19:37 ` [PATCH RFC 5/5] x86: " David Daney
2011-11-18 19:37 ` David Daney
2011-11-20 23:10 ` [PATCH RFC 0/5] Speed booting by sorting exception tables at build time Mike Frysinger
2011-11-20 23:10 ` Mike Frysinger
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=4ECA9D9A.5040006@gmail.com \
--to=ddaney.cavm@gmail.com \
--cc=david.daney@cavium.com \
--cc=hpa@kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-embedded@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=x86@kernel.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 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).