History log of /barrelfish-master/kernel/arch/x86_64/page_mappings_arch.c
Revision Date Author Comments
# c13871c6 19-Jul-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

x86_64: fail or attempt to map page-tables read/write

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 9bd8d1d5 03-Apr-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 499a989b 24-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: implement access_ok() to check user pointer validity

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 07b0d228 18-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: mask write flag on page table when it is mapped as data page

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# a910bcf4 22-Jun-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: print raw values of large and huge page ptes

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# e0c7abf9 22-Jun-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: fix offset calculation in page_mappings_modify_flags

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# c8597501 17-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: allow dump of page tables around provided virtual address

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# a6b47d62 17-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: Add assertion about mapping cap type

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 5bf612d0 10-Mar-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: paging_copy_remap: add offset to dest addr for memcpy

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 1c079728 04-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: update copy_remap invocation implementation to use mapping caps

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 31736bdc 07-Mar-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: fix remaining merge errors in vspace management code

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 30b6237b 18-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T167: improvements to copy-on-write benchmark.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# e7a11470 08-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T166: implement cloning of pte pages using spacejmp vnode_inherit

Closes T166

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# bafcef68 27-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

paging: don't use devicetlbs for the iommu context tables

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# b76150a5 16-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: implementing support to identify and map endpoint caps

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 5b89c3d3 12-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: properly setting the VT-d domain id

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 6f321005 28-Feb-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: adding capability definitions for the Intel VT-d IOMMU root and context tables

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# a2f1e286 23-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T82: checkpoint. Guest domain up. Need to implement hypervisor service.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 056a62a9 20-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T81: implement simple test that maps a 1G page without kernel interaction.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# f03d19ec 28-Nov-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Reintroduce computed selective flush in modify flags

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 0f948d6a 11-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T77: Implement selective TLB flushing hint for modify_flags.

Implement hint for selective TLB flushing and use it in Appel benchmark.
Additionally add a pmap tuning global to make benchmarking easier.

Expose pmap selective flushing global only when libbarrelfish is compiled with
PMAP_SELECTIVE_FLUSH_DEBUG.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# a2c23522 05-Mar-2015 Gerd Zellweger <mail@gerdzellweger.com>

Remove print.

Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>


# 5ff7b941 03-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: print rw, dirty and accessed bits when dumping page tables.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 24c6c9fa 27-Feb-2015 Gerd Zellweger <mail@gerdzellweger.com>

Trying to map PML4.

Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>


# f777d365 27-Feb-2015 Gerd Zellweger <mail@gerdzellweger.com>

kernel,x86_64: make sure page-mapped page tables are never writeable from user space.

Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>


# 0782f5f1 31-Jul-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: remove LOG_INFO level output when trying to map over existing entry

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 85102562 31-Jul-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: remove LOG_INFO level output when trying to map over existing entry

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 29734f4d 11-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: capabilities: mapping types: remove offset field and switch to ptable+entry

To eliminate the need for looking up page table capabilities by address when
cleaning up mappings etc, we switch the mapping capability types to hold a
pointer to the page table capability and the entry in the capability instead
of just a pointer to the first page table entry which corresponds to the
mapping.

To make room for the additional two bytes, we remove the offset into the
mapped capability which was present in the mappings but never used.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# ec1cf271 04-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: fix refactored modify_flags()

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 68a0de7f 07-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T166: fix vnode_modify_flags

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# f5426458 06-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T166: x86_64: implement vnode_modify_flags

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 6ffd5421 11-Oct-2016 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T306: Rename mapping.frame to mapping.cap

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>


# dbb93e82 27-Sep-2016 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T291: Implement offset in mapping capabilities.

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>


# 17948f60 22-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258, T264, T270: Implement two-level cspace layout using L1/L2 CNode objects.

distops functionality is NYI.

This commit also makes the root cnodes explicit for sys_map(), closes T270.

