Skip to content
Permalink
Masami-Hiramat…
Switch branches/tags

Commits on Jan 11, 2022

  1. bpf: Add kprobe link for attaching raw kprobes

    Adding new link type BPF_LINK_TYPE_KPROBE to attach so called
    "kprobes" directly through fprobe API. Note that since the
    using kprobes with multiple same handler is not efficient,
    this uses the fprobe which natively support multiple probe
    points for one same handler, but limited on function entry
    and exit.
    
    Adding new attach type BPF_TRACE_RAW_KPROBE that enables
    such link for kprobe program.
    
    The new link allows to create multiple kprobes link by using
    new link_create interface:
    
      struct {
        __aligned_u64   addrs;
        __u32           cnt;
        __u64           bpf_cookie;
      } kprobe;
    
    Plus new flag BPF_F_KPROBE_RETURN for link_create.flags to
    create return probe.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Jiri Olsa authored and intel-lab-lkp committed Jan 11, 2022
  2. fprobe: Add sample program for fprobe

    Add a sample program for the fprobe.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    mhiramat authored and intel-lab-lkp committed Jan 11, 2022
  3. fprobe: Add exit_handler support

    Add exit_handler to fprobe. fprobe + rethook allows us
    to hook the kernel function return without fgraph tracer.
    Eventually, the fgraph tracer will be generic array based
    return hooking and fprobe may use it if user requests.
    Since both array-based approach and list-based approach
    have Pros and Cons, (e.g. memory consumption v.s. less
    missing events) it is better to keep both but fprobe
    will provide the same exit-handler interface.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    mhiramat authored and intel-lab-lkp committed Jan 11, 2022
  4. rethook: x86: Add rethook x86 implementation

    Add rethook for x86 implementation. Most of the code
    has been copied from kretprobes on x86.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    mhiramat authored and intel-lab-lkp committed Jan 11, 2022
  5. rethook: Add a generic return hook

    Add a return hook framework which hooks the function
    return. Most of the idea came from the kretprobe, but
    this is independent from kretprobe.
    Note that this is expected to be used with other
    function entry hooking feature, like ftrace, fprobe,
    adn kprobes. Eventually this will replace the
    kretprobe (e.g. kprobe + rethook = kretprobe), but
    at this moment, this is just a additional hook.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    mhiramat authored and intel-lab-lkp committed Jan 11, 2022
  6. fprobe: Add ftrace based probe APIs

    The fprobe is a wrapper API for ftrace function tracer.
    Unlike kprobes, this probes only supports the function entry, but
    it can probe multiple functions by one fprobe. The usage is almost
    same as the kprobe, user will specify the function names by
    fprobe::entries[].syms, the number of syms by fprobe::nentry,
    and the user handler by fprobe::entry_handler.
    
    struct fprobe fp = { 0 };
    struct fprobe_entry targets[] =
    	{{.sym = "func1"}, {.sym = "func2"}, {.sym = "func3"}};
    
    fp.handler = user_handler;
    fp.nentry = ARRAY_SIZE(targets);
    
    fp.entries = targets;
    
    ret = register_fprobe(&fp);
    
    Note that the fp::entries will be sorted by the converted
    function address.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    mhiramat authored and intel-lab-lkp committed Jan 11, 2022

