barrelfish
5 years agoskb: adding query for locality information release2015-06-09
Reto Achermann [Thu, 4 Jun 2015 12:20:33 +0000]
skb: adding query for locality information

acpi is adding locality information now. the query allows users
to obtain a list of distances between the numa nodes

extended system topology query to return the list of distances.

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

5 years agolibnuma: adding support for locality information and node distances
Reto Achermann [Thu, 4 Jun 2015 12:18:34 +0000]
libnuma: adding support for locality information and node distances

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

5 years agoACPI: Adding support to parse the locality tables
Reto Achermann [Thu, 4 Jun 2015 09:56:32 +0000]
ACPI: Adding support to parse the locality tables

added table definitions for the memory topology tables.

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

5 years agoarm: unify arm.h header for all arm 32bit flavours.
Simon Gerber [Wed, 3 Jun 2015 14:52:47 +0000]
arm: unify arm.h header for all arm 32bit flavours.

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

5 years agonewlib: T110: fix libc Hakefile to prefer machine-specific impls over generic.
Simon Gerber [Wed, 3 Jun 2015 09:37:56 +0000]
newlib: T110: fix libc Hakefile to prefer machine-specific impls over generic.

This implements the proposed solution 3 in T110 which is the simplest to do
right now. However we should consider implementing one of the other solutions
at a later date.

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

5 years agoarmv5: improved page table dumping.
Simon Gerber [Mon, 1 Jun 2015 16:48:23 +0000]
armv5: improved page table dumping.

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

5 years ago32bit: fixup printf format specifiers.
Simon Gerber [Mon, 1 Jun 2015 15:16:39 +0000]
32bit: fixup printf format specifiers.

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

5 years agonewlib: fixup missing bits + make compile for 32bit.
Simon Gerber [Mon, 1 Jun 2015 15:16:19 +0000]
newlib: fixup missing bits + make compile for 32bit.

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

5 years agonewlib: fixup patch for new newlib version and adjust call sites.
Simon Gerber [Mon, 1 Jun 2015 08:17:43 +0000]
newlib: fixup patch for new newlib version and adjust call sites.

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

5 years agoremove old newlib.
Simon Gerber [Mon, 1 Jun 2015 13:28:24 +0000]
remove old newlib.

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

5 years agoReintegrate newlib 1.19.0 modifications for Barrelfish.
Simon Gerber [Mon, 1 Jun 2015 09:14:32 +0000]
Reintegrate newlib 1.19.0 modifications for Barrelfish.

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

5 years agoMerge tag 'newlib-snapshot-20150423' from git://sourceware.org/git/newlib-cygwin...
Simon Gerber [Mon, 1 Jun 2015 14:35:11 +0000]
Merge tag 'newlib-snapshot-20150423' from git://sourceware.org/git/newlib-cygwin.git as 'lib/newlib'

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

5 years agoSquashed 'lib/newlib/' content from commit a4e9d13
Simon Gerber [Mon, 1 Jun 2015 14:35:11 +0000]
Squashed 'lib/newlib/' content from commit a4e9d13

git-subtree-dir: lib/newlib
git-subtree-split: a4e9d133a8a6cb9a4a5302005c974cbc6b82de42

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

5 years agorename newlib{,-1.19.0}.
Simon Gerber [Mon, 1 Jun 2015 08:16:52 +0000]
rename newlib{,-1.19.0}.

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

5 years agokernel: T78: add notice about bug report on failure.
Simon Gerber [Tue, 26 May 2015 09:31:12 +0000]
kernel: T78: add notice about bug report on failure.

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

5 years agolibvirtio: Fix error check in virtio_vq_host_poll(). release2015-05-22
Simon Gerber [Fri, 22 May 2015 13:31:09 +0000]
libvirtio: Fix error check in virtio_vq_host_poll().

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

5 years agoUpdate AUTHORS file according to commit authors.
Simon Gerber [Fri, 22 May 2015 13:26:21 +0000]
Update AUTHORS file according to commit authors.

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

