Date: Fri, 26 Jan 1996 16:13:35 -0800 (PST) From: Bruce Evans <bde> To: CVS-committers, cvs-sys Subject: cvs commit: src/sys/vm vm_page.c Message-ID: <199601270013.QAA08362@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
bde 96/01/26 16:13:34
Modified: sys/sys malloc.h
sys/vm vm_page.c
Log:
Added a `boundary' arg to vm_alloc_page_contig(). Previously the only
way to avoid crossing a 64K DMA boundary was to specify an alignment
greater than the size even when the alignment didn't matter, and for
sizes larger than a page, this reduced the chance of finding enough
contiguous pages. E.g., allocations of 8K not crossing a 64K boundary
previously had to be allocated on 8K boundaries; now they can be
allocated on any 4K boundary except (64 * n + 60)K.
Fixed bugs in vm_alloc_page_contig():
- the last page wasn't allocated for sizes smaller than a page.
- failures of kmem_alloc_pageable() weren't handled.
Mutated vm_page_alloc_contig() to create a more convenient interface
named contigmalloc(). This is the same as the one in 1.1.5 except
it has `low' and `high' args, and the `alignment' and `boundary'
args are multipliers instead of masks.
Revision Changes Path
1.11 +8 -3 src/sys/sys/malloc.h
1.47 +42 -10 src/sys/vm/vm_page.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601270013.QAA08362>
