From: Darren Hart <dvhart@linux.intel.com>
To: Josh Triplett <josh@joshtriplett.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] scripts/ksize: Add kernel build size report
Date: Sat, 08 Nov 2014 21:00:53 -0800 [thread overview]
Message-ID: <545EF505.7040101@linux.intel.com> (raw)
In-Reply-To: <20141109032630.GB1026@thin>
On 11/8/14 19:26, Josh Triplett wrote:
> On Sat, Nov 08, 2014 at 03:18:18PM -0800, Darren Hart wrote:
>> ksize generates hierarchical build size reports from vmlinux, *.o, and
>> built-in.o files.
>>
>> ksize is useful in preparing minimal configurations and comparing
>> similar configurations across kernel versions.
>>
>> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
>> Cc: Josh Triplett <josh@joshtriplett.org>
>
> One comment below; with that addressed:
> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
>
>> +def main(argv):
>> + try:
>> + opts, args = getopt.getopt(argv[1:], "dh", ["help"])
>> + except getopt.GetoptError, err:
>> + print '%s' % str(err)
>> + usage()
>> + return 2
>> +
>> + driver_detail = False
>> + for o, a in opts:
>> + if o == '-d':
>> + driver_detail = True
>> + elif o in ('-h', '--help'):
>> + usage()
>> + return 0
>> + else:
>> + assert False, "unhandled option"
>> +
>> + cols = term_width()
>> +
>> + # Determine kernel version
>> + p = Popen("strings vmlinux | grep 'Linux version' | cut -d ' ' -f 3",
>> + shell=True, stdout=PIPE, stderr=PIPE)
>> + version = p.communicate()[0].strip()
>
> This seems like a very fragile, Perl-y way to obtain the kernel version.
>
> I'd suggest either not including the version (just as bloat-o-meter
> doesn't), or parsing it out using objdump -h -t and file offsetting
> (looking for the offset and size of linux_banner). Personally I'd go
> with the former.
I agree it's a hack, but it isn't a performance sensitive area and I
couldn't see spending the time to calculate offsets and such to save a
couple seconds for something like this. There are more advanced
approaches to extracting bits of information from vmlinux, such as
scripts/extract-ikconfig. I suppose something along those lines could be
created.
As to fragile, I have not tested every version, but this technique has
been used at least as far back as 2.6.24 [1], which seem fairly stable
to me.
Personally, I think it's nice to have. But, if nobody chimes in asking
to keep it, or with a better way to retrieve it, I can resend with it
removed.
Thanks Josh :-)
1.
http://plastilinux.blogspot.com/2009/11/how-to-know-version-of-kernel-without.html
(A slightly faster hack)
--
Darren Hart
Intel Open Source Technology Center
prev parent reply other threads:[~2014-11-09 5:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-08 23:18 [PATCH] scripts/ksize: Add kernel build size report Darren Hart
2014-11-09 3:26 ` Josh Triplett
2014-11-09 5:00 ` Darren Hart [this message]
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=545EF505.7040101@linux.intel.com \
--to=dvhart@linux.intel.com \
--cc=josh@joshtriplett.org \
--cc=linux-kernel@vger.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