5 years agousb: adding the correct offset to the interrupt table of the OHCI controller
Reto Achermann [Fri, 22 May 2015 08:51:01 +0000]
usb: adding the correct offset to the interrupt table of the OHCI controller
     closes T99

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

5 years agolibdma: enabling msix support for IOAT. [Closes T101]
Reto Achermann [Tue, 19 May 2015 14:06:23 +0000]
libdma: enabling msix support for IOAT. [Closes T101]

- enabling of MSI-X interrupt support for IOAT DMA
- movied definition of pci_address into pci.h
- interface of pci service takes pci address now

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

5 years agoMake httpperf use emmentaler machines.
Gerd Zellweger [Tue, 19 May 2015 11:28:03 +0000]
Make httpperf use emmentaler machines.

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

5 years agoFix qemu 32-bit names to make it consistent with others.
Gerd Zellweger [Tue, 19 May 2015 11:06:04 +0000]
Fix qemu 32-bit names to make it consistent with others.

Qemu had suffix _x32 while regular machines had suffix -32.
Now all have suffix -32.

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

5 years agoFix hakefile.
Gerd Zellweger [Mon, 18 May 2015 12:11:07 +0000]
Fix hakefile.

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

5 years ago[T96, T88] Added initial pthreads join test program.
Gerd Zellweger [Fri, 15 May 2015 09:36:26 +0000]
[T96, T88] Added initial pthreads join test program.

This is a test-program that shows how the mutex locking
causes a dead-lock to occur when repeatedly creating and
joining threads().

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

5 years agoRevert b51b15e e7b3175. Closes T88 T96.
Gerd Zellweger [Mon, 18 May 2015 11:38:29 +0000]
Revert b51b15e e7b3175. Closes T88 T96.

mutex_lock und unlock was correct in its original implementation:
lock will put a thread in the mutex queue in case some thread already
has the mutex locked, and mutex_unlock is guaranteed to wake-up one of the
waiting threads by taking it from mutex->queue. mutex->locked will
remain set to 1 in case we wakeup a thread from unlock() and access to
the mutex structure is always protected by the mutex->lock spinlock.

This reverts commit e7b3175ba8fefbe2fbbf426ac22be509c000febc.
This reverts commit b51b15ec83fd052f105e21de1fe7714e3d0d6381.

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

5 years agoFix b51b15e: re-disable dispatcher in thread_mutex_lock* and thread_sem_wait().
Simon Gerber [Mon, 11 May 2015 12:21:34 +0000]
Fix b51b15e: re-disable dispatcher in thread_mutex_lock* and thread_sem_wait().

Re-disable dispatcher after returning from
thread_block_and_release_spinlock_disabled() and also fix thread_sem_wait() to
correctly block until semaphore can be acquired.

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

5 years agoChange default page size for morecore back to 4kB.
Simon Gerber [Mon, 11 May 2015 12:20:56 +0000]
Change default page size for morecore back to 4kB.

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

5 years agolibbarrelfish: vspace_mmu_aware: fix frame_alloc() retry condition.
Simon Gerber [Thu, 7 May 2015 13:41:39 +0000]
libbarrelfish: vspace_mmu_aware: fix frame_alloc() retry condition.

Fix retry condition when connection to memory server not established yet.

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

5 years agomultihop: fix cap ownership tranfer over multihop channel.
Simon Gerber [Wed, 6 May 2015 15:56:16 +0000]
multihop: fix cap ownership tranfer over multihop channel.

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

5 years agodistops: fix typos and small bugs in delete state machine.
Simon Gerber [Wed, 6 May 2015 15:55:48 +0000]
distops: fix typos and small bugs in delete state machine.

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

5 years agoharness: Add babybel4 to eth machines.
Simon Gerber [Tue, 5 May 2015 17:14:28 +0000]
harness: Add babybel4 to eth machines.

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

5 years agoFix size of argument buffer.
Gerd Zellweger [Tue, 5 May 2015 16:01:28 +0000]
Fix size of argument buffer.

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

5 years agoarmv7: fix #ifdef in paging_tlb_flush_range().
Simon Gerber [Mon, 4 May 2015 15:38:17 +0000]
armv7: fix #ifdef in paging_tlb_flush_range().

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

