Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Aug 2010 11:24:53 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Benjamin Kaduk <kaduk@mit.edu>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: memory inconsistencies with OpenAFS on FreeBSD
Message-ID:  <20100828082453.GG2396@deviant.kiev.zoral.com.ua>
In-Reply-To: <alpine.GSO.1.10.1008272351061.9337@multics.mit.edu>
References:  <alpine.GSO.1.10.1008272351061.9337@multics.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Sat, Aug 28, 2010 at 12:28:51AM -0400, Benjamin Kaduk wrote:
> Hi all,
> 
> I've been working to make the OpenAFS network filesystem client usable on 
> FreeBSD; it's currently in a mostly-working state. 
> ( http://www.openafs.org/ ; I have a hackish packaging of it as a FreeBSD 
> port at http://web.mit.edu/freebsd/openafs/openafs.shar .  Note that it is 
> broken on recent -current since it it fails to register its syscall 
> properly; this is fixed in git master pending an update to 
> syscalls.master.)
> 
> Normal file operations from a shell work okay, I can write and 
> edit a file with vi, etc.; copying /usr/src into and out of AFS proceeds 
> nicely.
> However, if I proceed to the standard lazy man's filesystem stress test, 
> buildworld, things don't get very far:
> >>>stage 1.1: legacy release compatibility shims
> [...]
> ===> tools/build (obj,includes,depend,all,install)
> [...]
> cc -O2 -pipe -std=gnu99 
> -I/afs/zone.mit.edu/user/kaduk/build/obj/afs/zone.mit.
> edu/user/kaduk/build/tmp/legacy/usr/include -c 
> /afs/zone.mit.edu/user/kaduk/buil
> d/tools/build/dummy.c
> building static egacy library
> *** Signal 11
> 
> I also don't seem to be able to run executables from AFS:
> freebuild# ./my_mmap test4
> elf_load_section: truncated ELF file
> Abort
This sounds very much as missed vnode_pager_setsize() calls.
VM tracks the file size as vnode vmobject size separately.
I think this was done for historical reasons, but also it
allows to not traverse the vop stack calling VOP_GETATTR each
time when size is needed.

> 
> 
> Trying to dig a bit deeper and get a smaller test case, rwatson suggested 
> that I look at mmap-ing a file and reading/writing from it. I wrote a 
> small test program, and reading from the mmaped file works okay. However, 
> writing to the mmap-ed file does not seem to take effect (though my test 
> program does modify the target file on local disk).
> 
> (Also, when I do silly things like try to access unmapped memory which 
> ought to generate a core dump, I get on the console:
> freebuild kernel: Failed to write core file for process my_mmap (error 
> 14))
> 
> Where should I be looking to track down what's going on?
> 
> I note that we do provide our own getpages and putpages vops, and this 
> code hasn't been particularly loved since the FreeBSD 4.x days.
> 
> Thanks for any suggestions,
> 
> Ben Kaduk
> _______________________________________________
> freebsd-fs@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkx4x9UACgkQC3+MBN1Mb4hfWgCg8XBS8Xp6xBovk09983KFTAKG
DN8AnR4sYmguJR425zvFVNPAcbuYudMQ
=eDx5
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100828082453.GG2396>