History log of /dflybsd-src/sys/platform/pc64/include/vmparam.h (Results 1 – 25 of 29)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.4.0, v6.4.0rc1, v6.5.0, v6.2.2, v6.2.1, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2
# 3206d887 25-Jun-2019 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Increase elf limits

* Increase the MAXTSIZ default from 256MB to 32GB. Certain debug
executables, such as chromium, exceeded the original limit.

* Leave the default data limit at 128MB

kernel - Increase elf limits

* Increase the MAXTSIZ default from 256MB to 32GB. Certain debug
executables, such as chromium, exceeded the original limit.

* Leave the default data limit at 128MB for the moment, but it will
be increased as soon as we work out low-memory hinting vs heap
allocation.

show more ...


Revision tags: v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3
# 4837705e 03-May-2019 Matthew Dillon <dillon@apollo.backplane.com>

pthreads and kernel - change MAP_STACK operation

* Only allow new mmap()'s to intrude on ungrown MAP_STACK areas when
MAP_TRYFIXED is specified. This was not working as intended before.
Adjust

pthreads and kernel - change MAP_STACK operation

* Only allow new mmap()'s to intrude on ungrown MAP_STACK areas when
MAP_TRYFIXED is specified. This was not working as intended before.
Adjust the manual page to be more clear.

* Make kern.maxssiz (the maximum user stack size) visible via sysctl.

* Add kern.maxthrssiz, indicating the approximate space for placement
of pthread stacks. This defaults to 128GB.

* The old libthread_xu stack code did use TRYFIXED and will work
with the kernel changes, but change how it works to not assume
that the user stack should suddenly be limited to the pthread stack
size (~2MB).

Just use a normal mmap() now without TRYFIXED and a hint based on
kern.maxthrssiz (defaults to 512GB), calculating a starting address
hint that is (_usrstack - maxssiz - maxthrssiz).

* Adjust procfs to report MAP_STACK segments as 'STK'.

show more ...


Revision tags: v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc
# d30a28dd 01-Feb-2018 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix kernel minidumps

* Refactor minidumps. Fix an overflows due to KVM now being 8TB, fix
improper pdp[] array calculations (cropped up when we want to > 1 PML4e
entry for the kernel),

kernel - Fix kernel minidumps

* Refactor minidumps. Fix an overflows due to KVM now being 8TB, fix
improper pdp[] array calculations (cropped up when we want to > 1 PML4e
entry for the kernel), and refactor the page table entry handling code
to improve efficiency and reduce the dump size.

If we had kept the original pte mapping in the minidump it would have
required ~16GB of disk space JUST to hold a pte array that is mostly 0's.
Now it only requires ~2MB.

Dumping performance is improved because the page table array is primarily
flushed to storage in 4KB block sizes, and now only 2MB or so is written
out in this manner.

* minidump now dumps the PDP array of PD entries (representing 1GB each)
for the entire system VA space (user and kernel) - 256TB. This requires
512*512*8 = 2MB of storage.

PD pages and PT pages are no longer linearized into an array in the
minidump. Instead, their physical addresses are included in the dump
map and libkvm accesses the PTEs through the physical map.

NOTE: Only kernel memory proper is actually populated at this time, but
this leaves the door open for e.g. dumping more information without having
to change the minidump format again.

* Revamp the minidump header, magic string, and version to address the new
reality. libkvm should still be able to recognize the old minidump
format, as well as now the new one.

Reminded-by: everyone

show more ...


# 8ff9866b 04-Dec-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Expand physical memory support to 64TB

* Make NKPML4E truly programmable and change the default from 1
PDP page to 16 PDP pages. This increases KVM from 512G to
8TB, which should be en

kernel - Expand physical memory support to 64TB

* Make NKPML4E truly programmable and change the default from 1
PDP page to 16 PDP pages. This increases KVM from 512G to
8TB, which should be enough to accomodate a maximal 64TB
configuration.

