Re: checklist (Re: 2.6.17-rc2-mm1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"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]
  Powered by Linux