- Add rtfree_remote(), which send rtentry to its owner CPU to be freed.
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 11 Sep 2008 11:23:29 +0000 (11:23 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 11 Sep 2008 11:23:29 +0000 (11:23 +0000)
commit3eef1c4ed2c01eb242407961d951ddeb2e7c8902
tree8fc67036d1f8474b43a6403481e8b30e5603a168
parent1541028a42abd2814e86cd04f29fc0ae0164a7e4
- Add rtfree_remote(), which send rtentry to its owner CPU to be freed.
  Print backtrace, if net.route.remote_free_panic is 0.  This function
  only serves as _temporary_ workaround.
- In ip_output(), if passed rtentry cache's owner CPU is not the current,
  then keep it untouched and use the stack variable to relocate the route.
  Add comment about it.  This at least could happen in the following
  callgraph on a TCP socket, on which listen(2) has been called:
  ip_input() -> tcp_input() -> tcp_respond() -> ip_output()

Related to Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1134>
sys/net/route.c
sys/net/route.h
sys/netinet/in_pcb.c
sys/netinet/ip_output.c