5 years agoMake SKB behaviour more robust in case of overflow.
Gerd Zellweger [Mon, 4 May 2015 15:18:56 +0000]
Make SKB behaviour more robust in case of overflow.

Also increase buffer size because it tended to overflow for larger queries.

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

5 years agoHanding over alignment paramenter of morecore when spanning
Reto Achermann [Thu, 19 Feb 2015 09:32:28 +0000]
Handing over alignment paramenter of morecore when spanning

Spanning domains resulted in a NULL-pointer dereferencing
in when initializing libbarrelfish and parsing arguments
for the morecore alignment. Added new parameter to pass
the alignment of the spanning domain to the new dispatcher
on the remote core.

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

5 years agox86_32: only allow larger page sizes for morecore when PSE enabled.
Simon Gerber [Mon, 4 May 2015 13:29:19 +0000]
x86_32: only allow larger page sizes for morecore when PSE enabled.

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

5 years agoarmv5: make cpu driver run again.
Simon Gerber [Mon, 4 May 2015 13:13:36 +0000]
armv5: make cpu driver run again.

Note: this is not a real fix, it does not implement the switch cases in
paging_generic.c:paging_tlb_flush_range() correctly.

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

5 years agoFix Null pointer dereference in the spawnd daemon.
yauhenk [Mon, 4 May 2015 13:00:36 +0000]
Fix Null pointer dereference in the spawnd daemon.

External symptoms: crash during call of the spawn_wait_coreid() called with
the domain id of already closed domain.

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

5 years agoBuild order fix
yauhenk [Mon, 4 May 2015 12:58:47 +0000]
Build order fix

On some machines Barrelfish doesn't build due to
the missed dependency in the barrelfish lib hakefile.

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

5 years agoFix large page code so it compiles on 32bit / ARM.
Simon Gerber [Mon, 4 May 2015 09:50:52 +0000]
Fix large page code so it compiles on 32bit / ARM.

Note: the ARM version does not support large pages properly at this point.

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

5 years agolibbarrelfish: fix morecore heap with 1GB pages.
Simon Gerber [Thu, 30 Apr 2015 17:23:34 +0000]
libbarrelfish: fix morecore heap with 1GB pages.

This fixes the vspace_mmu_aware vregion to actually allocate 1GB pages if
requested through morecore=0x40000000 on the command line.

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

5 years agoMerge large page support code.
Simon Gerber [Mon, 4 May 2015 09:31:03 +0000]
Merge large page support code.

This code was originally written by Andreas Dillier as a deliverable for his
Bachelor thesis at ETH Zurich in 2013. Simon Gerber then fixed and extended
the implementation of large page support while employed by HP Labs in summer
2014.
The files that contain code written while Simon was employed by HP Labs have
updated copyright notices and the relevant commits are marked with
"Signed-off-by: Simon Gerber <simon.gerber@hp.com>" (as is this merge).

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

5 years agox86_64: kernel: cleanup of page table dumping.
Simon Gerber [Mon, 4 Aug 2014 22:52:02 +0000]
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>

5 years agommu aware vspace: added sane fallback for basecn allocations.
Simon Gerber [Fri, 18 Jul 2014 00:05:01 +0000]
mmu aware vspace: added sane fallback for basecn allocations.

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

5 years agox86_64: cleaned up large page code.
Simon Gerber [Thu, 17 Jul 2014 23:39:13 +0000]
x86_64: cleaned up large page code.

Conflicts:
lib/barrelfish/init.c
lib/barrelfish/morecore.c
lib/barrelfish/target/x86_64/pmap_target.c

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

5 years agolarge page test: improvements in output.
Simon Gerber [Sat, 12 Jul 2014 00:42:41 +0000]
large page test: improvements in output.

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

5 years agox86: pmap: Added debug output to has_vnode.
Simon Gerber [Sat, 12 Jul 2014 00:23:02 +0000]
x86: pmap: Added debug output to has_vnode.

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

