diff options
author | kib <kib@FreeBSD.org> | 2011-09-06 10:40:21 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2011-09-06 10:40:21 +0000 |
commit | 0edd8a1458257b3ba88624429bf74b7b073a4136 (patch) | |
tree | 54e2d010ec07a22544456cffb5df97a5323fdbda | |
parent | a9d505a22a9d9d343bf6874e995b921ad977453c (diff) | |
download | FreeBSD-src-0edd8a1458257b3ba88624429bf74b7b073a4136.zip FreeBSD-src-0edd8a1458257b3ba88624429bf74b7b073a4136.tar.gz |
Document vm_page_aflag_set(9), vm_page_aflag_clear(9) and vm_page_reference(9).
Retire vm_page_flag_set() and vm_page_flag_clear() functions.
Reviewed by: alc
Approved by: re (bz)
-rw-r--r-- | ObsoleteFiles.inc | 4 | ||||
-rw-r--r-- | share/man/man9/Makefile | 7 | ||||
-rw-r--r-- | share/man/man9/vm_page_aflag.9 (renamed from share/man/man9/vm_page_flag.9) | 59 |
3 files changed, 57 insertions, 13 deletions
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 327727e..5ba7cea 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -38,6 +38,10 @@ # xargs -n1 | sort | uniq -d; # done +# 20110831: atomic page flags operations +OLD_FILES+=usr/share/man/man9/vm_page_flag.9.gz +OLD_FILES+=usr/share/man/man9/vm_page_flag_clear.9.gz +OLD_FILES+=usr/share/man/man9/vm_page_flag_set.9.gz # 20110828: library version bump for 9.0 OLD_LIBS+=lib/libcam.so.5 OLD_LIBS+=lib/libpcap.so.7 diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 8fb3305..b24be56 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -320,7 +320,7 @@ MAN= accept_filter.9 \ vm_page_cache.9 \ vm_page_deactivate.9 \ vm_page_dontneed.9 \ - vm_page_flag.9 \ + vm_page_aflag.9 \ vm_page_free.9 \ vm_page_grab.9 \ vm_page_hold.9 \ @@ -1372,8 +1372,9 @@ MLINKS+=vm_page_bits.9 vm_page_clear_dirty.9 \ vm_page_bits.9 vm_page_test_dirty.9 \ vm_page_bits.9 vm_page_undirty.9 \ vm_page_bits.9 vm_page_zero_invalid.9 -MLINKS+=vm_page_flag.9 vm_page_flag_clear.9 \ - vm_page_flag.9 vm_page_flag_set.9 +MLINKS+=vm_page_aflag.9 vm_page_aflag_clear.9 \ + vm_page_aflag.9 vm_page_aflag_set.9 \ + vm_page_aflag.9 vm_page_reference.9 MLINKS+=vm_page_free.9 vm_page_free_toq.9 \ vm_page_free.9 vm_page_free_zero.9 \ vm_page_free.9 vm_page_try_to_free.9 diff --git a/share/man/man9/vm_page_flag.9 b/share/man/man9/vm_page_aflag.9 index 5a1d75f..8ef5d87 100644 --- a/share/man/man9/vm_page_flag.9 +++ b/share/man/man9/vm_page_aflag.9 @@ -26,36 +26,75 @@ .\" .\" $FreeBSD$ .\" -.Dd July 14, 2001 +.Dd August 31, 2011 .Dt VM_PAGE_FLAG 9 .Os .Sh NAME -.Nm vm_page_flag_clear , vm_page_flag_set -.Nd "change page flags" +.Nm vm_page_aflag_clear , vm_page_aflag_set , vm_page_reference +.Nd "change page atomic flags" .Sh SYNOPSIS .In sys/param.h .In vm/vm.h .In vm/vm_page.h .Ft void -.Fn vm_page_flag_clear "vm_page_t m" "unsigned short bits" +.Fn vm_page_aflag_clear "vm_page_t m" "uint8_t bits" .Ft void -.Fn vm_page_flag_set "vm_page_t m" "unsigned short bits" +.Fn vm_page_aflag_set "vm_page_t m" "uint8_t bits" +.Ft void +.Fn vm_page_reference "vm_page_t m" .Sh DESCRIPTION The -.Fn vm_page_flag_clear -atomically clears the specified bits on the page's flags. +.Fn vm_page_aflag_clear +atomically clears the specified bits on the page's +.Va aflags . +.Pp +The +.Fn vm_page_aflag_set +atomically sets the specified bits on the page's +.Va aflags . .Pp The -.Fn vm_page_flag_set -atomically sets the specified bits on the page's flags. +.Fn vm_page_reference m +call is the same as +.Bd -literal -offset indent +vm_page_aflag_set(m, PGA_REFERENCED); +.Ed +.Lp +and is the recommended way to mark the page as referenced from +third-party kernel modules. +.Pp +These functions neither block nor require any locks to be held +around the calls for correctness. .Pp The functions arguments are: .Bl -tag -width ".Fa bits" .It Fa m -The page whose flags are updated. +The page whose +.Va aflags +are updated. .It Fa bits The bits that are set or cleared on the page's flags. .El +.Pp +The following +.Va aflags +can be set or cleared: +.Bl -tag -width ".Fa PGA_REFERENCED" +.It Fa PGA_REFERENCED +The bit may be set to indicate that the page has been recently accessed. +For instance, +.Xr pmap 9 +sets this bit to reflect the accessed attribute of the page mapping +typically updated by processor's memory management unit on the page access. +.It Fa PGA_WRITEABLE +A writeable mapping for the page may exist. +.El +.Pp +Both +.Dv PGA_REFERENCED +and +.Dv PGA_WRITEABLE +bits are only valid for the managed pages. .Sh AUTHORS This manual page was written by .An Chad David Aq davidc@acns.ab.ca . |