Commits on Dec 11, 2021

  1. tracing: Use trace_iterator_reset() in tracing_read_pipe()

    Currently tracing_read_pipe() open codes trace_iterator_reset(). Just have
    it use trace_iterator_reset() instead.
    
    Link: https://lkml.kernel.org/r/20211210202616.64d432d2@gandalf.local.home
    
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 11, 2021
  2. tracing: Use memset_startat helper in trace_iterator_reset()

    Make use of memset_startat helper to simplify the code, there should be
    no functional change as a result of this patch.
    
    Link: https://lkml.kernel.org/r/20211210012245.207489-1-xiujianfeng@huawei.com
    
    Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Xiu Jianfeng authored and rostedt committed Dec 11, 2021
  3. tracing: Do not let synth_events block other dyn_event systems during…

    … create
    
    synth_events is returning -EINVAL if the dyn_event create command does
    not contain ' \t'. This prevents other systems from getting called back.
    synth_events needs to return -ECANCELED in these cases when the command
    is not targeting the synth_event system.
    
    Link: https://lore.kernel.org/linux-trace-devel/20210930223821.11025-1-beaub@linux.microsoft.com
    
    Fixes: c9e759b ("tracing: Rework synthetic event command parsing")
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Beau Belgrave <beaub@linux.microsoft.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Beau Belgrave authored and rostedt committed Dec 11, 2021
  4. tracing: Iterate trace_[ku]probe objects directly

    As suggested by Linus [1] using list_for_each_entry to iterate
    directly trace_[ku]probe objects so we can skip another call to
    container_of in these loops.
    
    [1] https://lore.kernel.org/r/CAHk-=wjakjw6-rDzDDBsuMoDCqd+9ogifR_EE1F0K-jYek1CdA@mail.gmail.com
    
    Link: https://lkml.kernel.org/r/20211125202852.406405-1-jolsa@kernel.org
    
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Jiri Olsa authored and rostedt committed Dec 11, 2021
  5. tracefs: Use d_inode() helper function to get the dentry inode

    Instead of referencing the inode from a dentry via dentry->d_inode, use
    the helper function d_inode(dentry) instead. This is the considered the
    correct way to access it.
    
    Reported-by: Christian Brauner <christian.brauner@ubuntu.com>
    Reported: https://lore.kernel.org/all/20211208104454.nhxyvmmn6d2qhpwl@wittgenstein/
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 11, 2021
  6. script/sorttable: Code style improvements

    Modified the code style issue of if() {},
    keep the code style consistent.
    
    Link: https://lkml.kernel.org/r/20211207151348.54921-3-yinan@linux.alibaba.com
    
    Signed-off-by: Yinan Liu <yinan@linux.alibaba.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Yinan Liu authored and rostedt committed Dec 11, 2021

Commits on Dec 8, 2021

  1. tracing: Make trace_marker{,_raw} stream-like

    The tracing marker files are write-only streams with no meaningful
    concept of file position.  Using stream_open() to mark them as
    stream-link indicates this and has the added advantage that a single
    file descriptor can now be used from multiple threads without contention
    thanks to clearing FMODE_ATOMIC_POS.
    
    Note that this has the potential to break existing userspace by since
    both lseek(2) and pwrite(2) will now return ESPIPE when previously lseek
    would have updated the stored offset and pwrite would have appended to
    the trace.  A survey of libtracefs and several other projects found to
    use trace_marker(_raw) [1][2][3] suggests that everyone limits
    themselves to calling write(2) and close(2) on these file descriptors so
    there is a good chance this will go unnoticed and the benefits of
    reduced overhead and lock contention seem worth the risk.
    
    [1] https://github.com/google/perfetto
    [2] https://github.com/intel/media-driver/
    [3] https://w1.fi/cgit/hostap/
    
    Link: https://lkml.kernel.org/r/20211207142558.347029-1-john@metanate.com
    
    Signed-off-by: John Keeping <john@metanate.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    johnkeeping authored and rostedt committed Dec 8, 2021