5 years agoClarified printfs in large page test.
Simon Gerber [Fri, 11 Jul 2014 21:33:19 +0000]
Clarified printfs in large page test.

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

5 years agolibbarrelfish: Refactored onthread init slightly.
Simon Gerber [Wed, 6 Aug 2014 00:02:12 +0000]
libbarrelfish: Refactored onthread init slightly.

Conflicts:
lib/barrelfish/init.c

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

5 years agoAdded test case to inspect processed argc/argv after libbarrelfish initialization.
Simon Gerber [Mon, 4 Aug 2014 22:58:38 +0000]
Added test case to inspect processed argc/argv after libbarrelfish initialization.

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

5 years agoAdded command line arg for overriding default heap pagesize.
Simon Gerber [Mon, 4 Aug 2014 22:50:23 +0000]
Added command line arg for overriding default heap pagesize.

Also removed the vregion flags #define for the heap region as we can infer the
necessary flags from the alignment argument to morecore_init(). We now choose
the pagesize that matches the alignment or 4kB if no match found.

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

5 years agoAdded Config.hs flag for morecore pagesize.
Simon Gerber [Mon, 4 Aug 2014 21:41:31 +0000]
Added Config.hs flag for morecore pagesize.

Conflicts:
lib/barrelfish/init.c
lib/barrelfish/morecore.c

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

5 years agoFixed morecore_reinit() to properly not remap when unnecessary.
Simon Gerber [Sat, 26 Jul 2014 00:36:07 +0000]
Fixed morecore_reinit() to properly not remap when unnecessary.

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

5 years agox86_64: pmap_map: Fixed size check to actually work for sizes >4GB.
Simon Gerber [Wed, 23 Jul 2014 01:00:58 +0000]
x86_64: pmap_map: Fixed size check to actually work for sizes >4GB.

Conflicts:
lib/barrelfish/target/x86_64/pmap_target.c

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

5 years agovspace_mmu_aware: fixed edge case in assertions.
Simon Gerber [Tue, 22 Jul 2014 01:05:57 +0000]
vspace_mmu_aware: fixed edge case in assertions.

Assertions didn't allow freeing the region starting at offset zero in the
vregion.

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

5 years agoAdded remapping functionality for malloc.
Simon Gerber [Fri, 18 Jul 2014 16:56:24 +0000]
Added remapping functionality for malloc.

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

5 years agoAdded malloc test to check whether large page magic works.
Simon Gerber [Fri, 18 Jul 2014 00:44:55 +0000]
Added malloc test to check whether large page magic works.

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

5 years agomake mmu_aware vspace code support multiple page sizes.
Simon Gerber [Thu, 17 Jul 2014 21:40:05 +0000]
make mmu_aware vspace code support multiple page sizes.

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

5 years agox86_64: cleaned up corner cases in pmap code.
Simon Gerber [Tue, 15 Jul 2014 01:51:37 +0000]
x86_64: cleaned up corner cases in pmap code.

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

5 years agox86_64: pmap: removed support code for mixed-size mappings.
Simon Gerber [Sat, 12 Jul 2014 00:37:04 +0000]
x86_64: pmap: removed support code for mixed-size mappings.

Mixed-size mappings (e.g. composing a mapping from 4k and 2M pages) don't work
on x86 unless the physical and virtual addresses have matching alignments (a
2M mapping needs both a 2M aligned virtual and physical address).  Thus we
don't support this case in the default library OS.

The kernel doesn't care though and you can roll your own system where you
allocate physical memory that matches the alignment so that the first 2M
aligned virtual address lands on a 2M aligned physical address.

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

5 years agox86_64: kernel: cleanup trailing spaces.
Simon Gerber [Sat, 12 Jul 2014 00:19:38 +0000]
x86_64: kernel: cleanup trailing spaces.

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

5 years agoCleanup of unmap error handling and proper checks for slab refilling in map.
Simon Gerber [Fri, 11 Jul 2014 21:32:49 +0000]
Cleanup of unmap error handling and proper checks for slab refilling in map.

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

5 years agoAdded unaligned mixed 4k/2M test in large page tests.
Simon Gerber [Fri, 11 Jul 2014 20:53:28 +0000]
Added unaligned mixed 4k/2M test in large page tests.

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