Notable changes:
* LRPC LMP endpoints are regular capabilities in L2 cnode, no longer in root
cnode.
* Capability operations take a capability address for the root cnode relative
to which capability addresses are to be resolved. The root cnode capability
address must be resolvable in the current domains cspace.

Closes T264.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 9004e9b3 13-Jun-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: fix paging_dump_tables()

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# fc7fc8de 16-Dec-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: change PhysAddr, RAM, Frame, DevFrame and VNode_* cap types to have size in bytes

This only changes the actual struct capability reprensentation for these
types. Most of the code dealing with these types now uses log2ceil(bits) to
set the new `bytes` field.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# f3231919 11-Feb-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T207: Implement local_phys_is_valid() and call this in paging_dump_tables()

Closes T207.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 21afc27f 23-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: x86: add assertion about mapping cap being NULL to caps_copy_to_vnode

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 35f24ce4 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: Update x86_32 to mapping capability interface.

Also move page_mappings_unmap() to paging_generic.c

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 1afe32bb 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: change vnode_unmap() to only take ptable and mapping caps

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 0a849360 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: Implement modify_flags() on mapping cap

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 11b0b1a0 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: change vnode_unmap() to take ptable and mapping cap as arguments

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# e6798857 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: x86_64: reduce verbosity of mapping code + add better error handling.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# a790c61b 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: caps_copy_to_vnode: fix debug output

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 88731906 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: Remove mapping_info and rewrite code that depended on it.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 2025900d 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: x86_64: implement creation of mapping cap

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 7a7afdec 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: kernel unmarshalling of mapping cap slot

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# e0c78b41 11-Jun-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

x86: implement modify flags for x86_32 and improve modify flags for x86_64.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 994fac93 17-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: fixed error handling in modify_flags.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 47cce963 11-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T77: Implement selective TLB flushing hint for modify_flags.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 0323e3cd 03-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T73: fix modify_flags for parts of region + test.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 2695e30f 23-Feb-2015 Reto Achermann <reto.achermann@inf.ethz.ch>

adding support for modify flags on large/huge pages

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 940083e4 04-Aug-2014 Simon Gerber <simon.gerber@hp.com>

x86_64: kernel: cleanup of page table dumping.

paging_dump_tables now finds the first pml4 entry of the "identity"-mapped RAM
and stops displaying page tables for all of it based on the offset configured
in /kernel/include/arch/x86_64/offset_targets.h.

We now also properly cast the base addresses of large/huge pages to genpaddr_t
before bitshifting to avoid sign extending. This is necessary because
bitfield fields are implicitly plain ints.

Signed-off-by: Simon Gerber <simon.gerber@hp.com>


# 634f22c3 11-Jul-2014 Simon Gerber <simon.gerber@hp.com>

x86_64: kernel: cleanup trailing spaces.

Signed-off-by: Simon Gerber <simon.gerber@hp.com>


# 221216f3 16-Jun-2014 Simon Gerber <simon.gerber@hp.com>

kernel: x86_64: updated paging_dump_tables to understand large/huge pages.

Signed-off-by: Simon Gerber <simon.gerber@hp.com>


# 7e3c9de3 16-Jun-2014 Simon Gerber <simon.gerber@hp.com>

x86_64: fixed unmap last leaf, added code to allow users to easily map large/huge pages.

Signed-off-by: Simon Gerber <simon.gerber@hp.com>


# e25a61a8 01-Dec-2013 Andreas Dillier <dilliera@ethz.ch>

Largepage repository

Fixing the issue with the repository not having a history

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# ad287e03 24-Nov-2013 Andreas Dillier <dilliera@ethz.ch>

Added large page capabilities to the x86 architecture.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 5a3f60f4 06-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T73: do full TLB flush when modifying flags.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# d5b4ded3 03-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: Fix and deduplicate cte_for_cap().

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 1bea18c6 12-Jan-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: dynamically compute where kernel VA starts when dumping ptables.