Commits on Dec 6, 2021

  1. tracing: Switch to kvfree_rcu() API

    Instead of invoking a synchronize_rcu() to free a pointer
    after a grace period we can directly make use of new API
    that does the same but in more efficient way.
    
    Link: https://lkml.kernel.org/r/20211124110308.2053-10-urezki@gmail.com
    
    Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    urezki authored and rostedt committed Dec 6, 2021
  2. tracing: Fix synth_event_add_val() kernel-doc comment

    It's named field here.
    
    Link: https://lkml.kernel.org/r/20210516022410.64271-1-hqjagain@gmail.com
    
    Signed-off-by: Qiujun Huang <hqjagain@gmail.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Qiujun Huang authored and rostedt committed Dec 6, 2021
  3. tracing/uprobes: Use trace_event_buffer_reserve() helper

    To be consistent with kprobes and eprobes, use
    trace_event_buffer_reserver() and trace_event_buffer_commit(). This will
    ensure that any updates to trace events will also be implemented on uprobe
    events.
    
    Link: https://lkml.kernel.org/r/20211206162440.69fbf96c@gandalf.local.home
    
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 6, 2021
  4. tracing/kprobes: Do not open code event reserve logic

    As kprobe events use trace_event_buffer_commit() to commit the event to
    the ftrace ring buffer, for consistency, it should use
    trace_event_buffer_reserve() to allocate it, as the two functions are
    related.
    
    Link: https://lkml.kernel.org/r/20211130024319.257430762@goodmis.org
    
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 6, 2021
  5. tracing: Have eprobes use filtering logic of trace events

    The eprobes open code the reserving of the event on the ring buffer for
    ftrace instead of using the ftrace event wrappers, which means that it
    doesn't get affected by the filters, breaking the filtering logic on user
    space.
    
    Link: https://lkml.kernel.org/r/20211130024319.068451680@goodmis.org
    
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 6, 2021
  6. tracing: Disable preemption when using the filter buffer

    In case trace_event_buffer_lock_reserve() is called with preemption
    enabled, the algorithm that defines the usage of the per cpu filter buffer
    may fail if the task schedules to another CPU after determining which
    buffer it will use.
    
    Disable preemption when using the filter buffer. And because that same
    buffer must be used throughout the call, keep preemption disabled until
    the filter buffer is released.
    
    This will also keep the semantics between the use case of when the filter
    buffer is used, and when the ring buffer itself is used, as that case also
    disables preemption until the ring buffer is released.
    
    Link: https://lkml.kernel.org/r/20211130024318.880190623@goodmis.org
    
    [ Fixed warning of assignment in if statement
      Reported-by: kernel test robot <lkp@intel.com> ]
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 6, 2021
  7. tracing: Use __this_cpu_read() in trace_event_buffer_lock_reserver()

    The value read by this_cpu_read() is used later and its use is expected to
    stay on the same CPU as being read. But this_cpu_read() does not warn if
    it is called without preemption disabled, where as __this_cpu_read() will
    check if preemption is disabled on CONFIG_DEBUG_PREEMPT
    
    Currently all callers have preemption disabled, but there may be new
    callers in the future that may not.
    
    Link: https://lkml.kernel.org/r/20211130024318.698165354@goodmis.org
    
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    rostedt committed Dec 6, 2021
  8. tools/perf: Add '__rel_loc' event field parsing support

    Add new '__rel_loc' dynamic data location attribute support.
    This type attribute is similar to the '__data_loc' but records the
    offset from the field itself.
    The libtraceevent adds TEP_FIELD_IS_RELATIVE to the
    'tep_format_field::flags' with TEP_FIELD_IS_DYNAMIC for'__rel_loc'.
    
    Link: https://lkml.kernel.org/r/163757344810.510314.12449413842136229871.stgit@devnote2
    
    Cc: Beau Belgrave <beaub@linux.microsoft.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    mhiramat authored and rostedt committed Dec 6, 2021
  9. libtraceevent: Add __rel_loc relative location attribute support

    Add '__rel_loc' new dynamic data location attribute which encodes
    the data location from the next to the field itself. This is similar
    to the '__data_loc' but the location offset is not from the event
    entry but from the next of the field.
    
    This patch adds '__rel_loc' decoding support in the libtraceevent.
    
    Link: https://lkml.kernel.org/r/163757343994.510314.13241077597729303802.stgit@devnote2
    
    Cc: Beau Belgrave <beaub@linux.microsoft.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    mhiramat authored and rostedt committed Dec 6, 2021
  10. samples/trace_event: Add '__rel_loc' using sample event

    Add '__rel_loc' using sample event for testing.
    User can use this for testing purpose. There is
    no reason to use this macro from the kernel.
    
    Link: https://lkml.kernel.org/r/163757343050.510314.2876529802471645178.stgit@devnote2
    
    Cc: Beau Belgrave <beaub@linux.microsoft.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    mhiramat authored and rostedt committed Dec 6, 2021
  11. tracing: Add '__rel_loc' using trace event macros

    Add '__rel_loc' using trace event macros. These macros are usually
    not used in the kernel, except for testing purpose.
    This also add "rel_" variant of macros for dynamic_array string,
    and bitmask.
    
    Link: https://lkml.kernel.org/r/163757342119.510314.816029622439099016.stgit@devnote2
    
    Cc: Beau Belgrave <beaub@linux.microsoft.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    mhiramat authored and rostedt committed Dec 6, 2021
  12. tracing: Support __rel_loc relative dynamic data location attribute

    Add '__rel_loc' new dynamic data location attribute which encodes
    the data location from the next to the field itself.
    
    The '__data_loc' is used for encoding the dynamic data location on
    the trace event record. But '__data_loc' is not useful if the writer
    doesn't know the event header (e.g. user event), because it records
    the dynamic data offset from the entry of the record, not the field
    itself.
    
    This new '__rel_loc' attribute encodes the data location relatively
    from the next of the field. For example, when there is a record like
    below (the number in the parentheses is the size of fields)
    
     |header(N)|common(M)|fields(K)|__data_loc(4)|fields(L)|data(G)|
    
    In this case, '__data_loc' field will be
    
     __data_loc = (G << 16) | (N+M+K+4+L)
    
    If '__rel_loc' is used, this will be
    
     |header(N)|common(M)|fields(K)|__rel_loc(4)|fields(L)|data(G)|
    
    where
    
     __rel_loc = (G << 16) | (L)
    
    This case shows L bytes after the '__rel_loc' attribute  field,
    if there is no fields after the __rel_loc field, L must be 0.
    
    This is relatively easy (and no need to consider the kernel header
    change) when the event data fields are composed by user who doesn't
    know header and common fields.
    
    Link: https://lkml.kernel.org/r/163757341258.510314.4214431827833229956.stgit@devnote2
    
    Cc: Beau Belgrave <beaub@linux.microsoft.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    mhiramat authored and rostedt committed Dec 6, 2021
  13. tracing: Fix spelling mistake "aritmethic" -> "arithmetic"

    There is a spelling mistake in the tracing mini-HOWTO text. Fix it.
    
    Link: https://lkml.kernel.org/r/20211108201513.42876-1-colin.i.king@gmail.com
    
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Colin Ian King authored and rostedt committed Dec 6, 2021