5 years agonewlib: libbarrelfish: properly hook up assert functionality.
Simon Gerber [Tue, 8 Jul 2014 23:59:03 +0000]
newlib: libbarrelfish: properly hook up assert functionality.

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

5 years agox86_64: pmap: cleanup and added some plumbing for mixed-size mappings.
Simon Gerber [Wed, 2 Jul 2014 21:00:16 +0000]
x86_64: pmap: cleanup and added some plumbing for mixed-size mappings.

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

5 years agox86_64: cleaned up magic constant 9 (ptable_bits) in pmap code.
Simon Gerber [Mon, 30 Jun 2014 18:51:04 +0000]
x86_64: cleaned up magic constant 9 (ptable_bits) in pmap code.

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

5 years agoFixed VREGION_FLAGS_MASK.
Simon Gerber [Mon, 30 Jun 2014 18:42:00 +0000]
Fixed VREGION_FLAGS_MASK.

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

5 years agovspace/utils.c: cleaned up trailing spaces.
Simon Gerber [Thu, 19 Jun 2014 00:22:57 +0000]
vspace/utils.c: cleaned up trailing spaces.

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

5 years agox86_32: compiles with PAE enabled.
Simon Gerber [Thu, 19 Jun 2014 00:22:15 +0000]
x86_32: compiles with PAE enabled.

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

5 years agox86_32: Added notice about CONFIG_PSE in large page test.
Simon Gerber [Wed, 18 Jun 2014 23:01:27 +0000]
x86_32: Added notice about CONFIG_PSE in large page test.

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

5 years agox86_32: kernel: cleaned up large page mapping code.
Simon Gerber [Wed, 18 Jun 2014 21:51:44 +0000]
x86_32: kernel: cleaned up large page mapping code.

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

5 years agoAdded x86_32 version of large page test.
Simon Gerber [Wed, 18 Jun 2014 21:47:11 +0000]
Added x86_32 version of large page test.

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

5 years agoproperly zero newly allocated memobj and vregion.
Simon Gerber [Wed, 18 Jun 2014 21:46:39 +0000]
properly zero newly allocated memobj and vregion.

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

5 years agox86_32: kernel: added support for large pages to paging_dump_tables.
Simon Gerber [Wed, 18 Jun 2014 21:44:14 +0000]
x86_32: kernel: added support for large pages to paging_dump_tables.

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

5 years agoRefactored pmap code for x86_{64,32}.
Simon Gerber [Wed, 18 Jun 2014 20:02:04 +0000]
Refactored pmap code for x86_{64,32}.

* factored out common code for vnode manipulation (see pmap_x86.{h,c})
* cleaned up x86_32 pmap implementation

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

5 years agoFixed paging_tlb_flush_range to compile on x86_32.
Simon Gerber [Wed, 18 Jun 2014 20:01:31 +0000]
Fixed paging_tlb_flush_range to compile on x86_32.

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

5 years agoAdded large page test.
Simon Gerber [Wed, 18 Jun 2014 17:47:08 +0000]
Added large page test.

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

5 years agox86_64: lazily clean up empty page tables when creating large / huge page mappings.
Simon Gerber [Tue, 17 Jun 2014 21:23:52 +0000]
x86_64: lazily clean up empty page tables when creating large / huge page mappings.

This enables reusing address ranges that held smaller mappings before when
creating mappings with large or huge pages.  This is necessary as we never
clean up page tables and page directories when unmapping regardless of whether
there's valid entries left in them.

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

5 years agox86_64: pmap do_map fine-grained debug output ctrl.
Simon Gerber [Tue, 17 Jun 2014 20:43:14 +0000]
x86_64: pmap do_map fine-grained debug output ctrl.

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

5 years agox86_64: fix is_same_{pdir,pdpt,pml4} functions to properly identify ranges that span...
Simon Gerber [Tue, 17 Jun 2014 20:42:53 +0000]
x86_64: fix is_same_{pdir,pdpt,pml4} functions to properly identify ranges that span exactly one table.

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

