FreeBSD_HEAD - Build #3589 - Fixed: Build information: https://jenkins.FreeBSD.org/job/FreeBSD_HEAD/3589/ Full change log: https://jenkins.FreeBSD.org/job/FreeBSD_HEAD/3589/changes Full build log: https://jenkins.FreeBSD.org/job/FreeBSD_HEAD/3589/console Change summaries: 291461 by dim: Fix buildworld after r291453, similar to r284346: url->user and url->pwd are arrays, so they can never be NULL. Reported by: many Pointy hat to: des 291460 by mckusick: As the kernel allocates and frees vnodes, it fully initializes them on every allocation and fully releases them on every free. These are not trivial costs: it starts by zeroing a large structure then initializes a mutex, a lock manager lock, an rw lock, four lists, and six pointers. And looking at vfs.vnodes_created, these operations are being done millions of times an hour on a busy machine. As a performance optimization, this code update uses the uma_init and uma_fini routines to do these initializations and cleanups only as the vnodes enter and leave the vnode_zone. With this change the initializations are only done kern.maxvnodes times at system startup and then only rarely again. The frees are done only if the vnode_zone shrinks which never happens in practice. For those curious about the avoided work, look at the vnode_init() and vnode_fini() functions in kern/vfs_subr.c to see the code that has been removed from the main vnode allocation/free path. Reviewed by: kib Tested by: Peter HolmReceived on Mon Nov 30 2015 - 00:44:33 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC