[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU Mach branch, mplaneta/gsoc12/review, created. e1a950b2649f0563
From: |
Maksym Planeta |
Subject: |
[SCM] GNU Mach branch, mplaneta/gsoc12/review, created. e1a950b2649f056330cacf5016c91a4f8653f49c |
Date: |
Sun, 28 Oct 2012 16:03:15 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mach".
The branch, mplaneta/gsoc12/review has been created
at e1a950b2649f056330cacf5016c91a4f8653f49c (commit)
- Log -----------------------------------------------------------------
commit e1a950b2649f056330cacf5016c91a4f8653f49c
Author: Maksym Planeta <address@hidden>
Date: Mon Oct 8 22:31:30 2012 +0200
Add processing of page faults in clusteres in Mach kernel
Earlier, when page fault occurred, control reached the function
vm_fault_page, that determined the reason of the fault and if the reason
was appropriate, kernel asked a pager for data that should be stored in that
single page. The main idea behind this commit is to determine and than
request not only one page, but a bunch of them.
Almost all work is done in function vm_fault_page, but to keep the size of
this function there was added a bunch of helper functions for internal use
in vm_fault_page.
* i386/intel/read_fault.c (intel_read_fault): New prototype of vm_fault_page
requires supplying of map entry in which fault occurred, so change function
appropriately.
* vm/vm_fault.h (vm_fault_page): Update function prototype.
* vm/vm_fault.c (min): New macro.
(vm_fault_state_t): New field.
(vm_advice_table): New table where parameters for types of memory advice are
stored.
(map_function_parameter_t): New union for internal use.
(vm_mark_for_pagein): New function for internal use.
(vm_mark_for_unlock): Likewise.
(vm_free_after_error): Likewise.
(vm_cleanup_after_error): Likewise.
(vm_calculate_clusters): Likewise.
(dont_request_page): Likewise.
(dont_unlock_page): Likewise.
(vm_for_every_page): Likewise.
(vm_fault_page): Function has been changed to request data in clusters. Its
prototype has been changed to supply to this function information regarding
memory entry where page fault occurred.
(vm_fault): Function has been changed to supply function vm_fault_page with
information regarding memory entry where page fault occurred.
(vm_fault_unwire): Function changed to call vm_fault_page with new
prototype.
(vm_fault_copy): Likewise.
* vm/vm_map.c (vm_map_copyin_page_list): Function changed to call
vm_fault_page with new prototype.
* vm/vm_object.c (vm_object_copy_slowly): Function changed to call
vm_fault_page with new prototype.
commit 5fb4561e864d834cf7c637f6c798f04aea26c23e
Author: Maksym Planeta <address@hidden>
Date: Mon Oct 8 16:46:28 2012 +0200
Add special treatment in memory_object_data_error RPC.
This commit add possibility for server to inform kernel that server has no
some data requested by kernel. This possibility should be used when kernel
asks for cluster of data, but server can't return all the data.
* include/mach/kern_return.h (KERN_NO_DATA): New macro. Using this value
server may notify kernel that not all data in requested by kernel cluster
are available at the moment.
* vm/memory_object.c (memory_object_data_error): Add special treatment for
error code KERN_NO_DATA.
commit 2cf980488c7ffafae4036dddefa92d9a8cf2b0db
Author: Maksym Planeta <address@hidden>
Date: Mon Oct 8 16:38:31 2012 +0200
Update debugging functions to make them inform caller about memory advice.
* include/mach_debug/vm_info.h (vm_region_info_t): Add memory advice that is
applied to region's information structure.
(vm_object_info_t): Add memory advice that is applied to object's
information structure.
* vm/vm_debug.c (mach_vm_region_info): Function changed to inform caller
about memory advice.
(mach_vm_object_info): Likewise.
commit 74250405e042ecf0f11adc42f00968b39d93fe3e
Author: Maksym Planeta <address@hidden>
Date: Mon Oct 8 16:31:41 2012 +0200
Add RPC that supplies user with general information regarding memory advice.
Current implementation of vm_get_advice_info returns only maximal possible
size of cluster to be asked. This information is used by default pager,
because it can't rely on allocating of memory during processing requests
from kernel. That's why default pager allocates buffers, where it stores
data to be returned to kernel, beforehand for each thread. So, information
provided by vm_get_advice_info tells the default pager size of this buffer.
* include/mach/mach.defs (vm_get_advice_info): New ipc definition.
* vm/vm_user.c (vm_get_advice_info): New function.
commit e70ecc311676b9f30cbc5ca7c2029b7f522cbb25
Author: Maksym Planeta <address@hidden>
Date: Mon Oct 8 16:01:13 2012 +0200
Add IPC functions that allow user to manipulate with memory advice.
* include/mach/mach_types.defs (vm_advice_t): New type definition.
* include/mach/mach.defs (vm_advise): New RPC definition.
(memory_object_set_advice): Likewise.
(memory_object_get_advice): Likewise.
* kern/ipc_mig.c (syscall_vm_advice): New function. This is optimization
function for RPC that is processed by kernel.
* kern/syscall_sw.c (syscall_vm_advice): Add function prototype.
(mach_trap_table): Add syscall_vm_advice to trap table.
* vm/memory_object.c (memory_object_set_advice): New function. Sets memory
advice for memory object.
(memory_object_get_advice): New function. Returns memory advice of memory
object.
* vm/vm_user.c (vm_advise): New function. Wrapper for vm_map_advice.
* vm/vm_map.h (vm_map_advice): Add function prototype.
* vm/vm_map.c (vm_map_advice): New function. Sets memory advice for memory
range.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Mach
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Mach branch, mplaneta/gsoc12/review, created. e1a950b2649f056330cacf5016c91a4f8653f49c,
Maksym Planeta <=