5 years agokernel: x86_64: updated paging_dump_tables to understand large/huge pages.
Simon Gerber [Tue, 17 Jun 2014 00:41:14 +0000]
kernel: x86_64: updated paging_dump_tables to understand large/huge pages.

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

5 years agox86_64: fixed unmap last leaf, added code to allow users to easily map large/huge...
Simon Gerber [Tue, 17 Jun 2014 00:19:33 +0000]
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>

5 years agox86_64: fix page sizes to be derived from sizes in bits.
Simon Gerber [Tue, 17 Jun 2014 00:17:01 +0000]
x86_64: fix page sizes to be derived from sizes in bits.

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

5 years agox86_64: cleaned up and refactored pmap unmap code.
Simon Gerber [Mon, 16 Jun 2014 19:54:42 +0000]
x86_64: cleaned up and refactored pmap unmap code.

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

5 years agox86_64: fixed selective tlb flushing page size choice.
Simon Gerber [Mon, 16 Jun 2014 19:54:02 +0000]
x86_64: fixed selective tlb flushing page size choice.

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

5 years agox86_64: cleanup of pmap do_map and supporting code.
Simon Gerber [Mon, 16 Jun 2014 18:38:45 +0000]
x86_64: cleanup of pmap do_map and supporting code.

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

5 years agox86_64: Fixed typo in determine_addr_raw.
Simon Gerber [Fri, 13 Jun 2014 23:07:21 +0000]
x86_64: Fixed typo in determine_addr_raw.

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

5 years agoKernel test that checks that we preserve page table hierarchy constraints
Simon Gerber [Fri, 13 Jun 2014 21:45:54 +0000]
Kernel test that checks that we preserve page table hierarchy constraints

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

5 years agoLargepage Code, arm addition
Andreas Dillier [Mon, 2 Dec 2013 00:59:18 +0000]
Largepage Code, arm addition

Added arm/omap4460 files, just for completeness, it does not work yet.

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

5 years agoLargepage repository
Andreas Dillier [Sun, 1 Dec 2013 23:42:50 +0000]
Largepage repository

Fixing the issue with the repository not having a history

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

5 years agoAdded large page capabilities to the x86 architecture.
Andreas Dillier [Mon, 25 Nov 2013 01:45:29 +0000]
Added large page capabilities to the x86 architecture.

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

5 years agoRemoved Shoal and Green-Marl from symbolic_targets
Stefan Kaestle [Thu, 30 Apr 2015 14:24:27 +0000]
Removed Shoal and Green-Marl from symbolic_targets

Signed-off-by: Stefan Kaestle <stefan.kaestle@inf.ethz.ch>

5 years agoFix include of if/terminal_config_defs.h - depending on the compile order it cannot...
Moritz Hoffmann [Tue, 28 Apr 2015 15:00:08 +0000]
Fix include of if/terminal_config_defs.h - depending on the compile order it cannot be included from header files.

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

5 years agoFix thread_mutex_lock* to acquire lock after unblocking waiting thread
Moritz Hoffmann [Tue, 28 Apr 2015 14:26:13 +0000]
Fix thread_mutex_lock* to acquire lock after unblocking waiting thread

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

5 years agoDuplicate definition of NAME_MAX macro
Zaheer Chothia [Mon, 20 Apr 2015 22:06:29 +0000]
Duplicate definition of NAME_MAX macro

I broke the build in rBFIaee0075101b1; this is just a temporary band-aid and
only masks the more general issue described in T58.  If you have an idea for a
better fix, please let me know.

Signed-off-by: Zaheer Chothia <zchothia@inf.ethz.ch>

5 years agoposixcompat: make pthread_once a wrapper over the version in libbarrelfish
Zaheer Chothia [Wed, 17 Dec 2014 14:08:15 +0000]
posixcompat: make pthread_once a wrapper over the version in libbarrelfish

Summary:
Both the pthread and native versions now share a single common
implementation (added in D9).  The new approach should also be faster
since it avoids a full mutex and instead only has to consult the
per-thread epoch on the common path.  I should note, I have not run
any benchmarks to confirm this and may be wrong.

