summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_glue.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2013-08-05 11:48:40 +0000
committermav <mav@FreeBSD.org>2013-08-05 11:48:40 +0000
commitbbfed93309ad0e43fcd90d67e5ba66ff86d113ff (patch)
treead49b3f2fe36aff83e041ef6aa15d048ab38b893 /sys/vm/vm_glue.c
parent08061c3f1e43cdc5bba4b98a08da51432d3ba18c (diff)
downloadFreeBSD-src-bbfed93309ad0e43fcd90d67e5ba66ff86d113ff.zip
FreeBSD-src-bbfed93309ad0e43fcd90d67e5ba66ff86d113ff.tar.gz
MFprojects/camlock r249505:
Change CCB queue resize logic to be able safely handle overallocations: - (re)allocate queue space in power of 2 chunks with 64 elements minimum and never shrink it; with only 4/8 bytes per element size is insignificant. - automatically reallocate the queue to double size if it is overflowed. - if queue reallocation failed, store extra CCBs in unsorted TAILQ, fetching them back as soon as some queue element is freed. To free space in CCB for TAILQ linking, change highpowerq from keeping high-power CCBs to keeping devices frozen due to high-power CCBs. This encloses all pieces of queue resize logic inside of cam_queue.[ch], removing some not obvious duties from xpt_release_ccb().
Diffstat (limited to 'sys/vm/vm_glue.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud