Re: dealing with excessive includes

From: Al Viro
Date: Thu Oct 19 2006 - 12:23:33 EST


On Wed, Oct 18, 2006 at 09:32:08AM -0700, Linus Torvalds wrote:
> That said, I'd rather do any lock_super() cleanup totally _independently_
> of a include file cleanup.
>
> So since it's clearly not performance-critical, how about just making it
> be out-of-line in fs/super.c, and turn the header file into just a
> declaration?

Next fun question on strategy: we have a very good bunch of candidates on
killable includes in skbuff.h - highmem.h, mm.h and poll.h. I've done
preliminary variants on amd64 and they give nice reductions of deps
counts with small patches. The tricky part is a couple of helpers -
k{un,}map_skb_frag(). They require highmem.h; nothing else in skbuff.h
does. Only two places are using them - net/core/skbuff.c and
net/appletalk/ddp.c (the latter in one function - dealing with Apple's
take on checksums[1]).

Possible variants:
* turn into macros. Works for a test run, not nice for final
variant.
* new header just for those two in include/net
* new header in net/core, with ddp.c including ../core/skb_kmap.h
* inline in net/core/skbuff.h, extern in ddp.c; then normal paths
get it inlined and appletalk can live with uninlined version.

Preferences?

[1] appletalk: the proof that Vogon neuroanatomy was not entirely fictional.
-
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/