Date: Fri, 27 May 2011 19:03:08 -0400 (EDT) From: Rick Macklem <rmacklem@uoguelph.ca> To: Goran Lowkrantz <glz@hidden-powers.com> Cc: freebsd-current@freebsd.org Subject: Re: Testing new nfs and VIMAGE Message-ID: <1297732809.928917.1306537388344.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <BF1CE7DB96DCAD7822BCAB48@syn>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] > And the attached core.txt got eaten. > <http://people.hidden-powers.com/~glz/core.txt.3> > > /glz > > --On May 27, 2011 10:37:32 +0200 Goran Lowkrantz > <glz@hidden-powers.com> > wrote: > > > > > I have been testing VIMAGE a lot lately to see how it works an all > > my > > test cases works as expected except when I use NFSv4 from an NFS > > client > > with a kerrel with VIMAGE enabled. > > > > All other permutations work and this error is very specific. All > > crashes > > occurs when trying to read or write to an NFS v4 volume. I have seen > > it > > on both i386 and amd64. > > > ># 12 0xc0a73c15 in rt_tables_get_rnh (table=0, fam=2) > > at /usr/src/sys/net/route.c:153 > > > > > > static __inline struct radix_node_head ** > > rt_tables_get_rnh_ptr(int table, int fam) > > { > > struct radix_node_head **rnh; > > > > KASSERT(table >= 0 && table < rt_numfibs, ("%s: table out of > > bounds.", > > __func__)); > > KASSERT(fam >= 0 && fam < (AF_MAX+1), ("%s: fam out of > > bounds.", > > __func__)); > > > > /* rnh is [fib=0][af=0]. */ > > ---> rnh = (struct radix_node_head **)V_rt_tables; > > /* Get the offset to the requested table and fam. */ > > rnh += table * (AF_MAX+1) + fam; > > > > return (rnh); > > } > > > > Any ideas? > > > > Cores and dumps are available plus a vmware player setup to test and > > debug. > > I know diddly about VIMAGE, but you could try the attached patch which imitates what is done other places. If the patch isn't attached, you can find it at: http://people.freebsd.org/~rmacklem/vnet.patch rick [-- Attachment #2 --] --- fs/nfsclient/nfs_clport.c.sav 2011-05-04 19:12:10.000000000 -0400 +++ fs/nfsclient/nfs_clport.c 2011-05-27 18:52:11.000000000 -0400 @@ -943,7 +943,9 @@ nfscl_getmyip(struct nfsmount *nmp, int sad.sin_family = AF_INET; sad.sin_len = sizeof (struct sockaddr_in); sad.sin_addr.s_addr = sin->sin_addr.s_addr; + CURVNET_SET(TD_TO_VNET(curthread)); rt = rtalloc1((struct sockaddr *)&sad, 0, 0UL); + CURVNET_RESTORE(); if (rt != NULL) { if (rt->rt_ifp != NULL && rt->rt_ifa != NULL && @@ -966,7 +968,9 @@ nfscl_getmyip(struct nfsmount *nmp, int sad6.sin6_family = AF_INET6; sad6.sin6_len = sizeof (struct sockaddr_in6); sad6.sin6_addr = sin6->sin6_addr; + CURVNET_SET(TD_TO_VNET(curthread)); rt = rtalloc1((struct sockaddr *)&sad6, 0, 0UL); + CURVNET_RESTORE(); if (rt != NULL) { if (rt->rt_ifp != NULL && rt->rt_ifa != NULL &&
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1297732809.928917.1306537388344.JavaMail.root>
