[llvmlinux] GSoC project ideas brainstorm

Behan Webster behanw at converseincode.com
Tue Mar 19 19:08:50 UTC 2013


On 03/19/13 10:29, Jan-Simon Möller wrote:
> Hi all!
> 
> Find my comments (after having slept over it ;) ) inline ... 
> 
> 
> Am Montag, 18. März 2013, 22:35:31 schrieb Tinti:
>> On Mon, Mar 18, 2013 at 2:20 PM, Jan-Simon Möller <dl9pf at gmx.de> wrote:
>>> Hi all!
>>>
>>> I'd like to start a brainstorm session on topics for GSoC.  The org
>>> application phase starts now and we'll apply.
>>>
>>> I'd propose to have 3-5 ideas available with different level of
>>> difficulty:
>>>
>>> easy:
>>> -  beaglebone target / $board target  -  including upstreaming and
>>> bugfixing
>>
>> Nice. Would be great specially for the new beaglebone.
> 
> I like the idea, but have doubts if it is enough work for the time of gsoc.
> We'd need to define tasks around that - e.g. debugging / remote debugging for 
> the target included.

I don't think it will be enough work for gsoc.

>>> -  work on infra (build infra or buildbot/jenkins?)
>>
>> Nice. But what exactly? Do we still need to use chroot? If we do, we could
>> work on fakeroot or the Yocto equivalent.
> No specific Idea right now - maybe Behan has more ideas here. I'd spend more 
> time on the actual linux/llvm side.

I think this would need to include a complete rebuild of the buildbot
with a lot more test cases, multiple architecture builds etc.

>> intermediate:
>>> -  Extend buildbot for x86
>>
>> Nice.
> 
> Maybe not enough content wise - combine with others.

This would probably be bundled with the previous.

>>> -  Add full ltp run with reporting
>>
>> Nice.
> 
> Can be a good topic if done with reporting.

Same again.

>>> -  Add reporting of error/warning/msg statistics (how many warnings of
>>> type X)
>>
>> Nice and very useful. Like a report at the end of the build: you have
>> warning X in the file.c:13 file3.c:19
>> Specially if this report could be stored by buildbot.
> 
> Exactly.  How many errors of type "foo" happened during that build and so on:
> Example:  http://clang.debian.net/  -> rebuild results

Same again.

>>> hard:
>>> - checker
>>
>> Do you mean the --emit-llvm and .bc? Yes, very good.
> 
> I mean the static analysis tool.

Yeah. Getting it working with the kernel, extending it for common kernel
issues.

> Otherwise another highly experimental idea : compile the kernel to .bc  and 
> link it with llvm-link and then produce target specific code from there.
> Completely different compilation workflow as we use it right now.

A sort of half compiled kernel? I'm really not sure how this would be
useful. The BC would still be intended for a particular arch (since you
can't compile for more than one arch at a time). For a purely analysis
point of view, separate bc files would likely be all that's necessary,
and somebody has done that already.

It would probably me more about a tool around the bc files to analyze
the kernel code in some way (hopefully in a bid to make llvm toolset
more attractive to the kernel community). However, I'm not sure any of
us are qualified to specify that kind of work and/or project.

>>> - llvm macros, llvm + realmode
>>
>> Nice. And how about llvm/clang self hosted (I mean try our builds from
>> llvm/clang built by llvm/clang)?
> 
> Yes, but thats not really hard - we're just lazy and don't want to spend the 
> time for the extra cycles.

I agree. Self hosted clang would be trivial, and largely a waste of time.

>>> - tracing, benchmarking, fix all errors in "make allyesconfig"
>>
>> Nice.

Some sort of complete validation suite on the complete kernel.

>> My suggestions:
>>
>> easy:
>> - analyze common errors in mainline kernel and check if some of them could
>> be upstream. Once I found an ; in a if statement.
> 
> This could be combined with the reporting above (how many warnings/errors of 
> type X) and so on.

This is probably merely part of the checker work above.

>> intermediate:
>> - run Android CTS test in Nexus 7 and check if it has some parts broken or
>> not. Try to fix the ones that are broken.
>> - llvm/clang self hosted.

Finishing/validating an LLVM Android build? Would be cool.

>> hard:
>> - llvm/clang for u-boot. Would be nice to see what we get from these
>> projects.
> 
> Same - core topic ?  It helps on the boards for sure - no question. But thats 
> step 2 for us right now.
> 
>> - llvm/clang for buildroot. Same as before.

Both of these are probably beyond the scope of our project, which is
using clang with the Linux kernel.

Ideally a gsoc candidate would help the LLVMLinux project increase the
adoption of clang with the kernel community, or help with work which
will support getting patches upstream.

Behan

-- 
Behan Webster
behanw at converseincode.com


More information about the LLVMLinux mailing list