Note that e.g. 64TB of physical ram certainly requires more
than one kernel PDP page, since the vm_page_array alone
would require around 2TB, never mind everything else!

PDP entries in the PML4E (512 total @ 512GB per entry):
256 User space
112 (unused, avail for NKPML4E)
128 DMAP (64TB max physical memory)
16 KVM NKPML4E default (8TB) (recommend 64 max)

* Increase the DMAP from 64 PDP pages to 128 PDP pages, allowing
support for up to 64TB of physical memory.

* Changes the meaning of KPML4I from being 'the index of the only
PDP page in the PML4e' to 'the index of the first PDP page in
the PML4e'. There are NKPML4E PDP pages starting at index KPML4I.

* NKPDPE can now exceed 512. This is calculated to be the maximmum
number of PD pages needed for KVM, which is now (NKPML4E*NPDPEPG-1).

We now pre-allocate and populate only enough PD pages to accomodate
the page tables we are pre-installing. Those, in turn, are calculated
to be sufficient for bootstrapping mainly vm_page_array and a large
initial set of pv_entry structures.

* Remove nkpt, it was not being used any more.

show more ...


Revision tags: v5.0.2, v5.0.1
# f70051b1 29-Oct-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix boot issues with > 512GB of ram

* Fix DMAP installation issues for kernels with > 512GB of ram.
The page table was not being laid out properly for PML4e
entries past the first one.

kernel - Fix boot issues with > 512GB of ram

* Fix DMAP installation issues for kernels with > 512GB of ram.
The page table was not being laid out properly for PML4e
entries past the first one.

* Fix early panic reporting. Conditionalize the lapic access as the
lapic might not exist yet.

* Tested to 1TB of ram. Theoretically DragonFlyBSD can support up
to 32TB of ram (and slightly less than ~64TB with one #define
change).

Reported-by: zrj
Testing-by: zrj

show more ...


Revision tags: v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1
# 11ba7f73 10-Aug-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Lower VM_MAX_USER_ADDRESS to finalize work-around for Ryzen bug

* Reduce VM_MAX_USER_ADDRESS by 2MB, effectively making the top 2MB of the
user address space unmappable. The user stack n

kernel - Lower VM_MAX_USER_ADDRESS to finalize work-around for Ryzen bug

* Reduce VM_MAX_USER_ADDRESS by 2MB, effectively making the top 2MB of the
user address space unmappable. The user stack now starts 2MB down from
where it did before. Theoretically we only need to reduce the top of
the user address space by 4KB, but doing it by 2MB may be more useful for
future page table optimizations.

* As per AMD, Ryzen has an issue when the instruction pre-fetcher crosses
from canonical to non-canonical address space. This can only occur at
the top of the user stack.

In DragonFlyBSD, the signal trampoline resides at the top of the user stack
and an IRETQ into it can cause a Ryzen box to lockup and destabilize due
to this action. The bug case was, basically two cpu threads on the same
core, one in a cpu-bound loop of some sort while the other takes a normal
UNIX signal (causing the IRETQ into the signal trampoline). The IRETQ
microcode freezes until the cpu-bound loop terminates, preventing the
cpu thread from being able to take any interrupt or IPI whatsoever for
the duration, and the cpu may destabilize afterwords as well.

* The pre-fetcher is somewhat heuristical, so just moving the trampoline
down is no guarantee if the top 4KB of the user stack is mapped or mappable.
It is better to make the boundary unmappable by userland.

* Bug first tracked down by myself in early 2017. AMD validated the bug
and determined that unmapping the boundary page completely solves the
issue.

* Also retain the code which places the signal trampoline in its own page
so we can maintain separate protection settings for the code, and make it
read-only (R+X).

show more ...


Revision tags: v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc
# 77c48adb 06-Jan-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Refactor phys_avail[] and dump_avail[]

* Refactor phys_avail[] and dump_avail[] into a more understandable
structure.