# 37a8558c 26-Nov-2014 Reto Achermann <reto.achermann@inf.ethz.ch>

Cleanup of Xeon Phi Kernel:

Merged duplicated code from k1om architecture with the X86_64 architecture.
No-longer files in arch/k1om have been deleted.


# 115f1994 29-Oct-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Moved BIOS mmap cleanup to shared x86 code. Call from both x86_64 and x86_32 startup code.


# ce11fe54 23-Oct-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Various small fixes (some based on clang errors).


# e3a7ce57 30-Apr-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

paging: partially fixed unmap in floating page tables.


# c3911b16 22-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added modify_flags test. Fixed missing local_phys_to_mem in kernel modify_flags.


# 81e3710f 20-Aug-2014 Stefan Kaestle <stefan.kaestle@inf.ethz.ch>

Second set of patches for Bulk Transfer DSL project

See commit 854eafa


# c32f7f74 30-Apr-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

paging: partially fixed unmap in floating page tables.


# d5049565 27-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Flush affected TLB entries on modify_flags.


# 8ae4abce 22-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added modify_flags test. Fixed missing local_phys_to_mem in kernel modify_flags.


# d1bfdab1 27-Feb-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

x86: fixed paging_dump_tables potentially falsely sign extending paddrs.


# 7bfd8783 30-Jan-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: removed duplicate return statement in page_mappings_modify_flags.


# c0763898 18-Jan-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: Implemented modifying flags for parts of mapped regions.


# 3962edb6 27-Nov-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

Cleanup function names and converted printfs to debug() in kernel component of new memory interface.


# b84ef3ff 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86_64: Added missing include in kernel page_mappings_arch.c


# 5cd903c4 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86_64: Fixed comment.


# 8120cd4b 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86: Changed TLB flushing to simple hybrid scheme.


# 9b171ed1 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86: Fixed kernel to use invlpg for TLB flushing.


# 16a3ba1b 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86: Added mapped capability in unmap syscall arguments.


# dbbacf60 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Fixed read_pt_entry in page_mappings_arch.


# 0f20f2d4 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Moved debug printfs.


# 01c31453 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86_32: Implemented missing parts of new kernel memory system.


# e17d594d 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86_64: Cleanup kernel page mapping code.


# 4f3a98cf 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Removed old code in kernel/page_mappings_arch.c


# ff216c47 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Fixed missing vregion_destroy in pci main().


# 60d66922 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

New KPI for unmap.


# 77aa4c20 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

New KPI bits for map on kernel side.


# 247b24cb 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Implemented new map KPI (libbarrelfish end).


# 422cbdc7 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Implemented new VNode_Map syscall.


# 1a189ccf 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

More debug output in page_mappings_arch (disabled).


# a0e28164 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added code to dump hardware page tables from user space.


# d293fe53 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added unmap on cap_delete for pmem capabilities.


# 96df4814 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Implemented unmap with checks. Fixed unmap_region to unmap each frame individually.


# 184b9dcb 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86_64: Added debug output in page table manipulation code.


# 73c69683 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Implemented mapping tracking when unmapping. Breaks for mappings that span more than 2 leaf ptables.


# 3aafc963 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added metadata for mappings spanning 2 leaf ptables.


# 54e7593f 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Barrelfish (standard config) boots with 1 mapping per cap copy.


# 7d43f8bb 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Removed unnecessary call to compile_vaddr().


# f7f6b6e5 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added vm_modify_mapping syscall on pmem capabilities. Also lots of debugging printfs.


# 914f1fce 22-Nov-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

Fixed compile_vaddr(). Cleaned up new code.


# c9ea19af 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added hacky mapping tracking in x86_64 page_mappings_arch.c


# 9299dcef 08-Jul-2011 Stefan Kästle <stefan.kaestle@inf.ethz.ch>

Initial version of public stable barrelfish repository.