This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch master-1.8 in repository gnumach.
commit ae7edf531dd2a673660dfc250e41f101ea068b16 Author: Samuel Thibault <[email protected]> Date: Mon Dec 19 15:57:46 2016 +0100 New upstream version 1.8 --- ChangeLog | 24 +++++ NEWS | 27 +++++- build-aux/config.guess | 28 +++--- build-aux/config.sub | 22 +++-- configure | 20 ++--- doc/mach.info | 240 ++++++++++++++++++++++++------------------------- doc/mach.info-1 | 14 ++- doc/mach.info-2 | 6 +- doc/mach.texi | 6 +- doc/stamp-vti | 8 +- doc/version.texi | 8 +- ipc/ipc_kmsg.c | 2 - kern/rbtree.h | 2 +- version.m4 | 2 +- vm/vm_map.c | 27 +++--- 15 files changed, 250 insertions(+), 186 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8397b0..5562331 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2016-12-18 Thomas Schwinge <[email protected]> + + GNU Mach 1.8 + * version.m4 (AC_PACKAGE_VERSION): Set to 1.8. + * NEWS: Finalize for 1.8. + +2016-12-11 Richard Braun <[email protected]> + + VM: make vm_wire more POSIX-friendly + * doc/mach.texi: Update return codes. + * vm/vm_map.c (vm_map_pageable_common): Return KERN_NO_SPACE instead + of KERN_FAILURE if some of the specified address range does not + correspond to mapped pages. Skip unwired entries instead of failing + when unwiring. + +2016-12-09 Justus Winter <[email protected]> + + Update the NEWS file + +2016-12-09 Richard Braun <[email protected]> + + rbtree: minor change + * kern/rbtree.h (rbtree_for_each_remove): Remove trailing slash. + 2032-05-12 Richard Braun <[email protected]> VM: fix pageout throttling to external pagers diff --git a/NEWS b/NEWS index a14ac2b..8349550 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,29 @@ -Version 1.8 (2016-10-XX) +Version 1.8 (2016-12-18) + +The memory management system was extensively reworked. A new type for +physical addresses is now used where appropriate, and the system can +make use of the high memory segment. Many paging issues have been +addressed, and as a result the system handles low memory situations +more gracefully now. + +The virtual memory system now uses a red-black tree for allocations, +and as a result it now supports tasks with tens of thousands of +mappings. + +Debugging and error reporting has been improved. Among other things +the VM maps are now augmented with names that are used in error +messages, panics and assertions point to their locations, the lock +debugging mechanism has been fixed, and the kernel debugger can now +inspect stack traces reaching into the machine-dependent bits +implemented in assembler. + +As usual, bugs have been fixed throughout the code, including minor +issues with the gsync synchronization mechanism which is now used for +the internal locks in the GNU C Library (glibc). The deprecated external memory management interface has been removed. + +The partial ACPI support has been removed. Version 1.7 (2016-05-18) @@ -63,7 +86,7 @@ The kernel debugger can now parse ELF symbol tables, can be invoked over serial lines, gained two new commands and has received usability improvements. -The vm pageout policy has been tuned to accommodate modern hardware. +The VM pageout policy has been tuned to accommodate modern hardware. The kernel gained partial ACPI support on x86, enough to power down the system. diff --git a/build-aux/config.guess b/build-aux/config.guess index 0967f2a..2e9ad7f 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2016-04-02' +timestamp='2016-10-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -186,9 +186,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in - arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -997,6 +1000,9 @@ EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1029,6 +1035,9 @@ EOF ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1408,18 +1417,17 @@ esac cat >&2 <<EOF $0: unable to guess system type -This script, last modified $timestamp, has failed to recognize -the operating system you are using. It is advised that you -download the most up to date version of the config scripts from +This script (version $timestamp), has failed to recognize the +operating system you are using. If your script is old, overwrite +config.guess and config.sub with the latest versions from: http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess and http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -If the version you run ($0) is already up to date, please -send the following data and any information you think might be -pertinent to <[email protected]> in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to [email protected] to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff --git a/build-aux/config.sub b/build-aux/config.sub index 8d39c4b..dd2ca93 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2016-03-30' +timestamp='2016-11-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -117,7 +117,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -301,6 +301,7 @@ case $basic_machine in | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ @@ -428,6 +429,7 @@ case $basic_machine in | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ @@ -643,6 +645,14 @@ case $basic_machine in basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -1022,7 +1032,7 @@ case $basic_machine in ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1032,7 +1042,7 @@ case $basic_machine in ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1389,7 +1399,7 @@ case $os in | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ @@ -1399,7 +1409,7 @@ case $os in | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) diff --git a/configure b/configure index e7a4219..304890e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GNU Mach 1.7+git20161202. +# Generated by GNU Autoconf 2.69 for GNU Mach 1.8. # # Report bugs to <[email protected]>. # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU Mach' PACKAGE_TARNAME='gnumach' -PACKAGE_VERSION='1.7+git20161202' -PACKAGE_STRING='GNU Mach 1.7+git20161202' +PACKAGE_VERSION='1.8' +PACKAGE_STRING='GNU Mach 1.8' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1599,7 +1599,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Mach 1.7+git20161202 to adapt to many kinds of systems. +\`configure' configures GNU Mach 1.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1670,7 +1670,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Mach 1.7+git20161202:";; + short | recursive ) echo "Configuration of GNU Mach 1.8:";; esac cat <<\_ACEOF @@ -2026,7 +2026,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Mach configure 1.7+git20161202 +GNU Mach configure 1.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2118,7 +2118,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Mach $as_me 1.7+git20161202, which was +It was created by GNU Mach $as_me 1.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2984,7 +2984,7 @@ fi # Define the identity of the package. PACKAGE='gnumach' - VERSION='1.7+git20161202' + VERSION='1.8' # Some tools Automake needs. @@ -12189,7 +12189,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Mach $as_me 1.7+git20161202, which was +This file was extended by GNU Mach $as_me 1.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12260,7 +12260,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GNU Mach config.status 1.7+git20161202 +GNU Mach config.status 1.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/doc/mach.info b/doc/mach.info index cf13082..13efcef 100644 --- a/doc/mach.info +++ b/doc/mach.info @@ -2,8 +2,8 @@ This is mach.info, produced by makeinfo version 6.3 from mach.texi. This file documents the GNU Mach microkernel. - This is edition 0.4, last updated on 16 October 2016, of 'The GNU -Mach Reference Manual', for version 1.7+git20161202. + This is edition 0.4, last updated on 14 December 2016, of 'The GNU +Mach Reference Manual', for version 1.8. Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation, Inc. @@ -39,126 +39,126 @@ END-INFO-DIR-ENTRY Indirect: -mach.info-1: 1641 -mach.info-2: 302874 +mach.info-1: 1630 +mach.info-2: 302732 Tag Table: (Indirect) -Node: Top1641 -Node: Introduction11280 -Node: Audience12111 -Node: Features13146 -Node: Overview14973 -Node: History16166 -Node: Installing16311 -Node: Binary Distributions17536 -Node: Compilation18344 -Node: Configuration19577 -Node: Cross-Compilation35988 -Node: Bootstrap36769 -Ref: Bootstrap-Footnote-137212 -Node: Bootloader37449 -Ref: Bootloader-Footnote-138729 -Node: Modules38815 -Node: Inter Process Communication39642 -Node: Major Concepts40265 -Node: Messaging Interface44070 -Node: Mach Message Call44800 -Node: Message Format48115 -Node: Exchanging Port Rights59307 -Ref: Exchanging Port Rights-Footnote-164869 -Node: Memory65041 -Ref: Memory-Footnote-168135 -Node: Message Send68477 -Ref: Message Send-Footnote-175499 -Node: Message Receive75782 -Ref: Message Receive-Footnote-185434 -Node: Atomicity85715 -Node: Port Manipulation Interface88489 -Node: Port Creation90044 -Node: Port Destruction94833 -Node: Port Names97976 -Node: Port Rights102223 -Node: Ports and other Tasks106012 -Node: Receive Rights110105 -Node: Port Sets117036 -Node: Request Notifications119439 -Node: Inherited Ports124243 -Node: Virtual Memory Interface127927 -Node: Memory Allocation129180 -Node: Memory Deallocation131705 -Node: Data Transfer133169 -Node: Memory Attributes136695 -Node: Mapping Memory Objects146134 -Node: Memory Statistics149426 -Node: External Memory Management151000 -Node: Memory Object Server151705 -Node: Memory Object Creation154386 -Node: Memory Object Termination158374 -Node: Memory Objects and Data161313 -Node: Memory Object Locking175218 -Node: Memory Object Attributes181082 -Node: Default Memory Manager184857 -Node: Threads and Tasks190539 -Node: Thread Interface190876 -Node: Thread Creation191872 -Node: Thread Termination192989 -Node: Thread Information193460 -Node: Thread Settings199559 -Node: Thread Execution200793 -Node: Scheduling208086 -Node: Thread Priority208441 -Node: Hand-Off Scheduling211075 -Node: Scheduling Policy216200 -Node: Thread Special Ports217532 -Node: Exceptions219978 -Node: Task Interface220848 -Node: Task Creation221860 -Node: Task Termination223195 -Node: Task Information223797 -Node: Task Execution230699 -Node: Task Special Ports235112 -Node: Syscall Emulation238966 -Node: Profiling240197 -Node: Host Interface243960 -Node: Host Ports244945 -Node: Host Information247018 -Node: Host Time252401 -Node: Host Reboot255068 -Node: Processors and Processor Sets255620 -Node: Processor Set Interface256598 -Node: Processor Set Ports257365 -Node: Processor Set Access258195 -Node: Processor Set Creation260455 -Node: Processor Set Destruction261482 -Node: Tasks and Threads on Sets262403 -Node: Processor Set Priority267570 -Node: Processor Set Policy268860 -Node: Processor Set Info270474 -Node: Processor Interface274287 -Node: Hosted Processors275012 -Node: Processor Control276003 -Node: Processors and Sets277469 -Node: Processor Info279347 -Node: Device Interface282089 -Node: Device Reply Server283704 -Node: Device Open284996 -Node: Device Close287119 -Node: Device Read287698 -Node: Device Write290617 -Node: Device Map293422 -Node: Device Status294313 -Node: Device Filter295486 -Node: Kernel Debugger302874 -Node: Operation303601 -Node: Commands306578 -Node: Variables320363 -Node: Expressions321751 -Node: Copying323100 -Node: Documentation License342329 -Node: GNU Free Documentation License342918 -Node: CMU License365317 -Node: Concept Index366552 -Node: Function and Data Index370398 +Node: Top1630 +Node: Introduction11258 +Node: Audience12089 +Node: Features13124 +Node: Overview14951 +Node: History16144 +Node: Installing16289 +Node: Binary Distributions17514 +Node: Compilation18322 +Node: Configuration19555 +Node: Cross-Compilation35966 +Node: Bootstrap36747 +Ref: Bootstrap-Footnote-137190 +Node: Bootloader37427 +Ref: Bootloader-Footnote-138707 +Node: Modules38793 +Node: Inter Process Communication39620 +Node: Major Concepts40243 +Node: Messaging Interface44048 +Node: Mach Message Call44778 +Node: Message Format48093 +Node: Exchanging Port Rights59285 +Ref: Exchanging Port Rights-Footnote-164847 +Node: Memory65019 +Ref: Memory-Footnote-168113 +Node: Message Send68455 +Ref: Message Send-Footnote-175477 +Node: Message Receive75760 +Ref: Message Receive-Footnote-185412 +Node: Atomicity85693 +Node: Port Manipulation Interface88467 +Node: Port Creation90022 +Node: Port Destruction94811 +Node: Port Names97954 +Node: Port Rights102201 +Node: Ports and other Tasks105990 +Node: Receive Rights110083 +Node: Port Sets117014 +Node: Request Notifications119417 +Node: Inherited Ports124221 +Node: Virtual Memory Interface127905 +Node: Memory Allocation129158 +Node: Memory Deallocation131683 +Node: Data Transfer133147 +Node: Memory Attributes136673 +Node: Mapping Memory Objects146003 +Node: Memory Statistics149295 +Node: External Memory Management150869 +Node: Memory Object Server151574 +Node: Memory Object Creation154255 +Node: Memory Object Termination158243 +Node: Memory Objects and Data161182 +Node: Memory Object Locking175087 +Node: Memory Object Attributes180951 +Node: Default Memory Manager184726 +Node: Threads and Tasks190408 +Node: Thread Interface190745 +Node: Thread Creation191741 +Node: Thread Termination192858 +Node: Thread Information193329 +Node: Thread Settings199428 +Node: Thread Execution200662 +Node: Scheduling207955 +Node: Thread Priority208310 +Node: Hand-Off Scheduling210944 +Node: Scheduling Policy216069 +Node: Thread Special Ports217401 +Node: Exceptions219847 +Node: Task Interface220717 +Node: Task Creation221729 +Node: Task Termination223064 +Node: Task Information223666 +Node: Task Execution230568 +Node: Task Special Ports234981 +Node: Syscall Emulation238835 +Node: Profiling240066 +Node: Host Interface243829 +Node: Host Ports244814 +Node: Host Information246887 +Node: Host Time252270 +Node: Host Reboot254937 +Node: Processors and Processor Sets255489 +Node: Processor Set Interface256467 +Node: Processor Set Ports257234 +Node: Processor Set Access258064 +Node: Processor Set Creation260324 +Node: Processor Set Destruction261351 +Node: Tasks and Threads on Sets262272 +Node: Processor Set Priority267439 +Node: Processor Set Policy268729 +Node: Processor Set Info270343 +Node: Processor Interface274156 +Node: Hosted Processors274881 +Node: Processor Control275872 +Node: Processors and Sets277338 +Node: Processor Info279216 +Node: Device Interface281958 +Node: Device Reply Server283573 +Node: Device Open284865 +Node: Device Close286988 +Node: Device Read287567 +Node: Device Write290486 +Node: Device Map293291 +Node: Device Status294182 +Node: Device Filter295355 +Node: Kernel Debugger302732 +Node: Operation303459 +Node: Commands306436 +Node: Variables320221 +Node: Expressions321609 +Node: Copying322958 +Node: Documentation License342187 +Node: GNU Free Documentation License342776 +Node: CMU License365175 +Node: Concept Index366410 +Node: Function and Data Index370256 End Tag Table diff --git a/doc/mach.info-1 b/doc/mach.info-1 index 126d593..0c52f22 100644 --- a/doc/mach.info-1 +++ b/doc/mach.info-1 @@ -2,8 +2,8 @@ This is mach.info, produced by makeinfo version 6.3 from mach.texi. This file documents the GNU Mach microkernel. - This is edition 0.4, last updated on 16 October 2016, of 'The GNU -Mach Reference Manual', for version 1.7+git20161202. + This is edition 0.4, last updated on 14 December 2016, of 'The GNU +Mach Reference Manual', for version 1.8. Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation, Inc. @@ -45,8 +45,8 @@ Main Menu This file documents the GNU Mach microkernel. - This is edition 0.4, last updated on 16 October 2016, of 'The GNU -Mach Reference Manual', for version 1.7+git20161202. + This is edition 0.4, last updated on 14 December 2016, of 'The GNU +Mach Reference Manual', for version 1.8. Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation, Inc. @@ -3237,10 +3237,8 @@ File: mach.info, Node: Memory Attributes, Next: Mapping Memory Objects, Prev: 'KERN_INVALID_HOST' if HOST was not a valid host port, 'KERN_INVALID_TASK' if TASK was not a valid task, 'KERN_INVALID_VALUE' if ACCESS specified an invalid access mode, - 'KERN_FAILURE' if some memory in the specified range is not present - or has an inappropriate protection value, and - 'KERN_INVALID_ARGUMENT' if unwiring (ACCESS is 'VM_PROT_NONE') and - the memory is not already wired. + and 'KERN_NO_SPACE' if some memory in the specified range is not + present or has an inappropriate protection value. The 'vm_wire' call is actually an RPC to HOST, normally a send right for a privileged host port, but potentially any send right. diff --git a/doc/mach.info-2 b/doc/mach.info-2 index 6163fd8..8af56ec 100644 --- a/doc/mach.info-2 +++ b/doc/mach.info-2 @@ -2,8 +2,8 @@ This is mach.info, produced by makeinfo version 6.3 from mach.texi. This file documents the GNU Mach microkernel. - This is edition 0.4, last updated on 16 October 2016, of 'The GNU -Mach Reference Manual', for version 1.7+git20161202. + This is edition 0.4, last updated on 14 December 2016, of 'The GNU +Mach Reference Manual', for version 1.8. Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation, Inc. @@ -1771,7 +1771,7 @@ Function and Data Index * vm_copy: Data Transfer. (line 50) * vm_deallocate: Memory Deallocation. (line 6) * vm_inherit: Memory Attributes. (line 68) -* vm_machine_attribute: Memory Attributes. (line 132) +* vm_machine_attribute: Memory Attributes. (line 130) * vm_map: Mapping Memory Objects. (line 6) * vm_protect: Memory Attributes. (line 34) diff --git a/doc/mach.texi b/doc/mach.texi index 99ee854..d2b88d1 100644 --- a/doc/mach.texi +++ b/doc/mach.texi @@ -3261,10 +3261,8 @@ The function returns @code{KERN_SUCCESS} if the call succeeded, @code{KERN_INVALID_HOST} if @var{host} was not a valid host port, @code{KERN_INVALID_TASK} if @var{task} was not a valid task, @code{KERN_INVALID_VALUE} if @var{access} specified an invalid access -mode, @code{KERN_FAILURE} if some memory in the specified range is not -present or has an inappropriate protection value, and -@code{KERN_INVALID_ARGUMENT} if unwiring (@var{access} is -@code{VM_PROT_NONE}) and the memory is not already wired. +mode, and @code{KERN_NO_SPACE} if some memory in the specified range +is not present or has an inappropriate protection value. The @code{vm_wire} call is actually an RPC to @var{host}, normally a send right for a privileged host port, but potentially any send right. diff --git a/doc/stamp-vti b/doc/stamp-vti index 1d1d8d7..25a1c94 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 16 October 2016 -@set UPDATED-MONTH October 2016 -@set EDITION 1.7+git20161202 -@set VERSION 1.7+git20161202 +@set UPDATED 14 December 2016 +@set UPDATED-MONTH December 2016 +@set EDITION 1.8 +@set VERSION 1.8 diff --git a/doc/version.texi b/doc/version.texi index 1d1d8d7..25a1c94 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 16 October 2016 -@set UPDATED-MONTH October 2016 -@set EDITION 1.7+git20161202 -@set VERSION 1.7+git20161202 +@set UPDATED 14 December 2016 +@set UPDATED-MONTH December 2016 +@set EDITION 1.8 +@set VERSION 1.8 diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c index 527fbfc..28ed23c 100644 --- a/ipc/ipc_kmsg.c +++ b/ipc/ipc_kmsg.c @@ -1391,8 +1391,6 @@ ipc_kmsg_copyin_body( if (length == 0) data = 0; else if (is_port) { - if (length > 1<<20) - printf("allocating %llu for message %u\n", length, kmsg->ikm_header.msgh_id); data = kalloc(length); if (data == 0) goto invalid_memory; diff --git a/kern/rbtree.h b/kern/rbtree.h index 16ef273..f885fe7 100644 --- a/kern/rbtree.h +++ b/kern/rbtree.h @@ -301,6 +301,6 @@ void rbtree_remove(struct rbtree *tree, struct rbtree_node *node); for (node = rbtree_postwalk_deepest(tree), \ tmp = rbtree_postwalk_unlink(node); \ node != NULL; \ - node = tmp, tmp = rbtree_postwalk_unlink(node)) \ + node = tmp, tmp = rbtree_postwalk_unlink(node)) #endif /* _KERN_RBTREE_H */ diff --git a/version.m4 b/version.m4 index 2d1efff..d6696d6 100644 --- a/version.m4 +++ b/version.m4 @@ -1,4 +1,4 @@ m4_define([AC_PACKAGE_NAME],[GNU Mach]) -m4_define([AC_PACKAGE_VERSION],[1.7+git20161202]) +m4_define([AC_PACKAGE_VERSION],[1.8]) m4_define([AC_PACKAGE_BUGREPORT],[[email protected]]) m4_define([AC_PACKAGE_TARNAME],[gnumach]) diff --git a/vm/vm_map.c b/vm/vm_map.c index 604177e..7db9ced 100644 --- a/vm/vm_map.c +++ b/vm/vm_map.c @@ -744,7 +744,7 @@ restart: return entry; error: - printf("no more room in %p (%s) for allocating %u\n", map, map->name, size); + printf("no more room in %p (%s)\n", map, map->name); return NULL; } @@ -1477,7 +1477,7 @@ kern_return_t vm_map_pageable_common( * Start address is not in map; this is fatal. */ vm_map_unlock(map); - return(KERN_FAILURE); + return(KERN_NO_SPACE); } /* @@ -1490,19 +1490,17 @@ kern_return_t vm_map_pageable_common( vm_map_clip_start(map, entry, start); /* - * Unwiring. First ensure that the range to be - * unwired is really wired down. + * Unwiring. First ensure that there are no holes + * in the specified range. */ while ((entry != vm_map_to_entry(map)) && (entry->vme_start < end)) { - if ((entry->wired_count == 0) || - ((entry->vme_end < end) && - ((entry->vme_next == vm_map_to_entry(map)) || - (entry->vme_next->vme_start > entry->vme_end))) || - (user_wire && (entry->user_wired_count == 0))) { + if ((entry->vme_end < end) && + ((entry->vme_next == vm_map_to_entry(map)) || + (entry->vme_next->vme_start > entry->vme_end))) { vm_map_unlock(map); - return(KERN_INVALID_ARGUMENT); + return(KERN_NO_SPACE); } entry = entry->vme_next; } @@ -1517,6 +1515,13 @@ kern_return_t vm_map_pageable_common( (entry->vme_start < end)) { vm_map_clip_end(map, entry, end); + /* Skip unwired entries */ + if (entry->wired_count == 0) { + assert(entry->user_wired_count == 0); + entry = entry->vme_next; + continue; + } + if (user_wire) { if (--(entry->user_wired_count) == 0) { @@ -1641,7 +1646,7 @@ kern_return_t vm_map_pageable_common( } vm_map_unlock(map); - return(KERN_FAILURE); + return(KERN_NO_SPACE); } entry = entry->vme_next; } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hurd/gnumach.git