Commits on Dec 5, 2021

  1. Linux 5.16-rc4

    torvalds committed Dec 5, 2021
  2. Merge tag 'for-5.16/parisc-6' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/deller/parisc-linux
    
    Pull parisc fixes from Helge Deller:
     "Some bug and warning fixes:
    
       - Fix "make install" to use debians "installkernel" script which is
         now in /usr/sbin
    
       - Fix the bindeb-pkg make target by giving the correct KBUILD_IMAGE
         file name
    
       - Fix compiler warnings by annotating parisc agp init functions with
         __init
    
       - Fix timekeeping on SMP machines with dual-core CPUs
    
       - Enable some more config options in the 64-bit defconfig"
    
    * tag 'for-5.16/parisc-6' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
      parisc: Mark cr16 CPU clocksource unstable on all SMP machines
      parisc: Fix "make install" on newer debian releases
      parisc/agp: Annotate parisc agp init functions with __init
      parisc: Enable sata sil, audit and usb support on 64-bit defconfig
      parisc: Fix KBUILD_IMAGE for self-extracting kernel
    torvalds committed Dec 5, 2021
  3. Merge tag 'usb-5.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    Pull USB fixes from Greg KH:
     "Here are some small USB fixes for a few reported issues. Included in
      here are:
    
       - xhci fix for a _much_ reported regression. I don't think there's a
         community distro that has not reported this problem yet :(
    
       - new USB quirk addition
    
       - cdns3 minor fixes
    
       - typec regression fix.
    
      All of these have been in linux-next with no reported problems, and
      the xhci fix has been reported by many to resolve their reported
      problem"
    
    * tag 'usb-5.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
      usb: cdnsp: Fix a NULL pointer dereference in cdnsp_endpoint_init()
      usb: cdns3: gadget: fix new urb never complete if ep cancel previous requests
      usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
      USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
      xhci: Fix commad ring abort, write all 64 bits to CRCR register.
    torvalds committed Dec 5, 2021
  4. Merge tag 'tty-5.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/tty
    
    Pull tty/serial fixes from Greg KH:
     "Here are some small TTY and Serial driver fixes for 5.16-rc4 to
      resolve a number of reported problems.
    
      They include:
    
       - liteuart serial driver fixes
    
       - 8250_pci serial driver fixes for pericom devices
    
       - 8250 RTS line control fix while in RS-485 mode
    
       - tegra serial driver fix
    
       - msm_serial driver fix
    
       - pl011 serial driver new id
    
       - fsl_lpuart revert of broken change
    
       - 8250_bcm7271 serial driver fix
    
       - MAINTAINERS file update for rpmsg tty driver that came in 5.16-rc1
    
       - vgacon fix for reported problem
    
      All of these, except for the 8250_bcm7271 fix have been in linux-next
      with no reported problem. The 8250_bcm7271 fix was added to the tree
      on Friday so no chance to be linux-next yet. But it should be fine as
      the affected developers submitted it"
    
    * tag 'tty-5.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
      serial: 8250_bcm7271: UART errors after resuming from S2
      serial: 8250_pci: rewrite pericom_do_set_divisor()
      serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array
      serial: 8250: Fix RTS modem control while in rs485 mode
      Revert "tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP"
      serial: tegra: Change lower tolerance baud rate limit for tegra20 and tegra30
      serial: liteuart: relax compile-test dependencies
      serial: liteuart: fix minor-number leak on probe errors
      serial: liteuart: fix use-after-free and memleak on unbind
      serial: liteuart: Fix NULL pointer dereference in ->remove()
      vgacon: Propagate console boot parameters before calling `vc_resize'
      tty: serial: msm_serial: Deactivate RX DMA for polling support
      serial: pl011: Add ACPI SBSA UART match id
      serial: core: fix transmit-buffer reset and memleak
      MAINTAINERS: Add rpmsg tty driver maintainer
    torvalds committed Dec 5, 2021
  5. Merge tag 'timers_urgent_for_v5.16_rc4' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/tip/tip
    
    Pull timer fix from Borislav Petkov:
    
     - Prevent a tick storm when a dedicated timekeeper CPU in nohz_full
       mode runs for prolonged periods with interrupts disabled and ends up
       programming the next tick in the past, leading to that storm
    
    * tag 'timers_urgent_for_v5.16_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      timers/nohz: Last resort update jiffies on nohz_full IRQ entry
    torvalds committed Dec 5, 2021
  6. Merge tag 'sched_urgent_for_v5.16_rc4' of git://git.kernel.org/pub/sc…

    …m/linux/kernel/git/tip/tip
    
    Pull scheduler fixes from Borislav Petkov:
    
     - Properly init uclamp_flags of a runqueue, on first enqueuing
    
     - Fix preempt= callback return values
    
     - Correct utime/stime resource usage reporting on nohz_full to return
       the proper times instead of shorter ones
    
    * tag 'sched_urgent_for_v5.16_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      sched/uclamp: Fix rq->uclamp_max not set on first enqueue
      preempt/dynamic: Fix setup_preempt_mode() return value
      sched/cputime: Fix getrusage(RUSAGE_THREAD) with nohz_full
    torvalds committed Dec 5, 2021
  7. Merge tag 'x86_urgent_for_v5.16_rc4' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull x86 fixes from Borislav Petkov:
    
     - Fix a couple of SWAPGS fencing issues in the x86 entry code
    
     - Use the proper operand types in __{get,put}_user() to prevent
       truncation in SEV-ES string io
    
     - Make sure the kernel mappings are present in trampoline_pgd in order
       to prevent any potential accesses to unmapped memory after switching
       to it
    
     - Fix a trivial list corruption in objtool's pv_ops validation
    
     - Disable the clocksource watchdog for TSC on platforms which claim
       that the TSC is constant, doesn't stop in sleep states, CPU has TSC
       adjust and the number of sockets of the platform are max 2, to
       prevent erroneous markings of the TSC as unstable.
    
     - Make sure TSC adjust is always checked not only when going idle
    
     - Prevent a stack leak by initializing struct _fpx_sw_bytes properly in
       the FPU code
    
     - Fix INTEL_FAM6_RAPTORLAKE define naming to adhere to the convention
    
    * tag 'x86_urgent_for_v5.16_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/xen: Add xenpv_restore_regs_and_return_to_usermode()
      x86/entry: Use the correct fence macro after swapgs in kernel CR3
      x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry()
      x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword
      x86/64/mm: Map all kernel memory into trampoline_pgd
      objtool: Fix pv_ops noinstr validation
      x86/tsc: Disable clocksource watchdog for TSC on qualified platorms
      x86/tsc: Add a timer to make sure TSC_adjust is always checked
      x86/fpu/signal: Initialize sw_bytes in save_xstate_epilog()
      x86/cpu: Drop spurious underscore from RAPTOR_LAKE #define
    torvalds committed Dec 5, 2021
  8. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull more kvm fixes from Paolo Bonzini:
    
     - Static analysis fix
    
     - New SEV-ES protocol for communicating invalid VMGEXIT requests
    
     - Ensure APICv is considered inactive if there is no APIC
    
     - Fix reserved bits for AMD PerfEvtSeln register
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
      KVM: SVM: Do not terminate SEV-ES guests on GHCB validation failure
      KVM: SEV: Fall back to vmalloc for SEV-ES scratch area if necessary
      KVM: SEV: Return appropriate error codes if SEV-ES scratch setup fails
      KVM: x86/mmu: Retry page fault if root is invalidated by memslot update
      KVM: VMX: Set failure code in prepare_vmcs02()
      KVM: ensure APICv is considered inactive if there is no APIC
      KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register
    torvalds committed Dec 5, 2021
  9. KVM: SVM: Do not terminate SEV-ES guests on GHCB validation failure

    Currently, an SEV-ES guest is terminated if the validation of the VMGEXIT
    exit code or exit parameters fails.
    
    The VMGEXIT instruction can be issued from userspace, even though
    userspace (likely) can't update the GHCB. To prevent userspace from being
    able to kill the guest, return an error through the GHCB when validation
    fails rather than terminating the guest. For cases where the GHCB can't be
    updated (e.g. the GHCB can't be mapped, etc.), just return back to the
    guest.
    
    The new error codes are documented in the lasest update to the GHCB
    specification.
    
    Fixes: 291bd20 ("KVM: SVM: Add initial support for a VMGEXIT VMEXIT")
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Message-Id: <b57280b5562893e2616257ac9c2d4525a9aeeb42.1638471124.git.thomas.lendacky@amd.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    tlendacky authored and bonzini committed Dec 5, 2021
Older