Skip to content

Commits

Permalink
Yang-Shi/mm-pa…
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Feb 14, 2023

  1. md: dm-crypt: use mempool page bulk allocator

    When using dm-crypt for full disk encryption, dm-crypt would allocate
    an out bio and allocate the same amount of pages as in bio for
    encryption.  It currently allocates one page at a time in a loop.  This
    is not efficient.  So using mempool page bulk allocator instead of
    allocating one page at a time.
    
    The mempool page bulk allocator would improve the IOPS with 1M I/O
    by approxiamately 6%.  The test is done on a machine with 80 vCPU and
    128GB memory with an encrypted ram device (the impact from storage
    hardware could be minimized so that we could benchmark the dm-crypt
    layer more accurately).
    
    Before the patch:
    Jobs: 1 (f=1): [w(1)][100.0%][w=1301MiB/s][w=1301 IOPS][eta 00m:00s]
    crypt: (groupid=0, jobs=1): err= 0: pid=48512: Wed Feb  1 18:11:30 2023
      write: IOPS=1300, BW=1301MiB/s (1364MB/s)(76.2GiB/60001msec); 0 zone resets
        slat (usec): min=724, max=867, avg=765.71, stdev=19.27
        clat (usec): min=4, max=196297, avg=195688.86, stdev=6450.50
         lat (usec): min=801, max=197064, avg=196454.90, stdev=6450.35
        clat percentiles (msec):
         |  1.00th=[  197],  5.00th=[  197], 10.00th=[  197], 20.00th=[  197],
         | 30.00th=[  197], 40.00th=[  197], 50.00th=[  197], 60.00th=[  197],
         | 70.00th=[  197], 80.00th=[  197], 90.00th=[  197], 95.00th=[  197],
         | 99.00th=[  197], 99.50th=[  197], 99.90th=[  197], 99.95th=[  197],
         | 99.99th=[  197]
       bw (  MiB/s): min=  800, max= 1308, per=99.69%, avg=1296.94, stdev=46.02, samples=119
       iops        : min=  800, max= 1308, avg=1296.94, stdev=46.02, samples=119
      lat (usec)   : 10=0.01%, 1000=0.01%
      lat (msec)   : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.02%, 50=0.05%
      lat (msec)   : 100=0.08%, 250=99.83%
      cpu          : usr=3.88%, sys=96.02%, ctx=69, majf=1, minf=9
      IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.9%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
         issued rwts: total=0,78060,0,0 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=256
    
    Run status group 0 (all jobs):
      WRITE: bw=1301MiB/s (1364MB/s), 1301MiB/s-1301MiB/s (1364MB/s-1364MB/s), io=76.2GiB (81.9GB), run=60001-60001msec
    
    After the patch:
    Jobs: 1 (f=1): [w(1)][100.0%][w=1401MiB/s][w=1401 IOPS][eta 00m:00s]
    crypt: (groupid=0, jobs=1): err= 0: pid=2171: Wed Feb  1 21:08:16 2023
      write: IOPS=1401, BW=1402MiB/s (1470MB/s)(82.1GiB/60001msec); 0 zone resets
        slat (usec): min=685, max=815, avg=710.77, stdev=13.24
        clat (usec): min=4, max=182206, avg=181658.31, stdev=5810.58
         lat (usec): min=709, max=182913, avg=182369.36, stdev=5810.67
        clat percentiles (msec):
         |  1.00th=[  182],  5.00th=[  182], 10.00th=[  182], 20.00th=[  182],
         | 30.00th=[  182], 40.00th=[  182], 50.00th=[  182], 60.00th=[  182],
         | 70.00th=[  182], 80.00th=[  182], 90.00th=[  182], 95.00th=[  182],
         | 99.00th=[  182], 99.50th=[  182], 99.90th=[  182], 99.95th=[  182],
         | 99.99th=[  182]
       bw (  MiB/s): min=  900, max= 1408, per=99.71%, avg=1397.60, stdev=46.04, samples=119
       iops        : min=  900, max= 1408, avg=1397.60, stdev=46.04, samples=119
      lat (usec)   : 10=0.01%, 750=0.01%
      lat (msec)   : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.02%, 50=0.05%
      lat (msec)   : 100=0.08%, 250=99.83%
      cpu          : usr=3.66%, sys=96.23%, ctx=76, majf=1, minf=9
      IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.9%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
         issued rwts: total=0,84098,0,0 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=256
    
    Run status group 0 (all jobs):
      WRITE: bw=1402MiB/s (1470MB/s), 1402MiB/s-1402MiB/s (1470MB/s-1470MB/s), io=82.1GiB (88.2GB), run=60001-60001msec
    
    The function tracing also shows the time consumed by page allocations is
    reduced significantly.  The test allocated 1M (256 pages) bio in the same
    environment.
    
    Before the patch:
    It took approximately 600us by excluding the bio_add_page() calls.
    2720.630754 |   56)  xfs_io-38859  |   2.571 us    |    mempool_alloc();
    2720.630757 |   56)  xfs_io-38859  |   0.937 us    |    bio_add_page();
     2720.630758 |   56)  xfs_io-38859  |   1.772 us    |    mempool_alloc();
     2720.630760 |   56)  xfs_io-38859  |   0.852 us    |    bio_add_page();
    ….
    2720.631559 |   56)  xfs_io-38859  |   2.058 us    |    mempool_alloc();
     2720.631561 |   56)  xfs_io-38859  |   0.717 us    |    bio_add_page();
     2720.631562 |   56)  xfs_io-38859  |   2.014 us    |    mempool_alloc();
     2720.631564 |   56)  xfs_io-38859  |   0.620 us    |    bio_add_page();
    
    After the patch:
    It took approxiamately 30us.
    11564.266385 |   22) xfs_io-136183  | + 30.551 us   |    __alloc_pages_bulk();
    
    Page allocations overhead is around 6% (600us/9853us) in dm-crypt layer shown by
    function trace.  The data also matches the IOPS data shown by fio.
    
    And the benchmark with 4K size I/O doesn't show measurable regression.
    
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    yang-shi authored and intel-lab-lkp committed Feb 14, 2023
    Copy the full SHA
    6865683 View commit details
    Browse the repository at this point in the history
  2. md: dm-crypt: move crypt_free_buffer_pages ahead

    With moving crypt_free_buffer_pages() before crypt_alloc_buffer(), we
    don't need an extra declaration anymore.
    
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    yang-shi authored and intel-lab-lkp committed Feb 14, 2023
    Copy the full SHA
    967e308 View commit details
    Browse the repository at this point in the history
  3. mm: mempool: introduce page bulk allocator

    Since v5.13 the page bulk allocator was introduced to allocate order-0
    pages in bulk.  There are a few mempool allocator callers which does
    order-0 page allocation in a loop, for example, dm-crypt, f2fs compress,
    etc.  A mempool page bulk allocator seems useful.  So introduce the
    mempool page bulk allocator.
    
    It introduces the below APIs:
      - mempool_init_pages_bulk()
      - mempool_create_pages_bulk()
    They initialize the mempool for page bulk allocator.  The pool is filled
    by alloc_page() in a loop.
    
      - mempool_alloc_pages_bulk_array()
      - mempool_alloc_pages_bulk_cb()
    They do bulk allocation from mempool.
    They do the below conceptually:
      1. Call bulk page allocator
      2. If the allocation is fulfilled then return otherwise try to
         allocate the remaining pages from the mempool
      3. If it is fulfilled then return otherwise retry from #1 with sleepable
         gfp
      4. If it is still failed, sleep for a while to wait for the mempool is
         refilled, then retry from #1
    The populated pages will stay on the array until the callers consume them
    or free them, or are consumed by the callback immediately.
    
    Since mempool allocator is guaranteed to success in the sleepable context,
    so the two APIs return true for success or false for fail.  It is the
    caller's responsibility to handle failure case (partial allocation), just
    like the page bulk allocator.
    
    The mempool typically is an object agnostic allocator, but bulk allocation
    is only supported by pages, so the mempool bulk allocator is for page
    allocation only as well.
    
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    yang-shi authored and intel-lab-lkp committed Feb 14, 2023
    Copy the full SHA
    ecf5ea7 View commit details
    Browse the repository at this point in the history
  4. mm: mempool: extract the common initialization and alloc code

    Extract the common initialization code to __mempool_init() and
    __mempool_create().  And extract the common alloc code into an internal
    function.  This will make the following patch easier and avoid duplicate
    code.
    
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    yang-shi authored and intel-lab-lkp committed Feb 14, 2023
    Copy the full SHA
    365344a View commit details
    Browse the repository at this point in the history
  5. mm: page_alloc: add API for bulk allocator with callback

    Currently the bulk allocator support to pass pages via list or array,
    but neither is suitable for some usecases, for example, dm-crypt, which
    doesn't need a list, but array may be too big to fit on stack.  So
    adding a new bulk allocator API, which passes in a callback function
    that deal with the allocated pages.
    
    The API defined in this patch will be used by the following patches.
    
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    yang-shi authored and intel-lab-lkp committed Feb 14, 2023
    Copy the full SHA
    15fdaeb View commit details
    Browse the repository at this point in the history
  6. Merge tag 'pm-6.2-rc9' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/rafael/linux-pm
    
    Pull power management fix from Rafael Wysocki:
     "Add a missing NULL pointer check to the cpufreq drver for Qualcomm
      platforms (Manivannan Sadhasivam)"
    
    * tag 'pm-6.2-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      cpufreq: qcom-hw: Add missing null pointer check
    torvalds committed Feb 14, 2023
    Copy the full SHA
    e1c0451 View commit details
    Browse the repository at this point in the history
  7. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull kvm fixes from Paolo Bonzini:
     "Certain AMD processors are vulnerable to a cross-thread return address
      predictions bug. When running in SMT mode and one of the sibling
      threads transitions out of C0 state, the other thread gets access to
      twice as many entries in the RSB, but unfortunately the predictions of
      the now-halted logical processor are not purged. Therefore, the
      executing processor could speculatively execute from locations that
      the now-halted processor had trained the RSB on.
    
      The Spectre v2 mitigations cover the Linux kernel, as it fills the RSB
      when context switching to the idle thread. However, KVM allows a VMM
      to prevent exiting guest mode when transitioning out of C0 using the
      KVM_CAP_X86_DISABLE_EXITS capability can be used by a VMM to change
      this behavior. To mitigate the cross-thread return address predictions
      bug, a VMM must not be allowed to override the default behavior to
      intercept C0 transitions.
    
      These patches introduce a KVM module parameter that, if set, will
      prevent the user from disabling the HLT, MWAIT and CSTATE exits"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
      Documentation/hw-vuln: Add documentation for Cross-Thread Return Predictions
      KVM: x86: Mitigate the cross-thread return address predictions bug
      x86/speculation: Identify processors vulnerable to SMT RSB predictions
    torvalds committed Feb 14, 2023
    Copy the full SHA
    82eac0c View commit details
    Browse the repository at this point in the history
  8. cpufreq: qcom-hw: Add missing null pointer check

    of_device_get_match_data() may return NULL, so add a check to prevent
    potential null pointer dereference.
    
    Issue reported by Qualcomm's internal static analysis tool.
    
    Fixes: 4f79617 ("cpufreq: qcom-hw: Move soc_data to struct qcom_cpufreq")
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Mani-Sadhasivam authored and rafaeljw committed Feb 14, 2023
    Copy the full SHA
    6f098cd View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2023

  1. Merge tag 'mm-hotfixes-stable-2023-02-13-13-50' of git://git.kernel.o…

    …rg/pub/scm/linux/kernel/git/akpm/mm
    
    Pull misc fixes from Andrew Morton:
     "Twelve hotfixes, mostly against mm/.
    
      Five of these fixes are cc:stable"
    
    * tag 'mm-hotfixes-stable-2023-02-13-13-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
      of: reserved_mem: Have kmemleak ignore dynamically allocated reserved mem
      scripts/gdb: fix 'lx-current' for x86
      lib: parser: optimize match_NUMBER apis to use local array
      mm: shrinkers: fix deadlock in shrinker debugfs
      mm: hwpoison: support recovery from ksm_might_need_to_copy()
      kasan: fix Oops due to missing calls to kasan_arch_is_ready()
      revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
      fsdax: dax_unshare_iter() should return a valid length
      mm/gup: add folio to list when folio_isolate_lru() succeed
      aio: fix mremap after fork null-deref
      mailmap: add entry for Alexander Mikhalitsyn
      mm: extend max struct page size for kmsan
    torvalds committed Feb 13, 2023
    Copy the full SHA
    f6feea5 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'platform-drivers-x86-v6.2-5' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/pdx86/platform-drivers-x86
    
    Pull x86 platform drivers fix from Hans de Goede:
     "Intel vsec driver Meteor Lake PCI ids addition"
    
    * tag 'platform-drivers-x86-v6.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
      platform/x86/intel/vsec: Add support for Meteor Lake
    torvalds committed Feb 13, 2023
    Copy the full SHA
    b408817 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2023

  1. Linux 6.2-rc8

    torvalds committed Feb 12, 2023
    Copy the full SHA
    ceaa837 View commit details
    Browse the repository at this point in the history
  2. MAINTAINERS: Add myself as maintainer for arch/sh (SUPERH)

    Both Rich Felker and Yoshinori Sato haven't done any work on arch/sh
    for a while. As I have been maintaining Debian's sh4 port since 2014,
    I am interested to keep the architecture alive.
    
    Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Acked-by: Yoshinori Sato <ysato@users.sourceforge.jp>
    Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    glaubitz authored and torvalds committed Feb 12, 2023
    Copy the full SHA
    80510b6 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'trace-v6.2-rc7' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/trace/linux-trace
    
    Pull tracing fix from Steven Rostedt:
     "Fix showing of TASK_COMM_LEN instead of its value
    
      The TASK_COMM_LEN was converted from a macro into an enum so that BTF
      would have access to it. But this unfortunately caused TASK_COMM_LEN
      to display in the format fields of trace events, as they are created
      by the TRACE_EVENT() macro and such, macros convert to their values,
      where as enums do not.
    
      To handle this, instead of using the field itself to be display, save
      the value of the array size as another field in the trace_event_fields
      structure, and use that instead.
    
      Not only does this fix the issue, but also converts the other trace
      events that have this same problem (but were not breaking tooling).
    
      With this change, the original work around b3bc854 ("tracing:
      Have TRACE_DEFINE_ENUM affect trace event types as well") could be
      reverted (but that should be done in the merge window)"
    
    * tag 'trace-v6.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
      tracing: Fix TASK_COMM_LEN in trace event format file
    torvalds committed Feb 12, 2023
    Copy the full SHA
    5e98e91 View commit details
    Browse the repository at this point in the history
  4. Merge tag 'for-6.2-rc7-tag' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/kdave/linux
    
    Pull btrfs fixes from David Sterba:
    
     - one more fix for a tree-log 'write time corruption' report, update
       the last dir index directly and don't keep in the log context
    
     - do VFS-level inode lock around FIEMAP to prevent a deadlock with
       concurrent fsync, the extent-level lock is not sufficient
    
     - don't cache a single-device filesystem device to avoid cases when a
       loop device is reformatted and the entry gets stale
    
    * tag 'for-6.2-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
      btrfs: free device in btrfs_close_devices for a single device filesystem
      btrfs: lock the inode in shared mode before starting fiemap
      btrfs: simplify update of last_dir_index_offset when logging a directory
    torvalds committed Feb 12, 2023
    Copy the full SHA
    711e9a4 View commit details
    Browse the repository at this point in the history
  5. Merge tag 'usb-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/gregkh/usb
    
    Pull USB fixes from Greg KH:
     "Here are 2 small USB driver fixes that resolve some reported
      regressions and one new device quirk. Specifically these are:
    
       - new quirk for Alcor Link AK9563 smartcard reader
    
       - revert of u_ether gadget change in 6.2-rc1 that caused problems
    
       - typec pin probe fix
    
      All of these have been in linux-next with no reported problems"
    
    * tag 'usb-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
      usb: core: add quirk for Alcor Link AK9563 smartcard reader
      usb: typec: altmodes/displayport: Fix probe pin assign check
      Revert "usb: gadget: u_ether: Do not make UDC parent of the net device"
    torvalds committed Feb 12, 2023
    Copy the full SHA
    e2bca0e View commit details
    Browse the repository at this point in the history
  6. Merge tag 'efi-fixes-for-v6.2-4' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/efi/efi
    
    Pull EFI fix from Ard Biesheuvel:
     "A fix from Darren to widen the SMBIOS match for detecting Ampere Altra
      machines with problematic firmware. In the mean time, we are working
      on a more precise check, but this is still work in progress"
    
    * tag 'efi-fixes-for-v6.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
      arm64: efi: Force the use of SetVirtualAddressMap() on eMAG and Altra Max machines
    torvalds committed Feb 12, 2023
    Copy the full SHA
    dd78af9 View commit details
    Browse the repository at this point in the history
  7. Merge tag 'powerpc-6.2-5' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/powerpc/linux
    
    Pull powerpc fixes from Michael Ellerman:
    
     - Fix interrupt exit race with security mitigation switching.
    
     - Don't select ARCH_WANTS_NO_INSTR until warnings are fixed.
    
     - Build fix for CONFIG_NUMA=n.
    
    Thanks to Nicholas Piggin, Randy Dunlap, and Sachin Sant.
    
    * tag 'powerpc-6.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
      powerpc/64s/interrupt: Fix interrupt exit race with security mitigation switch
      powerpc/kexec_file: fix implicit decl error
      powerpc: Don't select ARCH_WANTS_NO_INSTR
    torvalds committed Feb 12, 2023
    Copy the full SHA
    49a0bdb View commit details
    Browse the repository at this point in the history
  8. Fix page corruption caused by racy check in __free_pages

    When we upgraded our kernel, we started seeing some page corruption like
    the following consistently:
    
      BUG: Bad page state in process ganesha.nfsd  pfn:1304ca
      page:0000000022261c55 refcount:0 mapcount:-128 mapping:0000000000000000 index:0x0 pfn:0x1304ca
      flags: 0x17ffffc0000000()
      raw: 0017ffffc0000000 ffff8a513ffd4c98 ffffeee24b35ec08 0000000000000000
      raw: 0000000000000000 0000000000000001 00000000ffffff7f 0000000000000000
      page dumped because: nonzero mapcount
      CPU: 0 PID: 15567 Comm: ganesha.nfsd Kdump: loaded Tainted: P    B      O      5.10.158-1.nutanix.20221209.el7.x86_64 #1
      Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/05/2016
      Call Trace:
       dump_stack+0x74/0x96
       bad_page.cold+0x63/0x94
       check_new_page_bad+0x6d/0x80
       rmqueue+0x46e/0x970
       get_page_from_freelist+0xcb/0x3f0
       ? _cond_resched+0x19/0x40
       __alloc_pages_nodemask+0x164/0x300
       alloc_pages_current+0x87/0xf0
       skb_page_frag_refill+0x84/0x110
       ...
    
    Sometimes, it would also show up as corruption in the free list pointer
    and cause crashes.
    
    After bisecting the issue, we found the issue started from commit
    e320d30 ("mm/page_alloc.c: fix freeing non-compound pages"):
    
    	if (put_page_testzero(page))
    		free_the_page(page, order);
    	else if (!PageHead(page))
    		while (order-- > 0)
    			free_the_page(page + (1 << order), order);
    
    So the problem is the check PageHead is racy because at this point we
    already dropped our reference to the page.  So even if we came in with
    compound page, the page can already be freed and PageHead can return
    false and we will end up freeing all the tail pages causing double free.
    
    Fixes: e320d30 ("mm/page_alloc.c: fix freeing non-compound pages")
    Link: https://lore.kernel.org/lkml/BYAPR02MB448855960A9656EEA81141FC94D99@BYAPR02MB4488.namprd02.prod.outlook.com/
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    davidchenntnx authored and torvalds committed Feb 12, 2023
    Copy the full SHA
    462a8e0 View commit details
    Browse the repository at this point in the history
  9. tracing: Fix TASK_COMM_LEN in trace event format file

    After commit 3087c61 ("tools/testing/selftests/bpf: replace open-coded 16 with TASK_COMM_LEN"),
    the content of the format file under
    /sys/kernel/tracing/events/task/task_newtask was changed from
      field:char comm[16];    offset:12;    size:16;    signed:0;
    to
      field:char comm[TASK_COMM_LEN];    offset:12;    size:16;    signed:0;
    
    John reported that this change breaks older versions of perfetto.
    Then Mathieu pointed out that this behavioral change was caused by the
    use of __stringify(_len), which happens to work on macros, but not on enum
    labels. And he also gave the suggestion on how to fix it:
      :One possible solution to make this more robust would be to extend
      :struct trace_event_fields with one more field that indicates the length
      :of an array as an actual integer, without storing it in its stringified
      :form in the type, and do the formatting in f_show where it belongs.
    
    The result as follows after this change,
    $ cat /sys/kernel/tracing/events/task/task_newtask/format
            field:char comm[16];    offset:12;      size:16;        signed:0;
    
    Link: https://lore.kernel.org/lkml/Y+QaZtz55LIirsUO@google.com/
    Link: https://lore.kernel.org/linux-trace-kernel/20230210155921.4610-1-laoar.shao@gmail.com/
    Link: https://lore.kernel.org/linux-trace-kernel/20230212151303.12353-1-laoar.shao@gmail.com
    
    Cc: stable@vger.kernel.org
    Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
    Cc: Kajetan Puchalski <kajetan.puchalski@arm.com>
    CC: Qais Yousef <qyousef@layalina.io>
    Fixes: 3087c61 ("tools/testing/selftests/bpf: replace open-coded 16 with TASK_COMM_LEN")
    Reported-by: John Stultz <jstultz@google.com>
    Debugged-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Suggested-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Suggested-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    laoar authored and rostedt committed Feb 12, 2023
    Copy the full SHA
    b6c7abd View commit details
    Browse the repository at this point in the history
  10. Merge tag 'spi-fix-v6.2-rc7' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/broonie/spi
    
    Pull spi fixes from Mark Brown:
     "A couple of hopefully final fixes for spi: one driver specific fix for
      an issue with very large transfers and a fix for an issue with the
      locking fixes in spidev merged earlier this release cycle which was
      missed"
    
    * tag 'spi-fix-v6.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
      spi: spidev: fix a recursive locking error
      spi: dw: Fix wrong FIFO level setting for long xfers
    torvalds committed Feb 12, 2023
    Copy the full SHA
    f339c25 View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2023

  1. Merge tag 'x86-urgent-2023-02-11' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/tip/tip
    
    Pull x86 fixes from Ingo Molnar:
     "Fix a kprobes bug, plus add a new Intel model number to the upstream
      <asm/intel-family.h> header for drivers to use"
    
    * tag 'x86-urgent-2023-02-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/cpu: Add Lunar Lake M
      x86/kprobes: Fix 1 byte conditional jump target
    torvalds committed Feb 11, 2023
    Copy the full SHA
    47e9aa1 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'locking-urgent-2023-02-11' of git://git.kernel.org/pub/scm…

    …/linux/kernel/git/tip/tip
    
    Pull locking fix from Ingo Molnar:
     "Fix an rtmutex missed-wakeup bug"
    
    * tag 'locking-urgent-2023-02-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      rtmutex: Ensure that the top waiter is always woken up
    torvalds committed Feb 11, 2023
    Copy the full SHA
    338c847 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'cxl-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/cxl/cxl
    
    Pull cxl fixes from Dan Williams:
     "Two fixups for CXL (Compute Express Link) in presence of passthrough
      decoders.
    
      This primarily helps developers using the QEMU CXL emulation, but with
      the impending arrival of CXL switches these types of topologies will
      be of interest to end users.
    
       - Fix a crash when shutting down regions in the presence of
         passthrough decoders
    
       - Fix region creation to understand passthrough decoders instead of
         the narrower definition of passthrough ports"
    
    * tag 'cxl-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
      cxl/region: Fix passthrough-decoder detection
      cxl/region: Fix null pointer dereference for resetting decoder
    torvalds committed Feb 11, 2023
    Copy the full SHA
    d12aca5 View commit details
    Browse the repository at this point in the history
  4. Merge tag 'libnvdimm-fixes-6.2' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/nvdimm/nvdimm
    
    Pull libnvdimm fixes from Dan Williams:
     "A fix for an issue that could causes users to inadvertantly reserve
      too much capacity when debugging the KMSAN and persistent memory
      namespace, a lockdep fix, and a kernel-doc build warning:
    
       - Resolve the conflict between KMSAN and NVDIMM with respect to
         reserving pmem namespace / volume capacity for larger sizeof(struct
         page)
    
       - Fix a lockdep warning in the the NFIT code
    
       - Fix a kernel-doc build warning"
    
    * tag 'libnvdimm-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
      nvdimm: Support sizeof(struct page) > MAX_STRUCT_PAGE_SIZE
      ACPI: NFIT: fix a potential deadlock during NFIT teardown
      dax: super.c: fix kernel-doc bad line warning
    torvalds committed Feb 11, 2023
    Copy the full SHA
    95232dd View commit details
    Browse the repository at this point in the history
  5. Merge tag 'fixes-2023-02-11' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/rppt/memblock
    
    Pull memblock revert from Mike Rapoport:
     "Revert 'mm: Always release pages to the buddy allocator in
      memblock_free_late()'
    
      The pages being freed by memblock_free_late() have already been
      initialized, but if they are in the deferred init range,
      __free_one_page() might access nearby uninitialized pages when trying
      to coalesce buddies, which will cause a crash.
    
      A proper fix will be more involved so revert this change for the time
      being"
    
    * tag 'fixes-2023-02-11' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
      Revert "mm: Always release pages to the buddy allocator in memblock_free_late()."
    torvalds committed Feb 11, 2023
    Copy the full SHA
    230809c View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2023

  1. Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/clk/linux
    
    Pull clk fixes from Stephen Boyd:
     "Two clk driver fixes
    
       - Use devm_kasprintf() to avoid overflows when forming clk names in
         the Microchip PolarFire driver
    
       - Fix the pretty broken Ingenic JZ4760 M/N/OD calculation to actually
         work and find proper divisors"
    
    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
      clk: ingenic: jz4760: Update M/N/OD calculation algorithm
      clk: microchip: mpfs-ccc: Use devm_kasprintf() for allocating formatted strings
    torvalds committed Feb 10, 2023
    Copy the full SHA
    420b2d4 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'pinctrl-v6.2-3' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/linusw/linux-pinctrl
    
    Pull pin control fixes from Linus Walleij:
     "Some assorted pin control fixes, the most interesting will be the
      Intel patch fixing a classic problem: laptop touchpad IRQs...
    
       - Some pin drive register fixes in the Mediatek driver.
    
       - Return proper error code in the Aspeed driver, and revert and
         ill-advised force-disablement patch that needs to be reworked.
    
       - Fix AMD driver debug output.
    
       - Fix potential NULL dereference in the Single driver.
    
       - Fix a group definition error in the Qualcomm SM8450 LPASS driver.
    
       - Restore pins used in direct IRQ mode in the Intel driver (This
         fixes some laptop touchpads!)"
    
    * tag 'pinctrl-v6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
      pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
      pinctrl: qcom: sm8450-lpass-lpi: correct swr_rx_data group
      pinctrl: aspeed: Revert "Force to disable the function's signal"
      pinctrl: single: fix potential NULL dereference
      pinctrl: amd: Fix debug output for debounce time
      pinctrl: aspeed: Fix confusing types in return value
      pinctrl: mediatek: Fix the drive register definition of some Pins
    torvalds committed Feb 10, 2023
    Copy the full SHA
    545c80a View commit details
    Browse the repository at this point in the history
  3. Merge tag 'pci-v6.2-fixes-2' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/pci/pci
    
    Pull PCI fixes from Bjorn Helgaas:
    
     - Move to a shared PCI git tree (Bjorn Helgaas)
    
     - Add Krzysztof Wilczyński as another PCI maintainer (Lorenzo
       Pieralisi)
    
     - Revert a couple ASPM patches to fix suspend/resume regressions (Bjorn
       Helgaas)
    
    * tag 'pci-v6.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
      Revert "PCI/ASPM: Refactor L1 PM Substates Control Register programming"
      Revert "PCI/ASPM: Save L1 PM Substates Capability for suspend/resume"
      MAINTAINERS: Promote Krzysztof to PCI controller maintainer
      MAINTAINERS: Move to shared PCI tree
    torvalds committed Feb 10, 2023
    Copy the full SHA
    4cfd5af View commit details
    Browse the repository at this point in the history
  4. Revert "PCI/ASPM: Refactor L1 PM Substates Control Register programming"

    This reverts commit 5e85eba.
    
    Thomas Witt reported that 5e85eba ("PCI/ASPM: Refactor L1 PM Substates
    Control Register programming") broke suspend/resume on a Tuxedo
    Infinitybook S 14 v5, which seems to use a Clevo L140CU Mainboard.
    
    The main symptom is:
    
      iwlwifi 0000:02:00.0: Unable to change power state from D3hot to D0, device inaccessible
      nvme 0000:03:00.0: Unable to change power state from D3hot to D0, device inaccessible
    
    and the machine is only partially usable after resume.  It can't run dmesg
    and can't do a clean reboot.  This happens on every suspend/resume cycle.
    
    Revert 5e85eba until we can figure out the root cause.
    
    Fixes: 5e85eba ("PCI/ASPM: Refactor L1 PM Substates Control Register programming")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216877
    Reported-by: Thomas Witt <kernel@witt.link>
    Tested-by: Thomas Witt <kernel@witt.link>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org	# v6.1+
    Cc: Vidya Sagar <vidyas@nvidia.com>
    bjorn-helgaas committed Feb 10, 2023
    Copy the full SHA
    ff209ec View commit details
    Browse the repository at this point in the history
  5. Revert "PCI/ASPM: Save L1 PM Substates Capability for suspend/resume"

    This reverts commit 4ff116d.
    
    Tasev Nikola and Mark Enriquez reported that resume from suspend was broken
    in v6.1-rc1.  Tasev bisected to a47126e ("PCI/PTM: Cache PTM
    Capability offset"), but we can't figure out how that could be related.
    
    Mark saw the same symptoms and bisected to 4ff116d ("PCI/ASPM: Save L1
    PM Substates Capability for suspend/resume"), which does have a connection:
    it restores L1 Substates configuration while ASPM L1 may be enabled:
    
      pci_restore_state
        pci_restore_aspm_l1ss_state
          aspm_program_l1ss
            pci_write_config_dword(PCI_L1SS_CTL1, ctl1)         # L1SS restore
        pci_restore_pcie_state
          pcie_capability_write_word(PCI_EXP_LNKCTL, cap[i++])  # L1 restore
    
    which is a problem because PCIe r6.0, sec 5.5.4, requires that:
    
      If setting either or both of the enable bits for ASPM L1 PM
      Substates, both ports must be configured as described in this
      section while ASPM L1 is disabled.
    
    Separately, Thomas Witt reported that 5e85eba ("PCI/ASPM: Refactor L1
    PM Substates Control Register programming") broke suspend/resume, and it
    depends on 4ff116d.
    
    Revert 4ff116d ("PCI/ASPM: Save L1 PM Substates Capability for
    suspend/resume") to fix the resume issue and enable revert of 5e85eba
    to fix the issue Thomas reported.
    
    Note that reverting 4ff116d means L1 Substates config may be lost on
    suspend/resume.  As far as we know the system will use more power but will
    still *work* correctly.
    
    Fixes: 4ff116d ("PCI/ASPM: Save L1 PM Substates Capability for suspend/resume")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216782
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216877
    Reported-by: Tasev Nikola <tasev.stefanoska@skynet.be>
    Reported-by: Mark Enriquez <enriquezmark36@gmail.com>
    Reported-by: Thomas Witt <kernel@witt.link>
    Tested-by: Mark Enriquez <enriquezmark36@gmail.com>
    Tested-by: Thomas Witt <kernel@witt.link>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org	# v6.1+
    Cc: Vidya Sagar <vidyas@nvidia.com>
    bjorn-helgaas committed Feb 10, 2023
    Copy the full SHA
    a7152be View commit details
    Browse the repository at this point in the history
  6. Merge tag 'soc-fixes-6.2-4' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/soc/soc
    
    Pull ARM SoC fixes from Arnd Bergmann:
     "All the changes this time are minor devicetree corrections, the
      majority being for 64-bit Rockchip SoC support. These are a couple of
      corrections for properties that are in violation of the binding, some
      that put the machine into safer operating points for the eMMC and
      thermal settings, and missing properties that prevented rk356x PCIe
      and ethernet from working correctly.
    
      The changes for amlogic and mediatek address incorrect properties that
      were preventing the display support on MT8195 and the MMC support on
      various Meson SoCs from working correctly.
    
      The stihxxx-b2120 change fixes the GPIO polarity for the DVB tuner to
      allow this to be used correctly after a futre driver change, though it
      has no effect on older kernels"
    
    * tag 'soc-fixes-6.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
      arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
      arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
      arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
      ARM: dts: stihxxx-b2120: fix polarity of reset line of tsin0 port
      arm64: dts: mediatek: mt8195: Fix vdosys* compatible strings
      arm64: dts: rockchip: align rk3399 DMC OPP table with bindings
      arm64: dts: rockchip: set sdmmc0 speed to sd-uhs-sdr50 on rock-3a
      arm64: dts: rockchip: fix probe of analog sound card on rock-3a
      arm64: dts: rockchip: add missing #interrupt-cells to rk356x pcie2x1
      arm64: dts: rockchip: fix input enable pinconf on rk3399
      ARM: dts: rockchip: add power-domains property to dp node on rk3288
      arm64: dts: rockchip: add io domain setting to rk3566-box-demo
      arm64: dts: rockchip: remove unsupported property from sdmmc2 for rock-3a
      arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc
      arm64: dts: rockchip: reduce thermal limits on rk3399-pinephone-pro
      arm64: dts: rockchip: use correct reset names for rk3399 crypto nodes
    torvalds committed Feb 10, 2023
    Copy the full SHA
    4f72a26 View commit details
    Browse the repository at this point in the history
  7. Merge tag 'riscv-for-linus-6.2-rc8' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/riscv/linux
    
    Pull RISC-V fixes from Palmer Dabbelt:
     "This is a little bigger that I'd hope for this late in the cycle, but
      they're all pretty concrete fixes and the only one that's bigger than
      a few lines is pmdp_collapse_flush() (which is almost all
      boilerplate/comment). It's also all bug fixes for issues that have
      been around for a while.
    
      So I think it's not all that scary, just bad timing.
    
       - avoid partial TLB fences for huge pages, which are disallowed by
         the ISA
    
       - avoid missing a frame when dumping stacks
    
       - avoid misaligned accesses (and possibly overflows) in kprobes
    
       - fix a race condition in tracking page dirtiness"
    
    * tag 'riscv-for-linus-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
      riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
      riscv: kprobe: Fixup misaligned load text
      riscv: stacktrace: Fix missing the first frame
      riscv: mm: Implement pmdp_collapse_flush for THP
    torvalds committed Feb 10, 2023
    Copy the full SHA
    8e9a842 View commit details
    Browse the repository at this point in the history
  8. Merge tag 'ceph-for-6.2-rc8' of https://github.com/ceph/ceph-client

    Pull ceph fix from Ilya Dryomov:
     "A fix for a pretty embarrassing omission in the session flush handler
      from Xiubo, marked for stable"
    
    * tag 'ceph-for-6.2-rc8' of https://github.com/ceph/ceph-client:
      ceph: flush cap releases when the session is flushed
    torvalds committed Feb 10, 2023
    Copy the full SHA
    3647d2d View commit details
    Browse the repository at this point in the history
  9. Merge tag 'block-6.2-2023-02-10' of git://git.kernel.dk/linux

    Pull block fix from Jens Axboe:
     "A single fix for a smatch regression introduced in this merge window"
    
    * tag 'block-6.2-2023-02-10' of git://git.kernel.dk/linux:
      nvme-auth: mark nvme_auth_wq static
    torvalds committed Feb 10, 2023
    Copy the full SHA
    2971668 View commit details
    Browse the repository at this point in the history
  10. Merge tag 'sound-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/tiwai/sound
    
    Pull sound fixes from Takashi Iwai:
     "Hopefully the last one for 6.2, a collection of the fixes that have
      been gathered since the last pull.
    
      All changes are small and trivial device-specific fixes"
    
    * tag 'sound-6.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: hda/realtek: Add Positivo N14KP6-TG
      ASoC: topology: Return -ENOMEM on memory allocation failure
      ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
      ASoC: fsl_sai: fix getting version from VERID
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for a HP platform.
      ALSA: hda/realtek: Add quirk for ASUS UM3402 using CS35L41
      ASoC: codecs: es8326: Fix DTS properties reading
      ASoC: tas5805m: add missing page switch.
      ASoC: tas5805m: rework to avoid scheduling while atomic.
      ALSA: hda/realtek: Enable mute/micmute LEDs on HP Elitebook, 645 G9
      ASoC: SOF: amd: Fix for handling spurious interrupts from DSP
      ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book2 Pro 360
      ALSA: pci: lx6464es: fix a debug loop
      ASoC: rt715-sdca: fix clock stop prepare timeout issue
    torvalds committed Feb 10, 2023
    Copy the full SHA
    4fe3722 View commit details
    Browse the repository at this point in the history
Older