<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/amd64, branch upstream/12.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=upstream%2F12.1.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=upstream%2F12.1.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2019-09-18T07:25:04Z</updated>
<entry>
<title>MFC r350463</title>
<updated>2019-09-18T07:25:04Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2019-09-18T07:25:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=fe28a2545765be30730356177fdfdf081e4c0236'/>
<id>urn:sha1:fe28a2545765be30730356177fdfdf081e4c0236</id>
<content type='text'>
  In pmap_advise(), when we encounter a superpage mapping, we first demote
  the mapping and then destroy one of the 4 KB page mappings so that there
  is a potential trigger for repromotion.  Currently, we destroy the first
  4 KB page mapping that falls within the (current) superpage mapping or the
  virtual address range [sva, eva).  However, I have found empirically that
  destroying the last 4 KB mapping produces slightly better results,
  specifically, more promotions and fewer failed promotion attempts.
  Accordingly, this revision changes pmap_advise() to destroy the last 4 KB
  page mapping.  It also replaces some nearby uses of boolean_t with bool.
</content>
</entry>
<entry>
<title>MFC r351727:</title>
<updated>2019-09-16T15:21:37Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2019-09-16T15:21:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=81af73c6ddd45a25b067c72f57b78f22f61ddc50'/>
<id>urn:sha1:81af73c6ddd45a25b067c72f57b78f22f61ddc50</id>
<content type='text'>
Replace PMAP_LARGEMAP_MAX_ADDRESS() with a more general predicate.
</content>
</entry>
<entry>
<title>MFC r348828</title>
<updated>2019-09-15T17:22:29Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2019-09-15T17:22:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0ab1d3e30e14e16ea05b500431029cf4de7eb313'/>
<id>urn:sha1:0ab1d3e30e14e16ea05b500431029cf4de7eb313</id>
<content type='text'>
  Implement an alternative solution to the amd64 and i386 pmap problem that
  we previously addressed in r348246 (and MFCed in r348479).

  This pmap problem also exists on arm64 and riscv.  However, the original
  solution developed for amd64 and i386 cannot be used on arm64 and riscv.
  In particular, arm64 and riscv do not define a PG_PROMOTED flag in their
  level 2 PTEs.  (A PG_PROMOTED flag makes no sense on arm64, where unlike
  x86 or riscv we are required to break the old 4KB mappings before making
  the 2MB mapping; and on riscv there are no unused bits in the PTE to
  define a PG_PROMOTED flag.)

  This commit implements an alternative solution that can be used on all
  four architectures.  Moreover, this solution has two other advantages.
  First, on older AMD processors that required the Erratum 383 workaround,
  it is less costly.  Specifically, it avoids unnecessary calls to
  pmap_fill_ptp() on a superpage demotion.  Second, it enables the
  elimination of some calls to pagezero() in pmap_kernel_remove_{l2,pde}().

  In addition, remove a related stale comment from pmap_enter_{l2,pde}().
</content>
</entry>
<entry>
<title>MFC r349951, r349994, r349995, r350005, r350023 (by jhibbits), r350478:</title>
<updated>2019-09-03T20:04:44Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-09-03T20:04:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=374c91e153eeeb332edc07885e24ff073108d7af'/>
<id>urn:sha1:374c91e153eeeb332edc07885e24ff073108d7af</id>
<content type='text'>
Provide protection against starvation of the ll/sc loops when accessing
userpace.
</content>
</entry>
<entry>
<title>MFC r351000: sys/{x86,amd64}: remove one of doubled ;s</title>
<updated>2019-09-03T16:26:35Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2019-09-03T16:26:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6cf19939001a811090adc2dd1bf8fc589ebd3ca9'/>
<id>urn:sha1:6cf19939001a811090adc2dd1bf8fc589ebd3ca9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r350492: vmx: use C99 bool, not boolean_t</title>
<updated>2019-09-03T16:18:07Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2019-09-03T16:18:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=abfb07274985e44fa52bfe92b43f4397710a35fe'/>
<id>urn:sha1:abfb07274985e44fa52bfe92b43f4397710a35fe</id>
<content type='text'>
Bhyve's vmm is a self-contained modern component and thus a good
candidate for use of C99 types.

Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>MFC r348446:</title>
<updated>2019-08-28T08:05:16Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2019-08-28T08:05:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b1db5e7b9812c1291f3eeffcafd5ceb6deadf049'/>
<id>urn:sha1:b1db5e7b9812c1291f3eeffcafd5ceb6deadf049</id>
<content type='text'>
makesyscalls.sh: always use absolute path for syscalls.conf

syscalls.conf is included using "." which per the Open Group:

 If file does not contain a &lt;slash&gt;, the shell shall use the search
 path specified by PATH to find the directory containing file.

POSIX shells don't fall back to the current working directory.

Submitted by:	Nathaniel Wesley Filardo &lt;nwf20@cl.cam.ac.uk&gt;
Reviewed by:	bdrewery
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D20476
</content>
</entry>
<entry>
<title>Regenerate to add @generated tag in generated files.</title>
<updated>2019-08-28T07:43:31Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2019-08-28T07:43:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1ee122aa72e6ff83b2eec716d5cc9de2e7d59bc5'/>
<id>urn:sha1:1ee122aa72e6ff83b2eec716d5cc9de2e7d59bc5</id>
<content type='text'>
This is a manual merge of r347230.
</content>
</entry>
<entry>
<title>MFC r349594, r349595, r349601: Add driver for NTB in AMD SoC.</title>
<updated>2019-08-27T04:13:22Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-08-27T04:13:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=514bfd465355af75070eab5c5c05b1755bf5d50e'/>
<id>urn:sha1:514bfd465355af75070eab5c5c05b1755bf5d50e</id>
<content type='text'>
This patch is the driver for NTB hardware in AMD SoCs (ported from Linux)
and enables the NTB infrastructure like Doorbells, Scratchpads and Memory
window in AMD SoC. This driver has been validated using ntb_transport and
if_ntb driver already available in FreeBSD.

Submitted by:	Rajesh Kumar &lt;rajesh1.kumar@amd.com&gt;
Relnotes:	yes
</content>
</entry>
<entry>
<title>MFC 350551:</title>
<updated>2019-08-24T00:35:59Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2019-08-24T00:35:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0c0e455bc006cc69c42775aab0aaf42a5e43eb09'/>
<id>urn:sha1:0c0e455bc006cc69c42775aab0aaf42a5e43eb09</id>
<content type='text'>
Don't reset memory attributes when mapping physical addresses for ACPI.

Previously, AcpiOsMemory was using pmap_mapbios which would always map
the requested address Write-Back (WB).  For several AMD Ryzen laptops,
the BIOS uses AcpiOsMemory to directly access the PCI MCFG region in
order to access PCI config registers.  This has the side effect of
remapping the MCFG region in the direct map as WB instead of UC
hanging the laptops during boot.

On the one laptop I examined in detail, the _PIC global method used to
switch from 8259A PICs to I/O APICs uses a pair of PCI config space
registers at offset 0x84 in the device at 0:0:0 to as a pair of
address/data registers to access an indirect register in the chipset
and clear a single bit to switch modes.

To fix, alter the semantics of pmap_mapbios() such that it does not
modify the attributes of any existing mappings and instead uses the
existing attributes.  If a new mapping is created, this new mapping
uses WB (the default memory attribute).

Special thanks to the gentleman whose name I don't have who brought
two affected laptops to the hacker lounge at BSDCan.  Direct access to
the affected systems permitted finding the root cause within an hour
or so.

PR:		231760, 236899
</content>
</entry>
</feed>
