1. 23 Mar, 2022 6 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 1bc19105
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - New user_events interface. User space can register an event with the
         kernel describing the format of the event. Then it will receive a
         byte in a page mapping that it can check against. A privileged task
         can then enable that event like any other event, which will change
         the mapped byte to true, telling the user space application to start
         writing the event to the tracing buffer.
      
       - Add new "ftrace_boot_snapshot" kernel command line parameter. When
         set, the tracing buffer will be saved in the snapshot buffer at boot
         up when the kernel hands things over to user space. This will keep
         the traces that happened at boot up available even if user space boot
         up has tracing as well.
      
       - Have TRACE_EVENT_ENUM() also update trace event field type
         descriptions. Thus if a static array defines its size with an enum,
         the user space trace event parsers can still know how to parse that
         array.
      
       - Add new TRACE_CUSTOM_EVENT() macro. This acts the same as the
         TRACE_EVENT() macro, but will attach to an existing tracepoint. This
         will make one tracepoint be able to trace different content and not
         be stuck at only what the original TRACE_EVENT() macro exports.
      
       - Fixes to tracing error logging.
      
       - Better saving of cmdlines to PIDs when tracing (use the wakeup events
         for mapping).
      
      * tag 'trace-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (30 commits)
        tracing: Have type enum modifications copy the strings
        user_events: Add trace event call as root for low permission cases
        tracing/user_events: Use alloc_pages instead of kzalloc() for register pages
        tracing: Add snapshot at end of kernel boot up
        tracing: Have TRACE_DEFINE_ENUM affect trace event types as well
        tracing: Fix strncpy warning in trace_events_synth.c
        user_events: Prevent dyn_event delete racing with ioctl add/delete
        tracing: Add TRACE_CUSTOM_EVENT() macro
        tracing: Move the defines to create TRACE_EVENTS into their own files
        tracing: Add sample code for custom trace events
        tracing: Allow custom events to be added to the tracefs directory
        tracing: Fix last_cmd_set() string management in histogram code
        user_events: Fix potential uninitialized pointer while parsing field
        tracing: Fix allocation of last_cmd in last_cmd_set()
        user_events: Add documentation file
        user_events: Add sample code for typical usage
        user_events: Add self-test for validator boundaries
        user_events: Add self-test for perf_event integration
        user_events: Add self-test for dynamic_events integration
        user_events: Add self-test for ftrace integration
        ...
      1bc19105
    • Linus Torvalds's avatar
      Merge tag 'trace-rtla-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 20f463fb
      Linus Torvalds authored
      Pull RTLA tracing tool updates from Steven Rostedt:
       "Real Time Analysis Tool updatesfor 5.18:
      
         - Support for adjusting tracing_threashold
      
         - Add -a (auto) option to make it easier for users to debug in the field
      
         - Add -e option to add more events to the trace
      
         - Add --trigger option to add triggers to events
      
         - Add --filter option to filter events
      
         - Add support to save histograms to the file
      
         - Add --dma-latency to set /dev/cpu_dma_latency
      
         - Other fixes and cleanups"
      
      * tag 'trace-rtla-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        rtla: Tools main loop cleanup
        rtla/timerlat: Add --dma-latency option
        rtla/osnoise: Fix osnoise hist stop tracing message
        rtla: Check for trace off also in the trace instance
        rtla/trace: Save event histogram output to a file
        rtla: Add --filter support
        rtla/trace: Add trace event filter helpers
        rtla: Add --trigger support
        rtla/trace: Add trace event trigger helpers
        rtla: Add -e/--event support
        rtla/trace: Add trace events helpers
        rtla/timerlat: Add the automatic trace option
        rtla/osnoise: Add the automatic trace option
        rtla/osnoise: Add an option to set the threshold
        rtla/osnoise: Add support to adjust the tracing_thresh
      20f463fb
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 3ef4ea3d
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Make %pK behave the same as %p for kptr_restrict == 0 also with
         no_hash_pointers parameter
      
       - Ignore the default console in the device tree also when console=null
         or console="" is used on the command line
      
       - Document console=null and console="" behavior
      
       - Prevent a deadlock and a livelock caused by console_lock in panic()
      
       - Make console_lock available for panicking CPU
      
       - Fast query for the next to-be-used sequence number
      
       - Use the expected return values in printk.devkmsg __setup handler
      
       - Use the correct atomic operations in wake_up_klogd() irq_work handler
      
       - Avoid possible unaligned access when handling %4cc printing format
      
      * tag 'printk-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        printk: fix return value of printk.devkmsg __setup handler
        vsprintf: Fix %pK with kptr_restrict == 0
        printk: make suppress_panic_printk static
        printk: Set console_set_on_cmdline=1 when __add_preferred_console() is called with user_specified == true
        Docs: printk: add 'console=null|""' to admin/kernel-parameters
        printk: use atomic updates for klogd work
        printk: Drop console_sem during panic
        printk: Avoid livelock with heavy printk during panic
        printk: disable optimistic spin during panic
        printk: Add panic_in_progress helper
        vsprintf: Move space out of string literals in fourcc_string()
        vsprintf: Fix potential unaligned access
        printk: ringbuffer: Improve prb_next_seq() performance
      3ef4ea3d
    • Herbert Xu's avatar
      cacheflush.h: Add forward declaration for struct folio · 30d024b5
      Herbert Xu authored
      The struct folio is not declared in cacheflush.h so we need to provide
      a forward declaration as otherwise users of this header file may get
      warnings.
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Fixes: 522a0032 ("Add linux/cacheflush.h")
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      30d024b5
    • Linus Torvalds's avatar
      Merge tag 'folio-5.18b' of git://git.infradead.org/users/willy/pagecache · 6b1f86f8
      Linus Torvalds authored
      Pull filesystem folio updates from Matthew Wilcox:
       "Primarily this series converts some of the address_space operations to
        take a folio instead of a page.
      
        Notably:
      
         - a_ops->is_partially_uptodate() takes a folio instead of a page and
           changes the type of the 'from' and 'count' arguments to make it
           obvious they're bytes.
      
         - a_ops->invalidatepage() becomes ->invalidate_folio() and has a
           similar type change.
      
         - a_ops->launder_page() becomes ->launder_folio()
      
         - a_ops->set_page_dirty() becomes ->dirty_folio() and adds the
           address_space as an argument.
      
        There are a couple of other misc changes up front that weren't worth
        separating into their own pull request"
      
      * tag 'folio-5.18b' of git://git.infradead.org/users/willy/pagecache: (53 commits)
        fs: Remove aops ->set_page_dirty
        fb_defio: Use noop_dirty_folio()
        fs: Convert __set_page_dirty_no_writeback to noop_dirty_folio
        fs: Convert __set_page_dirty_buffers to block_dirty_folio
        nilfs: Convert nilfs_set_page_dirty() to nilfs_dirty_folio()
        mm: Convert swap_set_page_dirty() to swap_dirty_folio()
        ubifs: Convert ubifs_set_page_dirty to ubifs_dirty_folio
        f2fs: Convert f2fs_set_node_page_dirty to f2fs_dirty_node_folio
        f2fs: Convert f2fs_set_data_page_dirty to f2fs_dirty_data_folio
        f2fs: Convert f2fs_set_meta_page_dirty to f2fs_dirty_meta_folio
        afs: Convert afs_dir_set_page_dirty() to afs_dir_dirty_folio()
        btrfs: Convert extent_range_redirty_for_io() to use folios
        fs: Convert trivial uses of __set_page_dirty_nobuffers to filemap_dirty_folio
        btrfs: Convert from set_page_dirty to dirty_folio
        fscache: Convert fscache_set_page_dirty() to fscache_dirty_folio()
        fs: Add aops->dirty_folio
        fs: Remove aops->launder_page
        orangefs: Convert launder_page to launder_folio
        nfs: Convert from launder_page to launder_folio
        fuse: Convert from launder_page to launder_folio
        ...
      6b1f86f8
    • Linus Torvalds's avatar
      Merge tag 'folio-5.18c' of git://git.infradead.org/users/willy/pagecache · 9030fb0b
      Linus Torvalds authored
      Pull folio updates from Matthew Wilcox:
      
       - Rewrite how munlock works to massively reduce the contention on
         i_mmap_rwsem (Hugh Dickins):
      
           https://lore.kernel.org/linux-mm/8e4356d-9622-a7f0-b2c-f116b5f2efea@google.com/
      
       - Sort out the page refcount mess for ZONE_DEVICE pages (Christoph
         Hellwig):
      
           https://lore.kernel.org/linux-mm/20220210072828.2930359-1-hch@lst.de/
      
       - Convert GUP to use folios and make pincount available for order-1
         pages. (Matthew Wilcox)
      
       - Convert a few more truncation functions to use folios (Matthew
         Wilcox)
      
       - Convert page_vma_mapped_walk to use PFNs instead of pages (Matthew
         Wilcox)
      
       - Convert rmap_walk to use folios (Matthew Wilcox)
      
       - Convert most of shrink_page_list() to use a folio (Matthew Wilcox)
      
       - Add support for creating large folios in readahead (Matthew Wilcox)
      
      * tag 'folio-5.18c' of git://git.infradead.org/users/willy/pagecache: (114 commits)
        mm/damon: minor cleanup for damon_pa_young
        selftests/vm/transhuge-stress: Support file-backed PMD folios
        mm/filemap: Support VM_HUGEPAGE for file mappings
        mm/readahead: Switch to page_cache_ra_order
        mm/readahead: Align file mappings for non-DAX
        mm/readahead: Add large folio readahead
        mm: Support arbitrary THP sizes
        mm: Make large folios depend on THP
        mm: Fix READ_ONLY_THP warning
        mm/filemap: Allow large folios to be added to the page cache
        mm: Turn can_split_huge_page() into can_split_folio()
        mm/vmscan: Convert pageout() to take a folio
        mm/vmscan: Turn page_check_references() into folio_check_references()
        mm/vmscan: Account large folios correctly
        mm/vmscan: Optimise shrink_page_list for non-PMD-sized folios
        mm/vmscan: Free non-shmem folios without splitting them
        mm/rmap: Constify the rmap_walk_control argument
        mm/rmap: Convert rmap_walk() to take a folio
        mm: Turn page_anon_vma() into folio_anon_vma()
        mm/rmap: Turn page_lock_anon_vma_read() into folio_lock_anon_vma_read()
        ...
      9030fb0b
  2. 22 Mar, 2022 34 commits