# aedf5523 28-Dec-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Increase KVM from 128G to 511G, further increase maximum swap

* Increase KVM (Kernel Virtual Memory) to the maximum we currently
support. Up to half of it can be used for swblock structu

kernel - Increase KVM from 128G to 511G, further increase maximum swap

* Increase KVM (Kernel Virtual Memory) to the maximum we currently
support. Up to half of it can be used for swblock structures
(SWAPMETA in vmstat -z). This allows the following swap maximums.

128G of ram - 15TB of data can be swapped out.
256G of ram - 30TB of data can be swapped out.
512G+ of ram - 55TB - this is the maximum we can support swapped out.

* We can support > 512G of KVM in the future with only a bit of work on
how KVM is reserved.

* Remove some debugging code.

show more ...


Revision tags: v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1
# 5e700a85 21-Nov-2014 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Increase default MAXTSIZ from 128M to 256M

* Increase the default max text size from 128m to 256m. Note that this
value can also be overridden in /boot/loader.conf via kern.maxtsiz.

* C

kernel - Increase default MAXTSIZ from 128M to 256M

* Increase the default max text size from 128m to 256m. Note that this
value can also be overridden in /boot/loader.conf via kern.maxtsiz.

* Currently only chrome compiled w/ full debugging has a text size
which exceeds 128M. The normally compiled chrome is hitting 93MB
though so we might as well up the limit now.

show more ...


Revision tags: v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.4.3
# 8cd7f47b 08-Aug-2013 François Tigeot <ftigeot@wolfpond.org>

kernel: Add VM_MAX_ADDRESS and VM_MIN_ADDRESS constants


Revision tags: v3.4.2, v3.4.1, v3.4.0, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


# 33fb3ba1 10-Nov-2011 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Increase maximum supported physical memory to 32TB

* Increase the maximum supported physical memory to 32TB (untested), by
increasing the number of DMAP PDPs we reserve in the PML4E from

kernel - Increase maximum supported physical memory to 32TB

* Increase the maximum supported physical memory to 32TB (untested), by
increasing the number of DMAP PDPs we reserve in the PML4E from 1 to 32.

show more ...


# 701c977e 26-Oct-2011 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Rewrite the x86-64 pmap code

* Use unassociated VM pages (without a VM object) for all page table pages.

* Remove kptobj and pmap->pm_pteobj.

* For the moment implement a Red-Black tree f

kernel - Rewrite the x86-64 pmap code

* Use unassociated VM pages (without a VM object) for all page table pages.

* Remove kptobj and pmap->pm_pteobj.

* For the moment implement a Red-Black tree for pv_entry_t manipulation.
Revamp the pindex to include all page table page levels, from terminal
pages to the PML4 page. The hierarchy is now arranged via the PV system.

* As before, the kernel page tables only use PV entries for terminal pages.

* Refactor the locking to allow blocking operations during deep scans.
Individual PV entries are now locked and critical PMAP operations do not
require the pmap->pm_token. This should greatly improve threaded
program performance.

* Fix kgdb on the live kernel (pmap_extract() was not handling short-cutted
page directory pages).

show more ...


Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0
# c6ffff80 07-Nov-2009 Aggelos Economopoulos <aoiko@cc.ece.ntua.gr>

Merge branch 'master' of git://chlamydia.fs.ei.tum.de/dragonfly


# b2b3ffcd 04-Nov-2009 Simon Schubert <corecode@dragonflybsd.org>

rename amd64 architecture to x86_64

The rest of the world seems to call amd64 x86_64. Bite the bullet and
rename all of the architecture files and references. This will
hopefully make pkgsrc build

rename amd64 architecture to x86_64

The rest of the world seems to call amd64 x86_64. Bite the bullet and
rename all of the architecture files and references. This will
hopefully make pkgsrc builds less painful.

Discussed-with: dillon@

show more ...


# 3f3709c3 07-Nov-2009 Jordan Gordeev <jgordeev@dir.bg>

