2009-12-19 15:47:57

by Steve Dickson

[permalink] [raw]
Subject: 2.6.33 NFS server header reorg breaks existing systemtap scripts.

Hello,

In the upcoming 2.6.33 kernel release the following
NFS server header files have been moved out of the
'include/linux/nfsd' include directory and into the
'fs/nfsd' source directory:
linux/nfsd/nfsd.h
linux/nfsd/cache.h
linux/nfsd/xdr.h
linux/nfsd/xdr3.h
linux/nfsd/xdr4.h

This reorg will break any and all existing systemtap scripts
including the nfsd.stp in the current systemtap release. Plus
it appears the header files that live in source directories
are not include in the kernel-devel package which seems to
mean there will be no access to the NFS server code using
systemtap scripts from here on out... which is not good...

Any suggestions on how to alleviate this problem?

Have header file been moved in to source directories
in the past? If so, how was that dealt with?

steved.





2009-12-19 17:17:49

by Frank Ch. Eigler

[permalink] [raw]
Subject: Re: 2.6.33 NFS server header reorg breaks existing systemtap scripts.




Hi -

steved wrote:

> [...]
> In the upcoming 2.6.33 kernel release the following
> NFS server header files have been moved out of the
> 'include/linux/nfsd' include directory and into the
> 'fs/nfsd' source directory:
> linux/nfsd/nfsd.h
> linux/nfsd/cache.h
> linux/nfsd/xdr.h
> linux/nfsd/xdr3.h
> linux/nfsd/xdr4.h
>
> This reorg will break any and all existing systemtap scripts
> including the nfsd.stp in the current systemtap release.

Sigh. Well, nfsd.stp can probably adapt to avoid using those headers,
and rewrite __get_fh etc. to rely on @cast() instead of embedded-C.


> Plus it appears the header files that live in source directories are
> not include in the kernel-devel package

Yes, it's a problem. This is harder to work around for tracepoints,
which systemtap finds by parsing kernel-devel header files (instead of
searching debuginfo or whatnot). Perhaps we should lobby kernel-devel
to include all .h files from the kernel build trees, even subsystem
internal .h files.


- FChE