git: kernel - Remove PG_ZERO and zeroidle (page-zeroing) entirely

commit afd2da4dc9056ea79cdf15e8a9386a3d3998f33e Author: Matthew Dillon <dillon at apollo.backplane.com> Date: Tue Aug 2 17:41:08 2016 -0700 kernel - Remove PG_ZERO and zeroidle (page-zeroing) entirely * Remove the PG_ZERO flag and remove all page-zeroing optimizations, entirely. Aftering doing a substantial amount of testing, these optimizations, which existed all the way back to CSRG BSD, no longer provide any benefit on a modern system. - Pre-zeroing a page only takes 80ns on a modern cpu. vm_fault overhead in general is ~at least 1 microscond. - Pre-zeroing a page leads to a cold-cache case on-use, forcing the fault source (e.g. a userland program) to actually get the data from main memory in its likely immediate use of the faulted page, reducing performance. - Zeroing the page at fault-time is actually more optimal because it does not require any reading of dynamic ram and leaves the cache hot. - Multiple synth and build tests show that active idle-time zeroing of pages actually reduces performance somewhat and incidental allocations of already-zerod pages (from page-table tear-downs) do not affect performance in any meaningful way. * Remove bcopyi() and obbcopy() -> collapse into bcopy(). These other versions existed because bcopy() used to be specially-optimized and could not be used in all situations. That is no longer true. * Remove bcopy function pointer argument to m_devget(). It is no longer used. This function existed to help support ancient drivers which might have needed a special memory copy to read and write mapped data. It has long been supplanted by BUSDMA. Summary of changes: sys/ddb/db_input.c | 4 +- sys/dev/netif/ae/if_ae.c | 2 +- sys/dev/netif/ale/if_ale.c | 4 +- sys/dev/netif/dc/if_dc.c | 3 +- sys/dev/netif/ic/if_ic.c | 2 +- sys/dev/netif/lge/if_lge.c | 2 +- sys/dev/netif/my/if_my.c | 2 +- sys/dev/netif/nge/if_nge.c | 2 +- sys/dev/netif/plip/if_plip.c | 4 +- sys/dev/netif/ral/rt2860.c | 2 +- sys/dev/netif/rl/if_rl.c | 4 +- sys/dev/netif/sf/if_sf.c | 2 +- sys/dev/netif/sln/if_sln.c | 6 +- sys/dev/netif/vr/if_vr.c | 2 +- sys/dev/netif/wb/if_wb.c | 2 +- sys/dev/video/fb/fbreg.h | 17 +-- sys/kern/kern_slaballoc.c | 11 +- sys/kern/uipc_mbuf.c | 7 +- sys/kern/uipc_syscalls.c | 1 - sys/kern/vfs_bio.c | 26 ++--- sys/net/bpf.c | 15 +-- sys/net/net_osdep.h | 32 ------ sys/net/netmap/netmap.c | 2 +- sys/net/ppp_layer/slcompress.c | 5 +- sys/netgraph/async/ng_async.c | 9 +- sys/netgraph/l2tp/ng_l2tp.c | 2 +- sys/netgraph/mppc/ng_mppc.c | 4 +- sys/netgraph/ng_device.c | 2 +- sys/netgraph/pptpgre/ng_pptpgre.c | 4 +- sys/netgraph/socket/ng_socket.c | 2 +- sys/netgraph7/async/ng_async.c | 4 +- sys/netgraph7/deflate/ng_deflate.c | 7 +- sys/netgraph7/mppc/ng_mppc.c | 4 +- sys/netgraph7/ng_pred1.c | 4 +- sys/netgraph7/socket/ng_socket.c | 2 +- sys/netinet/ip_output.c | 10 +- sys/netinet6/ah_input.c | 8 +- sys/netinet6/esp_input.c | 4 +- sys/netinet6/frag6.c | 4 +- sys/netinet6/ipsec.c | 4 +- sys/netproto/802_11/wlan/ieee80211_input.c | 4 +- sys/netproto/802_11/wlan/ieee80211_output.c | 10 +- .../802_11/wlan_ccmp/ieee80211_crypto_ccmp.c | 4 +- .../802_11/wlan_wep/ieee80211_crypto_wep.c | 4 +- sys/netproto/ipsec/ipsec_mbuf.c | 4 +- sys/netproto/ipsec/ipsec_output.c | 2 +- sys/platform/pc64/include/md_var.h | 1 - sys/platform/pc64/x86_64/pmap.c | 39 +------ sys/platform/pc64/x86_64/support.s | 77 +++++--------- sys/platform/vkernel64/platform/copyio.c | 12 --- sys/platform/vkernel64/platform/pmap.c | 30 +----- sys/sys/mbuf.h | 3 +- sys/sys/systm.h | 6 -- sys/vfs/devfs/devfs_vnops.c | 2 - sys/vfs/smbfs/smbfs_io.c | 2 - sys/vm/phys_pager.c | 4 +- sys/vm/pmap.h | 1 - sys/vm/swap_pager.c | 5 +- sys/vm/vm_contig.c | 9 +- sys/vm/vm_fault.c | 26 +---- sys/vm/vm_kern.c | 4 +- sys/vm/vm_page.c | 117 +++------------------ sys/vm/vm_page.h | 2 +- sys/vm/vm_page2.h | 7 -- sys/vm/vm_pager.c | 1 - sys/vm/vm_zeroidle.c | 21 ++++ 66 files changed, 184 insertions(+), 446 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/afd2da4dc9056ea79cdf15e8a9386a3d3998f33e -- DragonFly BSD source repository