HEADS UP: inpcb/inpcbinfo rwlocking: coming to a 7-STABLE branch near you

John Baldwin jhb at freebsd.org
Mon Aug 18 14:47:06 UTC 2008


On Monday 18 August 2008 09:37:51 am Mike Tancsa wrote:
> At 04:14 AM 8/18/2008, Robert Watson wrote:
> >On Sun, 3 Aug 2008, Robert Watson wrote:
> >>This is an advance warning that, late next week, I will be merging
> >>a fairly large set of changes to the IPv4 and IPv6 protocols
> >>layered over the inpcb/inpcbinfo kernel infrastructure.  To be
> >>specific, this affects TCP, UDP, and raw sockets on both IPv4 and
> >>IPv6.  I will post a further e-mail announcement along with patch
> >>set and schedule in a day or two once it's prepared.
> >
> >FYI: This patch has now been committed to Subversion.  I'll keep a
> >close eye out for difficulties; if you run into issues, please send
> >me an e-mail (and CC stable@).
>
> Hi Robert,
>          I just did a buildworld/kernel in case your commit fixed the
> routing bugs, but I am still seeing those bogus arp / routing table
> entries. I narrowed it down to the commits below. I dont think its
> the intel stuff, as another user reported the same issue using bce nics.
>
> date=2008.07.30.18.00.00
> and
> date=2008.07.31.00.00.00
>
> Updating collection src-all/cvs
>   Checkout src/sys/dev/e1000/LICENSE
>   Checkout src/sys/dev/e1000/README
>   Checkout src/sys/dev/e1000/e1000_80003es2lan.c
>   Checkout src/sys/dev/e1000/e1000_80003es2lan.h
>   Checkout src/sys/dev/e1000/e1000_82540.c
>   Checkout src/sys/dev/e1000/e1000_82541.c
>   Checkout src/sys/dev/e1000/e1000_82541.h
>   Checkout src/sys/dev/e1000/e1000_82542.c
>   Checkout src/sys/dev/e1000/e1000_82543.c
>   Checkout src/sys/dev/e1000/e1000_82543.h
>   Checkout src/sys/dev/e1000/e1000_82571.c
>   Checkout src/sys/dev/e1000/e1000_82571.h
>   Checkout src/sys/dev/e1000/e1000_82575.c
>   Checkout src/sys/dev/e1000/e1000_82575.h
>   Checkout src/sys/dev/e1000/e1000_api.c
>   Checkout src/sys/dev/e1000/e1000_api.h
>   Checkout src/sys/dev/e1000/e1000_defines.h
>   Checkout src/sys/dev/e1000/e1000_hw.h
>   Checkout src/sys/dev/e1000/e1000_ich8lan.c
>   Checkout src/sys/dev/e1000/e1000_ich8lan.h
>   Checkout src/sys/dev/e1000/e1000_mac.c
>   Checkout src/sys/dev/e1000/e1000_mac.h
>   Checkout src/sys/dev/e1000/e1000_manage.c
>   Checkout src/sys/dev/e1000/e1000_manage.h
>   Checkout src/sys/dev/e1000/e1000_nvm.c
>   Checkout src/sys/dev/e1000/e1000_nvm.h
>   Checkout src/sys/dev/e1000/e1000_osdep.c
>   Checkout src/sys/dev/e1000/e1000_osdep.h
>   Checkout src/sys/dev/e1000/e1000_phy.c
>   Checkout src/sys/dev/e1000/e1000_phy.h
>   Checkout src/sys/dev/e1000/e1000_regs.h
>   Checkout src/sys/dev/e1000/if_em.c
>   Checkout src/sys/dev/e1000/if_em.h
>   Checkout src/sys/dev/e1000/if_igb.h

Since are seeing this w/o em we can rule all of these out.

>   Edit src/sys/kern/kern_synch.c
>    Add delta 1.302.2.3 2008.07.30.18.28.09 rwatson

This is just a style change.

>   Edit src/sys/kern/sys_process.c
>    Add delta 1.145.2.1 2008.07.30.19.49.10 jhb

This only affects userland reading memory of other process' userland (e.g. 
procfs 'mem' file, gdb, etc.).

>   Edit src/sys/conf/files
>    Add delta 1.1243.2.32 2008.07.30.20.35.41 kmacy
>   Edit src/sys/netinet/tcp_subr.c
>    Add delta 1.300.2.4 2008.07.30.20.35.41 kmacy
>   Edit src/sys/netinet/tcp_syncache.c
>    Add delta 1.130.2.9 2008.07.30.20.35.41 kmacy
>    Add delta 1.130.2.10 2008.07.30.20.51.20 kmacy
>   Edit src/sys/netinet/tcp_syncache.h
>    Add delta 1.1.2.1 2008.07.30.20.35.41 kmacy
>   Edit src/sys/netinet/tcp_usrreq.c
>    Add delta 1.163.2.4 2008.07.30.20.35.41 kmacy

These are changes by Kip to do TCP offload (181013, 181014).

>   Edit src/sys/netinet/udp_usrreq.c
>    Add delta 1.218.2.1 2008.07.30.21.23.21 bz

>   Edit src/sys/netinet6/ip6_input.c
>    Add delta 1.95.2.1 2008.07.30.21.23.21 bz
>   Edit src/sys/netinet6/ip6_var.h
>    Add delta 1.39.2.2 2008.07.30.21.23.21 bz

These changes are all to #ifdef INET6 only code, so probably not relevant.

>   Edit src/sys/sys/socket.h
>    Add delta 1.95.2.3 2008.07.30.19.35.40 kmacy

More TCP offload stuff, though this just adds constants for new socket 
options.

>   Edit src/sys/ufs/ufs/ufs_lookup.c
>    Add delta 1.83.2.2 2008.07.30.21.43.42 jhb
>   Edit src/sys/vm/vm_object.c
>    Add delta 1.385.2.2 2008.07.30.21.43.42 jhb
>   Edit src/sys/vm/vm_object.h
>    Add delta 1.114.2.1 2008.07.30.21.43.42 jhb
>   Edit src/sys/vm/vnode_pager.c
>    Add delta 1.236.2.2 2008.07.30.21.43.42 jhb

These are fixes to make UFS cache data from directories.

Given that, I think the likeliest changes to cause this are the TCP offload 
changes.  Note that Kip later MFC'd this change which changed ARP stuff:

Author: kmacy
Date: Thu Jul 31 22:42:27 2008
New Revision: 181075
URL: http://svn.freebsd.org/changeset/base/181075

Log:
  MFC ARP update hooks and change to arpresolve to do arp resolution without a 
pending mbuf to transmit

Modified:
  stable/7/sys/net/route.c
  stable/7/sys/net/route.h
  stable/7/sys/netinet/if_ether.c
  stable/7/sys/netinet/if_ether.h

However, I would stary by narrowing it down to see if Kip's commits cause the 
change.

-- 
John Baldwin


More information about the freebsd-stable mailing list