<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/amd64/include, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-08-07T00:40:28Z</updated>
<entry>
<title>MFC r363527: Allow swi_sched() to be called from NMI context.</title>
<updated>2020-08-07T00:40:28Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-08-07T00:40:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b472044ceed2b6823b9235ea22ce032f195b709'/>
<id>urn:sha1:3b472044ceed2b6823b9235ea22ce032f195b709</id>
<content type='text'>
For purposes of handling hardware error reported via NMIs I need a way to
escape NMI context, being too restrictive to do something significant.

To do it this change introduces new swi_sched() flag SWI_FROMNMI, making
it careful about used KPIs.  On platforms allowing IPI sending from NMI
context (x86 for now) it immediately wakes clk_intr_event via new IPI_SWI,
otherwise it works just like SWI_DELAY.
</content>
</entry>
<entry>
<title>MFC r363242:</title>
<updated>2020-07-28T07:04:46Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-07-28T07:04:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d5d6f0a7debab806ca73eb9f4949579d3f443ffc'/>
<id>urn:sha1:d5d6f0a7debab806ca73eb9f4949579d3f443ffc</id>
<content type='text'>
    amd64: patch ffsl to use the compiler builtin
</content>
</entry>
<entry>
<title>MFC 355724,360166: Software breakpoints on Intel CPUs.</title>
<updated>2020-05-06T22:20:37Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2020-05-06T22:20:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=268fa2c1c19f9190d77ff17995d1b52ac25b7beb'/>
<id>urn:sha1:268fa2c1c19f9190d77ff17995d1b52ac25b7beb</id>
<content type='text'>
355724:
Support software breakpoints in the debug server on Intel CPUs.

- Allow the userland hypervisor to intercept breakpoint exceptions
  (BP#) in the guest.  A new capability (VM_CAP_BPT_EXIT) is used to
  enable this feature.  These exceptions are reported to userland via
  a new VM_EXITCODE_BPT that includes the length of the original
  breakpoint instruction.  If userland wishes to pass the exception
  through to the guest, it must be explicitly re-injected via
  vm_inject_exception().

- Export VMCS_ENTRY_INST_LENGTH as a VM_REG_GUEST_ENTRY_INST_LENGTH
  pseudo-register.  Injecting a BP# on Intel requires setting this to
  the length of the breakpoint instruction.  AMD SVM currently ignores
  writes to this register (but reports success) and fails to read it.

- Rework the per-vCPU state tracked by the debug server.  Rather than
  a single 'stepping_vcpu' global, add a structure for each vCPU that
  tracks state about that vCPU ('stepping', 'stepped', and
  'hit_swbreak').  A global 'stopped_vcpu' tracks which vCPU is
  currently reporting an event.  Event handlers for MTRAP and
  breakpoint exits loop until the associated event is reported to the
  debugger.

  Breakpoint events are discarded if the breakpoint is not present
  when a vCPU resumes in the breakpoint handler to retry submitting
  the breakpoint event.

- Maintain a linked-list of active breakpoints in response to the GDB
  'Z0' and 'z0' packets.

360166:
Add description string for VM_CAP_BPT_EXIT.

While here, replace the array of mapping structures with an array of
string pointers where the index is the capability value.
</content>
</entry>
<entry>
<title>MFC r356296:</title>
<updated>2020-01-09T08:29:31Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2020-01-09T08:29:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=799cac1a238b8fb779b24756bc63450ef33c4270'/>
<id>urn:sha1:799cac1a238b8fb779b24756bc63450ef33c4270</id>
<content type='text'>
bhyve: terminate waiting loops if thread suspension is requested.

PR:	242724
</content>
</entry>
<entry>
<title>MFC r355060:</title>
<updated>2019-12-01T16:02:15Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-12-01T16:02:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cd08b8cbc1fe157a17bba6af42837796fed93878'/>
<id>urn:sha1:cd08b8cbc1fe157a17bba6af42837796fed93878</id>
<content type='text'>
amd64: assert that EARLY_COUNTER does not corrupt memory.
</content>
</entry>
<entry>
<title>MFC r353672:</title>
<updated>2019-11-18T15:28:10Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2019-11-18T15:28:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=51d0e118f14b61c504dbeebe9757f26cb22c0d60'/>
<id>urn:sha1:51d0e118f14b61c504dbeebe9757f26cb22c0d60</id>
<content type='text'>
Introduce pmap_change_prot() for amd64.
</content>
</entry>
<entry>
<title>MFC r354592:</title>
<updated>2019-11-18T13:34:27Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-11-18T13:34:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9f2279eb66343c3138fe9d610d04d926c9e8d835'/>
<id>urn:sha1:9f2279eb66343c3138fe9d610d04d926c9e8d835</id>
<content type='text'>
amd64: change r_gdt to the local variable in hammer_time().
</content>
</entry>
<entry>
<title>MFC r354649:</title>
<updated>2019-11-12T18:03:26Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-11-12T18:03:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=abef3a4776b7e9ec0d17e6fdde1cfa6b8257b940'/>
<id>urn:sha1:abef3a4776b7e9ec0d17e6fdde1cfa6b8257b940</id>
<content type='text'>
Workaround for Intel SKL002/SKL012S errata.

Security: CVE-2018-12207
</content>
</entry>
<entry>
<title>MFC r354095, r354118, r354132:</title>
<updated>2019-11-09T11:55:01Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-11-09T11:55:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=83ac13555675bcdad9b16c6ca3aa42c40e07fbaa'/>
<id>urn:sha1:83ac13555675bcdad9b16c6ca3aa42c40e07fbaa</id>
<content type='text'>
amd64: move pcb out of kstack to struct thread.
</content>
</entry>
<entry>
<title>MFC r351594 (by kib): Centralize __pcpu definitions.</title>
<updated>2019-10-25T18:56:46Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2019-10-25T18:56:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c562cf63835fc7f35cefb7bda9ace3baaa23f442'/>
<id>urn:sha1:c562cf63835fc7f35cefb7bda9ace3baaa23f442</id>
<content type='text'>
Many extern struct pcpu &lt;something&gt;__pcpu declarations were
copied/pasted in sources.  The issue is that the definition is MD, but
it cannot be provided by machine/pcpu.h due to actual struct pcpu
defined in sys/pcpu.h later than the inclusion of machine/pcpu.h.
This forced the copying when other code needed direct access to
__pcpu.  There is no way around it, due to machine/pcpu.h supplying
part of struct pcpu fields.

To work around the problem, add a new machine/pcpu_aux.h header, which
should fill any needed MD definitions after struct pcpu definition is
completed. This allows to remove copies of __pcpu spread around the
source.  Also on x86 it makes it possible to remove work arounds like
OFFSETOF_CURTHREAD or clang specific warnings supressions.
</content>
</entry>
</feed>
