[PATCH] POSIX_FADV_{DONTNEED,NOREUSE} defines on s390-64.
Martin Schwidefsky
schwidefsky@de.ibm.com
Tue Jul 12 07:47:00 GMT 2005
libc-hacker-owner@sources.redhat.com wrote on 07/11/2005 06:51:44 PM:
> Martin Schwidefsky wrote:
> > our testers noticed that the definitions of POSIX_FADV_DONTNEED and
> > POSIX_FADV_NOREUSE of the glibc and the linux kernel differ.
>
> And how did this happen? You created the unified fcntl.h file.
It did not happen with the fcntl.h unification. The "wrong" values
for DONTNEED and NOREUSE have been present before the unification
as well.
> > There
> > are two options to fix this problem: in the glibc or in the kernel.
> > I considered this for a while and came to the conclusion that this
> > is better fixed in the glibc. To fix this in the kernel I'd need to
> > analyse the arguments of the compat fadvise system call and change
> > the 31 bit defines to the 64 bit defines. The 64 bit applications
> > that are currently using DONTNEED and NOREUSE always get -EINVAL.
> > Nobody complained so far.
>
> The latter doesn't mean much since the behavior is not really visible.
> Fixing it in glibc means that the values currently used are forever
> taboo. And it means existing binaries are broken. If you change the
> kernel, existing binaries magically start working and the only drawback
> is that a program tested on a new kernel might perform differently on an
> old kernel.
>
> Changing glibc might be the simpler solution but it the least friendly
> to users. Can you reconsider it?
I'll try to come up with a kernel patch. But it won't be a nice patch.
I have the feeling that the kernel guys won't like it either ..
blue skies,
Martin
Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH
More information about the Libc-hacker
mailing list