"Randy.Dunlap" <[email protected]> wrote:
>
>
> > > So at this point in time what I'd like to do is to encourage developers to
> > > do these very basic things. That's the low-hanging fruit right now.
> >
> > Write a checklist for that?
>
> I've been meaning to write up one myself, so I'll give it a shot.
>
> This is all above and beyond good patch log descriptions.
>
>
> 1. Build cleanly with applicable or modified CONFIG options =y, =m, and =n.
> No gcc warnings/errors, no linker warnings/errors.
>
> 2. Build on multiple CPU arch-es by using local cross-compile tools
> or something like PLM at OSDL.
>
> 3. Check cleanly with sparse.
>
> 4. Make sure that any new or modified CONFIG options don't muck up
> the config menu.
>
> 5. Use 'make checkstack' and 'make namespacecheck' and fix any
> problems that they find. Note: checkstack does not point out
> problems explicitly, but any one function that uses more than
> 512 bytes on the stack is a candidate for change.
>
> 6. Include kernel-doc to document global kernel APIs. (Not required
> for static functions, but OK there also.) Use 'make htmldocs'
> or 'make mandocs' to check the kernel-doc and fix any issues.
>
A lot of these are pretty hard and labor-intensive for people to set up and
run. It would be nice, but from a global perspective it's not efficient
for every member of the kernel team to do all these things. It's OK I
think if a few specialists run these tools against lots of people's patches
all at once.
Which is basically what we're doing now, although I suspect we could be
more rigorous about it.
I should be doing more of these things myself, but it's plenty enough work
getting though the "applies, doesn't-ridicule-coding-style,
compiles-without-warnings, boots-on-several-arches" steps. It's good that
Adrian does some of the other steps. I'm not aware of anyone who is doing
regular sparse and kernel-doc checking on -mm.
That all being said, these are all good things to have in a list.
To your list I'd add
- Passes allnoconfig, allmodconfig
- Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_SLAB,
CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK,
CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously enabled.
- Has been build- and runtime tested with and without CONFIG_SMP and
CONFIG_PREEMPT.
- If it affects IO/Disk, etc: has been tested with and without CONFIG_LBD.
- ppc64 is a good architecture for cross-compilation checking because it
tends to use `unsigned long' for 64-bit quantities.
- Has been carefully reviewed wrt relevant Kconfig combinations. This is
very hard to get right with testing - brainpower pays off here.
- Matches kernel coding style(!)
- All new Kconfig options have help text
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]