Revert "rename amd64 architecture to x86_64"

This reverts commit c1543a890188d397acca9fe7f76bcd982481a763.

I'm reverting it because:
1) the change didn't get properly discussed
2) it was based on

Revert "rename amd64 architecture to x86_64"

This reverts commit c1543a890188d397acca9fe7f76bcd982481a763.

I'm reverting it because:
1) the change didn't get properly discussed
2) it was based on false premises:
"The rest of the world seems to call amd64 x86_64."
3) no pkgsrc bulk build was done to test the change
4) the original committer acted irresponsibly by committing
such a big change just before going on vacation.

show more ...


# c1543a89 04-Nov-2009 Simon Schubert <corecode@dragonflybsd.org>

rename amd64 architecture to x86_64

The rest of the world seems to call amd64 x86_64. Bite the bullet and
rename all of the architecture files and references. This will
hopefully make pkgsrc build

rename amd64 architecture to x86_64

The rest of the world seems to call amd64 x86_64. Bite the bullet and
rename all of the architecture files and references. This will
hopefully make pkgsrc builds less painful.

Discussed-with: dillon@

show more ...


Revision tags: v2.5.1, v2.4.1, v2.5.0, v2.4.0
# bfc09ba0 25-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

AMD64 - Fix format conversions and other warnings.


# 7ce8f2fa 12-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly


# a2a636cc 12-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

AMD64 - Sync machine-dependent bits from smtms.

Submitted-by: Jordan Gordeev <jgordeev@dir.bg>


Revision tags: v2.3.2
# 2a2493da 08-Jun-2009 Aggelos Economopoulos <aoiko@cc.ece.ntua.gr>

Merge branch 'master' of /home/aggelos/devel/dfly/dfly.git/


Revision tags: v2.3.1, v2.2.1
# 67553e72 26-Apr-2009 Jordan Gordeev <jgordeev@dir.bg>

amd64: first steps towards 64-bit pmap
remove 32-bit amd64 pmap
replace with work-in-progress 64-bit pmap


# 48ffc236 26-Apr-2009 Jordan Gordeev <jgordeev@dir.bg>

amd64: first steps towards 64-bit pmap
remove 32-bit amd64 pmap
replace with work-in-progress 64-bit pmap


Revision tags: v2.2.0, v2.3.0, v2.1.1, v2.0.1
# c8fe38ae 29-Aug-2008 Matthew Dillon <dillon@dragonflybsd.org>

AMD64 - Sync AMD64 support from Jordan Gordeev's svn repository and
Google SOC project. This work is still continuing but represents
substantial progress in the effort.

With this commit the world b

AMD64 - Sync AMD64 support from Jordan Gordeev's svn repository and
Google SOC project. This work is still continuing but represents
substantial progress in the effort.

With this commit the world builds and installs, the loader is able to
boot the kernel, and the kernel is able to initialize, probe devices, and
exec the init program. The init program is then able to run until it hits
its first fork(). For the purposes of the GSOC the project is being
considered a big success!

The code has been adapted from multiple sources, most notably Peter Wemm
and other peoples work from FreeBSD, with many modifications to make it
work with DragonFly. Also thanks go to Simon Schubert for working on gdb
and compiler issues, and to Noah Yan for a good chunk of precursor work
in 2007.

While Jordan wishes to be modest on his contribution, frankly we would
not have been able to make this much progress without the large number
of man-hours Jordan has dedicated to his GSOC project painstakingly gluing
code together, tracking down issues, and progressing the boot sequence.

Submitted-by: Jordan Gordeev <jgordeev@dir.bg>

show more ...


# 39923942 21-Aug-2007 Simon Schubert <corecode@dragonflybsd.org>

Resurrect headers for sys/platform/pc64/include from CVS Attic.

Patch and mark them as platform specific.

On-behalf-of: Noah Yan <noah.yan@gmail.com>
Submitted-by: Noah Yan <noah.yan@gmail.com>


12