Re: [PATCH] scripts/ksize: Add kernel build size report

From: Darren Hart
Date: Sun Nov 09 2014 - 00:01:00 EST




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@xxxxxxxxxxxxxxx>
>> Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
>
> One comment below; with that addressed:
> Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
>
>> +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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/