15 Oct, 2019

3 commits

  • IOASID allocation may rely on platform specific methods. One use case is
    that when running in the guest, in order to obtain system wide global
    IOASIDs, emulated allocation interface is needed to communicate with the
    host. Here we call these platform specific allocators custom allocators.

    Custom IOASID allocators can be registered at runtime and take precedence
    over the default XArray allocator. They have these attributes:

    - provides platform specific alloc()/free() functions with private data.
    - allocation results lookup are not provided by the allocator, lookup
    request must be done by the IOASID framework by its own XArray.
    - allocators can be unregistered at runtime, either fallback to the next
    custom allocator or to the default allocator.
    - custom allocators can share the same set of alloc()/free() helpers, in
    this case they also share the same IOASID space, thus the same XArray.
    - switching between allocators requires all outstanding IOASIDs to be
    freed unless the two allocators share the same alloc()/free() helpers.

    Signed-off-by: Jean-Philippe Brucker
    Signed-off-by: Jacob Pan
    Link: https://lkml.org/lkml/2019/4/26/462
    Reviewed-by: Jean-Philippe Brucker
    Reviewed-by: Eric Auger
    Signed-off-by: Joerg Roedel

    Jacob Pan
     
  • Some devices might support multiple DMA address spaces, in particular
    those that have the PCI PASID feature. PASID (Process Address Space ID)
    allows to share process address spaces with devices (SVA), partition a
    device into VM-assignable entities (VFIO mdev) or simply provide
    multiple DMA address space to kernel drivers. Add a global PASID
    allocator usable by different drivers at the same time. Name it I/O ASID
    to avoid confusion with ASIDs allocated by arch code, which are usually
    a separate ID space.

    The IOASID space is global. Each device can have its own PASID space,
    but by convention the IOMMU ended up having a global PASID space, so
    that with SVA, each mm_struct is associated to a single PASID.

    The allocator is primarily used by IOMMU subsystem but in rare occasions
    drivers would like to allocate PASIDs for devices that aren't managed by
    an IOMMU, using the same ID space as IOMMU.

    Signed-off-by: Jean-Philippe Brucker
    Signed-off-by: Jacob Pan
    Reviewed-by: Jean-Philippe Brucker
    Reviewed-by: Eric Auger
    Signed-off-by: Joerg Roedel

    Jean-Philippe Brucker
     
  • In any virtualization use case, when the first translation stage
    is "owned" by the guest OS, the host IOMMU driver has no knowledge
    of caching structure updates unless the guest invalidation activities
    are trapped by the virtualizer and passed down to the host.

    Since the invalidation data can be obtained from user space and will be
    written into physical IOMMU, we must allow security check at various
    layers. Therefore, generic invalidation data format are proposed here,
    model specific IOMMU drivers need to convert them into their own format.

    Signed-off-by: Yi L Liu
    Signed-off-by: Jacob Pan
    Signed-off-by: Ashok Raj
    Signed-off-by: Eric Auger
    Signed-off-by: Jean-Philippe Brucker
    Reviewed-by: Jean-Philippe Brucker
    Reviewed-by: Eric Auger
    Signed-off-by: Joerg Roedel

    Yi L Liu
     

14 Oct, 2019

2 commits

  • Linus Torvalds
     
  • Pull tracing fixes from Steven Rostedt:
    "A few tracing fixes:

    - Remove lockdown from tracefs itself and moved it to the trace
    directory. Have the open functions there do the lockdown checks.

    - Fix a few races with opening an instance file and the instance
    being deleted (Discovered during the lockdown updates). Kept
    separate from the clean up code such that they can be backported to
    stable easier.

    - Clean up and consolidated the checks done when opening a trace
    file, as there were multiple checks that need to be done, and it
    did not make sense having them done in each open instance.

    - Fix a regression in the record mcount code.

    - Small hw_lat detector tracer fixes.

    - A trace_pipe read fix due to not initializing trace_seq"

    * tag 'trace-v5.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Initialize iter->seq after zeroing in tracing_read_pipe()
    tracing/hwlat: Don't ignore outer-loop duration when calculating max_latency
    tracing/hwlat: Report total time spent in all NMIs during the sample
    recordmcount: Fix nop_mcount() function
    tracing: Do not create tracefs files if tracefs lockdown is in effect
    tracing: Add locked_down checks to the open calls of files created for tracefs
    tracing: Add tracing_check_open_get_tr()
    tracing: Have trace events system open call tracing_open_generic_tr()
    tracing: Get trace_array reference for available_tracers files
    ftrace: Get a reference counter for the trace_array on filter files
    tracefs: Revert ccbd54ff54e8 ("tracefs: Restrict tracefs when the kernel is locked down")

    Linus Torvalds
     