Test Plan: Compiles but have not validated more thoroughly.

Differential Revision: https://code.systems.ethz.ch/D12

Signed-off-by: Zaheer Chothia <zchothia@inf.ethz.ch>

5 years agothread: add support for one-time global initialization
Zaheer Chothia [Sun, 14 Dec 2014 19:11:26 +0000]
thread: add support for one-time global initialization

Summary:
This is an action that needs to be coordinated globally but the implementation
doesn't have to be as pessimistic.  The initialization function is only run
once and the common case is checking whether it has already been run.  The idea
here is to have a fast and slow path and let each thread use a locally cached
value.

Test Plan:
Tested with the small code snippet below. Initialization function ran
correctly (and only once).  For correctness of the locking scheme I
defer to the proposal document referred to in the header comment of
`lib/barrelfish/thread_once.c`.

  lang=c
  #include <barrelfish/threads.h>

  static thread_once_t init = THREAD_ONCE_INIT;

  static void init_func(void) {
    printf("init\n");
  }

  int main() {
    thread_once(&init, init_func);
    printf("Hello World\n");
    thread_once(&init, init_func);
    return 0;
  }

Differential Revision: https://code.systems.ethz.ch/D9

Signed-off-by: Zaheer Chothia <zchothia@inf.ethz.ch>

5 years agoposixcompat: fix incorrect destruction of pthread_cond
Zaheer Chothia [Mon, 20 Apr 2015 20:24:36 +0000]
posixcompat: fix incorrect destruction of pthread_cond

The object being freed was the wrapper, which belongs to the caller and
may even have static lifetime (.data section), whereas now it correctly
relases the inner block of memory which was allocated in
`pthread_cont_init`.

(The unrelated change in mmap add a missing comma when debug is enabled.)

Signed-off-by: Zaheer Chothia <zchothia@inf.ethz.ch>

5 years agoDisable -Wshadow for thcidctest
Zaheer Chothia [Sun, 12 Apr 2015 22:56:21 +0000]
Disable -Wshadow for thcidctest

The DO_FINISH macro (defined in <thc/thc.h>) is used in nested scopes.  Once
expaned it defines a local variable multiple times which aborts the build:

  ../include/thc/thc.h:54:14: error: declaration of '_fb' shadows a previous local [-Werror=shadow-compatible-local]
       finish_t _fb;                                                       \
                ^
  ../include/thc/thc.h:61:10: note: in definition of macro 'DO_FINISH__'
       do { _CODE } while (0);                                             \
            ^
  ../usr/tests/thcidctest/thcidctest.c:95:5: note: in expansion of macro 'DO_FINISH'
       DO_FINISH({
       ^
  ../include/thc/thc.h:40:26: note: in expansion of macro 'DO_FINISH__'
   #define DO_FINISH(_CODE) DO_FINISH__(__,_CODE,0)
                            ^
  ../usr/tests/thcidctest/thcidctest.c:136:7: note: in expansion of macro 'DO_FINISH'
         DO_FINISH({
         ^
  ../include/thc/thc.h:54:14: error: shadowed declaration is here [-Werror=shadow-compatible-local]
       finish_t _fb;                                                       \
                ^
  ../include/thc/thc.h:40:26: note: in expansion of macro 'DO_FINISH__'
   #define DO_FINISH(_CODE) DO_FINISH__(__,_CODE,0)
                            ^
  ../usr/tests/thcidctest/thcidctest.c:95:5: note: in expansion of macro 'DO_FINISH'
       DO_FINISH({
       ^

Signed-off-by: Zaheer Chothia <zchothia@inf.ethz.ch>

5 years ago32bit: libbarrelfish: fix casts in new x-core thread functionality. release2015-03-17
Simon Gerber [Mon, 9 Mar 2015 15:24:17 +0000]
32bit: libbarrelfish: fix casts in new x-core thread functionality.

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

5 years agohake: minor bugfixes.
Simon Gerber [Mon, 9 Mar 2015 15:08:43 +0000]
hake: minor bugfixes.

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