13 Oct, 2019

28 commits

  • Pull hwmon fixes from Guenter Roeck:

    - Update/fix inspur-ipsps1 and k10temp Documentation

    - Fix nct7904 driver

    - Fix HWMON_P_MIN_ALARM mask in hwmon core

    * tag 'hwmon-for-v5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: docs: Extend inspur-ipsps1 title underline
    hwmon: (nct7904) Add array fan_alarm and vsen_alarm to store the alarms in nct7904_data struct.
    docs: hwmon: Include 'inspur-ipsps1.rst' into docs
    hwmon: Fix HWMON_P_MIN_ALARM mask
    hwmon: (k10temp) Update documentation and add temp2_input info
    hwmon: (nct7904) Fix the incorrect value of vsen_mask in nct7904_data struct

    Linus Torvalds
     
  • Pull MTD fixes from Richard Weinberger:
    "Two fixes for MTD:

    - spi-nor: Fix for a regression in write_sr()

    - rawnand: Regression fix for the au1550nd driver"

    * tag 'fixes-for-5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
    mtd: rawnand: au1550nd: Fix au_read_buf16() prototype
    mtd: spi-nor: Fix direction of the write_sr() transfer

    Linus Torvalds
     
  • Pull io_uring fix from Jens Axboe:
    "Single small fix for a regression in the sequence logic for linked
    commands"

    * tag 'for-linus-20191012' of git://git.kernel.dk/linux-block:
    io_uring: fix sequence logic for timeout requests

    Linus Torvalds
     
  • A customer reported the following softlockup:

    [899688.160002] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [test.sh:16464]
    [899688.160002] CPU: 0 PID: 16464 Comm: test.sh Not tainted 4.12.14-6.23-azure #1 SLE12-SP4
    [899688.160002] RIP: 0010:up_write+0x1a/0x30
    [899688.160002] Kernel panic - not syncing: softlockup: hung tasks
    [899688.160002] RIP: 0010:up_write+0x1a/0x30
    [899688.160002] RSP: 0018:ffffa86784d4fde8 EFLAGS: 00000257 ORIG_RAX: ffffffffffffff12
    [899688.160002] RAX: ffffffff970fea00 RBX: 0000000000000001 RCX: 0000000000000000
    [899688.160002] RDX: ffffffff00000001 RSI: 0000000000000080 RDI: ffffffff970fea00
    [899688.160002] RBP: ffffffffffffffff R08: ffffffffffffffff R09: 0000000000000000
    [899688.160002] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8b59014720d8
    [899688.160002] R13: ffff8b59014720c0 R14: ffff8b5901471090 R15: ffff8b5901470000
    [899688.160002] tracing_read_pipe+0x336/0x3c0
    [899688.160002] __vfs_read+0x26/0x140
    [899688.160002] vfs_read+0x87/0x130
    [899688.160002] SyS_read+0x42/0x90
    [899688.160002] do_syscall_64+0x74/0x160

    It caught the process in the middle of trace_access_unlock(). There is
    no loop. So, it must be looping in the caller tracing_read_pipe()
    via the "waitagain" label.

    Crashdump analyze uncovered that iter->seq was completely zeroed
    at this point, including iter->seq.seq.size. It means that
    print_trace_line() was never able to print anything and
    there was no forward progress.

    The culprit seems to be in the code:

    /* reset all but tr, trace, and overruns */
    memset(&iter->seq, 0,
    sizeof(struct trace_iterator) -
    offsetof(struct trace_iterator, seq));

    It was added by the commit 53d0aa773053ab182877 ("ftrace:
    add logic to record overruns"). It was v2.6.27-rc1.
    It was the time when iter->seq looked like:

    struct trace_seq {
    unsigned char buffer[PAGE_SIZE];
    unsigned int len;
    };

    There was no "size" variable and zeroing was perfectly fine.

    The solution is to reinitialize the structure after or without
    zeroing.

    Link: http://lkml.kernel.org/r/20191011142134.11997-1-pmladek@suse.com

    Signed-off-by: Petr Mladek
    Signed-off-by: Steven Rostedt (VMware)

    Petr Mladek
     
  • max_latency is intended to record the maximum ever observed hardware
    latency, which may occur in either part of the loop (inner/outer). So
    we need to also consider the outer-loop sample when updating
    max_latency.

    Link: http://lkml.kernel.org/r/157073345463.17189.18124025522664682811.stgit@srivatsa-ubuntu

    Fixes: e7c15cd8a113 ("tracing: Added hardware latency tracer")
    Cc: stable@vger.kernel.org
    Signed-off-by: Srivatsa S. Bhat (VMware)
    Signed-off-by: Steven Rostedt (VMware)

    Srivatsa S. Bhat (VMware)
     
  • nmi_total_ts is supposed to record the total time spent in *all* NMIs
    that occur on the given CPU during the (active portion of the)
    sampling window. However, the code seems to be overwriting this
    variable for each NMI, thereby only recording the time spent in the
    most recent NMI. Fix it by accumulating the duration instead.

    Link: http://lkml.kernel.org/r/157073343544.17189.13911783866738671133.stgit@srivatsa-ubuntu

    Fixes: 7b2c86250122 ("tracing: Add NMI tracing in hwlat detector")
    Cc: stable@vger.kernel.org
    Signed-off-by: Srivatsa S. Bhat (VMware)
    Signed-off-by: Steven Rostedt (VMware)

    Srivatsa S. Bhat (VMware)
     
  • The removal of the longjmp code in recordmcount.c mistakenly made the return
    of make_nop() being negative an exit of nop_mcount(). It should not exit the
    routine, but instead just not process that part of the code. By exiting with
    an error code, it would cause the update of recordmcount to fail some files
    which would fail the build if ftrace function tracing was enabled.

    Link: http://lkml.kernel.org/r/20191009110538.5909fec6@gandalf.local.home

    Reported-by: Uwe Kleine-König
    Tested-by: Uwe Kleine-König
    Fixes: 3f1df12019f3 ("recordmcount: Rewrite error/success handling")
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • If on boot up, lockdown is activated for tracefs, don't even bother creating
    the files. This can also prevent instances from being created if lockdown is
    in effect.

    Link: http://lkml.kernel.org/r/CAHk-=whC6Ji=fWnjh2+eS4b15TnbsS4VPVtvBOwCy1jjEG_JHQ@mail.gmail.com

    Suggested-by: Linus Torvalds
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • Added various checks on open tracefs calls to see if tracefs is in lockdown
    mode, and if so, to return -EPERM.

    Note, the event format files (which are basically standard on all machines)
    as well as the enabled_functions file (which shows what is currently being
    traced) are not lockde down. Perhaps they should be, but it seems counter
    intuitive to lockdown information to help you know if the system has been
    modified.

    Link: http://lkml.kernel.org/r/CAHk-=wj7fGPKUspr579Cii-w_y60PtRaiDgKuxVtBAMK0VNNkA@mail.gmail.com

    Suggested-by: Linus Torvalds
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • Currently, most files in the tracefs directory test if tracing_disabled is
    set. If so, it should return -ENODEV. The tracing_disabled is called when
    tracing is found to be broken. Originally it was done in case the ring
    buffer was found to be corrupted, and we wanted to prevent reading it from
    crashing the kernel. But it's also called if a tracing selftest fails on
    boot. It's a one way switch. That is, once it is triggered, tracing is
    disabled until reboot.

    As most tracefs files can also be used by instances in the tracefs
    directory, they need to be carefully done. Each instance has a trace_array
    associated to it, and when the instance is removed, the trace_array is
    freed. But if an instance is opened with a reference to the trace_array,
    then it requires looking up the trace_array to get its ref counter (as there
    could be a race with it being deleted and the open itself). Once it is
    found, a reference is added to prevent the instance from being removed (and
    the trace_array associated with it freed).

    Combine the two checks (tracing_disabled and trace_array_get()) into a
    single helper function. This will also make it easier to add lockdown to
    tracefs later.

    Link: http://lkml.kernel.org/r/20191011135458.7399da44@gandalf.local.home

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • Instead of having the trace events system open call open code the taking of
    the trace_array descriptor (with trace_array_get()) and then calling
    trace_open_generic(), have it use the tracing_open_generic_tr() that does
    the combination of the two. This requires making tracing_open_generic_tr()
    global.

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • As instances may have different tracers available, we need to look at the
    trace_array descriptor that shows the list of the available tracers for the
    instance. But there's a race between opening the file and an admin
    deleting the instance. The trace_array_get() needs to be called before
    accessing the trace_array.

    Cc: stable@vger.kernel.org
    Fixes: 607e2ea167e56 ("tracing: Set up infrastructure to allow tracers for instances")
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • The ftrace set_ftrace_filter and set_ftrace_notrace files are specific for
    an instance now. They need to take a reference to the instance otherwise
    there could be a race between accessing the files and deleting the instance.

    It wasn't until the :mod: caching where these file operations started
    referencing the trace_array directly.

    Cc: stable@vger.kernel.org
    Fixes: 673feb9d76ab3 ("ftrace: Add :mod: caching infrastructure to trace_array")
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • Running the latest kernel through my "make instances" stress tests, I
    triggered the following bug (with KASAN and kmemleak enabled):

    mkdir invoked oom-killer:
    gfp_mask=0x40cd0(GFP_KERNEL|__GFP_COMP|__GFP_RECLAIMABLE), order=0,
    oom_score_adj=0
    CPU: 1 PID: 2229 Comm: mkdir Not tainted 5.4.0-rc2-test #325
    Hardware name: MSI MS-7823/CSM-H87M-G43 (MS-7823), BIOS V1.6 02/22/2014
    Call Trace:
    dump_stack+0x64/0x8c
    dump_header+0x43/0x3b7
    ? trace_hardirqs_on+0x48/0x4a
    oom_kill_process+0x68/0x2d5
    out_of_memory+0x2aa/0x2d0
    __alloc_pages_nodemask+0x96d/0xb67
    __alloc_pages_node+0x19/0x1e
    alloc_slab_page+0x17/0x45
    new_slab+0xd0/0x234
    ___slab_alloc.constprop.86+0x18f/0x336
    ? alloc_inode+0x2c/0x74
    ? irq_trace+0x12/0x1e
    ? tracer_hardirqs_off+0x1d/0xd7
    ? __slab_alloc.constprop.85+0x21/0x53
    __slab_alloc.constprop.85+0x31/0x53
    ? __slab_alloc.constprop.85+0x31/0x53
    ? alloc_inode+0x2c/0x74
    kmem_cache_alloc+0x50/0x179
    ? alloc_inode+0x2c/0x74
    alloc_inode+0x2c/0x74
    new_inode_pseudo+0xf/0x48
    new_inode+0x15/0x25
    tracefs_get_inode+0x23/0x7c
    ? lookup_one_len+0x54/0x6c
    tracefs_create_file+0x53/0x11d
    trace_create_file+0x15/0x33
    event_create_dir+0x2a3/0x34b
    __trace_add_new_event+0x1c/0x26
    event_trace_add_tracer+0x56/0x86
    trace_array_create+0x13e/0x1e1
    instance_mkdir+0x8/0x17
    tracefs_syscall_mkdir+0x39/0x50
    ? get_dname+0x31/0x31
    vfs_mkdir+0x78/0xa3
    do_mkdirat+0x71/0xb0
    sys_mkdir+0x19/0x1b
    do_fast_syscall_32+0xb0/0xed

    I bisected this down to the addition of the proxy_ops into tracefs for
    lockdown. It appears that the allocation of the proxy_ops and then freeing
    it in the destroy_inode callback, is causing havoc with the memory system.
    Reading the documentation about destroy_inode and talking with Linus about
    this, this is buggy and wrong. When defining the destroy_inode() method, it
    is expected that the destroy_inode() will also free the inode, and not just
    the extra allocations done in the creation of the inode. The faulty commit
    causes a memory leak of the inode data structure when they are deleted.

    Instead of allocating the proxy_ops (and then having to free it) the checks
    should be done by the open functions themselves, and not hack into the
    tracefs directory. First revert the tracefs updates for locked_down and then
    later we can add the locked_down checks in the kernel/trace files.

    Link: http://lkml.kernel.org/r/20191011135458.7399da44@gandalf.local.home

    Fixes: ccbd54ff54e8 ("tracefs: Restrict tracefs when the kernel is locked down")
    Suggested-by: Linus Torvalds
    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are some small char/misc driver fixes for 5.4-rc3.

    Nothing huge here. Some binder driver fixes (although it is still
    being discussed if these all fix the reported issues or not, so more
    might be coming later), some mei device ids and fixes, and a google
    firmware driver bugfix that fixes a regression, as well as some other
    tiny fixes.

    All have been in linux-next with no reported issues"

    * tag 'char-misc-5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    firmware: google: increment VPD key_len properly
    w1: ds250x: Fix build error without CRC16
    virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr
    binder: Fix comment headers on binder_alloc_prepare_to_free()
    binder: prevent UAF read in print_binder_transaction_log_entry()
    misc: fastrpc: prevent memory leak in fastrpc_dma_buf_attach
    mei: avoid FW version request on Ibex Peak and earlier
    mei: me: add comet point (lake) LP device ids

    Linus Torvalds
     
  • Pull staging/IIO driver fixes from Greg KH:
    "Here are some staging and IIO driver fixes for 5.4-rc3.

    The "biggest" thing here is a removal of the fbtft device and flexfb
    code as they have been abandoned by their authors and are no longer
    needed for that hardware.

    Other than that, the usual amount of staging driver and iio driver
    fixes for reported issues, and some speakup sysfs file documentation,
    which has been long awaited for.

    All have been in linux-next with no reported issues"

    * tag 'staging-5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (32 commits)
    iio: Fix an undefied reference error in noa1305_probe
    iio: light: opt3001: fix mutex unlock race
    iio: adc: ad799x: fix probe error handling
    iio: light: add missing vcnl4040 of_compatible
    iio: light: fix vcnl4000 devicetree hooks
    iio: imu: st_lsm6dsx: fix waitime for st_lsm6dsx i2c controller
    iio: adc: axp288: Override TS pin bias current for some models
    iio: imu: adis16400: fix memory leak
    iio: imu: adis16400: release allocated memory on failure
    iio: adc: stm32-adc: fix a race when using several adcs with dma and irq
    iio: adc: stm32-adc: move registers definitions
    iio: accel: adxl372: Perform a reset at start up
    iio: accel: adxl372: Fix push to buffers lost samples
    iio: accel: adxl372: Fix/remove limitation for FIFO samples
    iio: adc: hx711: fix bug in sampling of data
    staging: vt6655: Fix memory leak in vt6655_probe
    staging: exfat: Use kvzalloc() instead of kzalloc() for exfat_sb_info
    Staging: fbtft: fix memory leak in fbtft_framebuffer_alloc
    staging: speakup: document sysfs attributes
    staging: rtl8188eu: fix HighestRate check in odm_ARFBRefresh_8188E()
    ...

    Linus Torvalds
     
  • Pull tty/serial driver fixes from Greg KH:
    "Here are some small tty and serial driver fixes for 5.4-rc3 that
    resolve a number of reported issues and regressions.

    None of these are huge, full details are in the shortlog. There's also
    a MAINTAINERS update that I think you might have already taken in your
    tree already, but git should handle that merge easily.

    All have been in linux-next with no reported issues"

    * tag 'tty-5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    MAINTAINERS: kgdb: Add myself as a reviewer for kgdb/kdb
    tty: serial: imx: Use platform_get_irq_optional() for optional IRQs
    serial: fix kernel-doc warning in comments
    serial: 8250_omap: Fix gpio check for auto RTS/CTS
    serial: mctrl_gpio: Check for NULL pointer
    tty: serial: fsl_lpuart: Fix lpuart_flush_buffer()
    tty: serial: Fix PORT_LINFLEXUART definition
    tty: n_hdlc: fix build on SPARC
    serial: uartps: Fix uartps_major handling
    serial: uartlite: fix exit path null pointer
    tty: serial: linflexuart: Fix magic SysRq handling
    serial: sh-sci: Use platform_get_irq_optional() for optional interrupts
    dt-bindings: serial: sh-sci: Document r8a774b1 bindings
    serial/sifive: select SERIAL_EARLYCON
    tty: serial: rda: Fix the link time qualifier of 'rda_uart_exit()'
    tty: serial: owl: Fix the link time qualifier of 'owl_uart_exit()'

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a lot of small USB driver fixes for 5.4-rc3.

    syzbot has stepped up its testing of the USB driver stack, now able to
    trigger fun race conditions between disconnect and probe functions.
    Because of that we have a lot of fixes in here from Johan and others
    fixing these reported issues that have been around since almost all
    time.

    We also are just deleting the rio500 driver, making all of the syzbot
    bugs found in it moot as it turns out no one has been using it for
    years as there is a userspace version that is being used instead.

    There are also a number of other small fixes in here, all resolving
    reported issues or regressions.

    All have been in linux-next without any reported issues"

    * tag 'usb-5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (65 commits)
    USB: yurex: fix NULL-derefs on disconnect
    USB: iowarrior: use pr_err()
    USB: iowarrior: drop redundant iowarrior mutex
    USB: iowarrior: drop redundant disconnect mutex
    USB: iowarrior: fix use-after-free after driver unbind
    USB: iowarrior: fix use-after-free on release
    USB: iowarrior: fix use-after-free on disconnect
    USB: chaoskey: fix use-after-free on release
    USB: adutux: fix use-after-free on release
    USB: ldusb: fix NULL-derefs on driver unbind
    USB: legousbtower: fix use-after-free on release
    usb: cdns3: Fix for incorrect DMA mask.
    usb: cdns3: fix cdns3_core_init_role()
    usb: cdns3: gadget: Fix full-speed mode
    USB: usb-skeleton: drop redundant in-urb check
    USB: usb-skeleton: fix use-after-free after driver unbind
    USB: usb-skeleton: fix NULL-deref on disconnect
    usb:cdns3: Fix for CV CH9 running with g_zero driver.
    usb: dwc3: Remove dev_err() on platform_get_irq() failure
    usb: dwc3: Switch to platform_get_irq_byname_optional()
    ...

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Two fixes: a guest-cputime accounting fix, and a cgroup bandwidth
    quota precision fix"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/vtime: Fix guest/system mis-accounting on task switch
    sched/fair: Scale bandwidth quota and period without losing quota/period ratio precision

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Mostly tooling fixes, but also a couple of updates for new Intel
    models (which are technically hw-enablement, but to users it's a fix
    to perf behavior on those new CPUs - hope this is fine), an AUX
    inheritance fix, event time-sharing fix, and a fix for lost non-perf
    NMI events on AMD systems"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    perf/x86/cstate: Add Tiger Lake CPU support
    perf/x86/msr: Add Tiger Lake CPU support
    perf/x86/intel: Add Tiger Lake CPU support
    perf/x86/cstate: Update C-state counters for Ice Lake
    perf/x86/msr: Add new CPU model numbers for Ice Lake
    perf/x86/cstate: Add Comet Lake CPU support
    perf/x86/msr: Add Comet Lake CPU support
    perf/x86/intel: Add Comet Lake CPU support
    perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp
    perf/core: Fix corner case in perf_rotate_context()
    perf/core: Rework memory accounting in perf_mmap()
    perf/core: Fix inheritance of aux_output groups
    perf annotate: Don't return -1 for error when doing BPF disassembly
    perf annotate: Return appropriate error code for allocation failures
    perf annotate: Fix arch specific ->init() failure errors
    perf annotate: Propagate the symbol__annotate() error return
    perf annotate: Fix the signedness of failure returns
    perf annotate: Propagate perf_env__arch() error
    perf evsel: Fall back to global 'perf_env' in perf_evsel__env()
    perf tools: Propagate get_cpuid() error
    ...

    Linus Torvalds
     
  • Pull EFI fixes from Ingo Molnar:
    "Misc EFI fixes all across the map: CPER error report fixes, fixes to
    TPM event log parsing, fix for a kexec hang, a Sparse fix and other
    fixes"

    * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi/tpm: Fix sanity check of unsigned tbl_size being less than zero
    efi/x86: Do not clean dummy variable in kexec path
    efi: Make unexported efi_rci2_sysfs_init() static
    efi/tpm: Only set 'efi_tpm_final_log_size' after successful event log parsing
    efi/tpm: Don't traverse an event log with no events
    efi/tpm: Don't access event->count when it isn't mapped
    efivar/ssdt: Don't iterate over EFI vars if no SSDT override was specified
    efi/cper: Fix endianness of PCIe class code

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "A handful of fixes: a kexec linking fix, an AMD MWAITX fix, a vmware
    guest support fix when built under Clang, and new CPU model number
    definitions"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/cpu: Add Comet Lake to the Intel CPU models header
    lib/string: Make memzero_explicit() inline instead of external
    x86/cpu/vmware: Use the full form of INL in VMWARE_PORT
    x86/asm: Fix MWAITX C-state hint value

    Linus Torvalds
     
  • Pull x86 license tag fixlets from Ingo Molnar:
    "Fix a couple of SPDX tags in x86 headers to follow the canonical
    pattern"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Use the correct SPDX License Identifier in headers

    Linus Torvalds
     
  • Pull RISC-V fixes from Paul Walmsley:

    - Fix several bugs in the breakpoint trap handler

    - Drop an unnecessary loop around calls to preempt_schedule_irq()

    * tag 'riscv/for-v5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    RISC-V: entry: Remove unneeded need_resched() loop
    riscv: Correct the handling of unexpected ebreak in do_trap_break()
    riscv: avoid sending a SIGTRAP to a user thread trapped in WARN()
    riscv: avoid kernel hangs when trapped in BUG()

    Linus Torvalds
     
  • Pull MIPS fixes from Paul Burton:

    - Build fixes for CONFIG_OPTIMIZE_INLINING=y builds in which the
    compiler may choose not to inline __xchg() & __cmpxchg().

    - A build fix for Loongson configurations with GCC 9.x.

    - Expose some extra HWCAP bits to indicate support for various
    instruction set extensions to userland.

    - Fix bad stack access in firmware handling code for old SNI
    RM200/300/400 machines.

    * tag 'mips_fixes_5.4_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
    MIPS: Disable Loongson MMI instructions for kernel build
    MIPS: elf_hwcap: Export userspace ASEs
    MIPS: fw: sni: Fix out of bounds init of o32 stack
    MIPS: include: Mark __xchg as __always_inline
    MIPS: include: Mark __cmpxchg as __always_inline

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "Fix a kernel crash in spufs_create_root() on Cell machines, since the
    new mount API went in.

    Fix a regression in our KVM code caused by our recent PCR changes.

    Avoid a warning message about a failing hypervisor API on systems that
    don't have that API.

    A couple of minor build fixes.

    Thanks to: Alexey Kardashevskiy, Alistair Popple, Desnes A. Nunes do
    Rosario, Emmanuel Nicolet, Jordan Niethe, Laurent Dufour, Stephen
    Rothwell"

    * tag 'powerpc-5.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    spufs: fix a crash in spufs_create_root()
    powerpc/kvm: Fix kvmppc_vcore->in_guest value in kvmhv_switch_to_host
    selftests/powerpc: Fix compile error on tlbie_test due to newer gcc
    powerpc/pseries: Remove confusing warning message.
    powerpc/64s/radix: Fix build failure with RADIX_MMU=n

    Linus Torvalds
     
  • Pull xen fixes from Juergen Gross:

    - correct panic handling when running as a Xen guest

    - cleanup the Xen grant driver to remove printing a pointer being
    always NULL

    - remove a soon to be wrong call of of_dma_configure()

    * tag 'for-linus-5.4-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen: Stop abusing DT of_dma_configure API
    xen/grant-table: remove unnecessary printing
    x86/xen: Return from panic notifier

    Linus Torvalds
     
  • Pull s390 fixes from Vasily Gorbik:

    - Fix virtio-ccw DMA regression

    - Fix compiler warnings in uaccess

    * tag 's390-5.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/uaccess: avoid (false positive) compiler warnings
    s390/cio: fix virtio-ccw DMA without PV

    Linus Torvalds
     

12 Oct, 2019

7 commits

  • Tiger Lake is the followon to Ice Lake. From the perspective of Intel
    cstate residency counters, there is nothing changed compared with
    Ice Lake.

    Share icl_cstates with Ice Lake.
    Update the comments for Tiger Lake.

    The External Design Specification (EDS) is not published yet. It comes
    from an authoritative internal source.

    The patch has been tested on real hardware.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/1570549810-25049-10-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • Tiger Lake is the followon to Ice Lake. PPERF and SMI_COUNT MSRs are
    also supported.

    The External Design Specification (EDS) is not published yet. It comes
    from an authoritative internal source.

    The patch has been tested on real hardware.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/1570549810-25049-9-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • Tiger Lake is the followon to Ice Lake. From the perspective of Intel
    core PMU, there is little changes compared with Ice Lake, e.g. small
    changes in event list. But it doesn't impact on core PMU functionality.
    Share the perf code with Ice Lake. The event list patch will be submitted
    later separately.

    The patch has been tested on real hardware.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/1570549810-25049-8-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • There is no Core C3 C-State counter for Ice Lake.
    Package C8/C9/C10 C-State counters are added for Ice Lake.

    Introduce a new event list, icl_cstates, for Ice Lake.
    Update the comments accordingly.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: f08c47d1f86c ("perf/x86/intel/cstate: Add Icelake support")
    Link: https://lkml.kernel.org/r/1570549810-25049-7-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • PPERF and SMI_COUNT MSRs are also supported by Ice Lake desktop and
    server.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/1570549810-25049-6-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • Comet Lake is the new 10th Gen Intel processor. From the perspective of
    Intel cstate residency counters, there is nothing changed compared with
    Kaby Lake.

    Share hswult_cstates with Kaby Lake.
    Update the comments for Comet Lake.
    Kaby Lake is missed in the comments for some Residency Counters. Update
    the comments for Kaby Lake as well.

    The External Design Specification (EDS) is not published yet. It comes
    from an authoritative internal source.

    The patch has been tested on real hardware.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/1570549810-25049-5-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang
     
  • Comet Lake is the new 10th Gen Intel processor. PPERF and SMI_COUNT MSRs
    are also supported.

    The External Design Specification (EDS) is not published yet. It comes
    from an authoritative internal source.

    The patch has been tested on real hardware.

    Signed-off-by: Kan Liang
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/1570549810-25049-4-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kan Liang