1. 08 Mar, 2021 1 commit
    • Feng Tang's avatar
      tools/x86: Add a kcpuid tool to show raw CPU features · c6b2f240
      Feng Tang authored
      End users frequently want to know what features their processor
      supports, independent of what the kernel supports.
      
      /proc/cpuinfo is great. It is omnipresent and since it is provided by
      the kernel it is always as up to date as the kernel. But, it could be
      ambiguous about processor features which can be disabled by the kernel
      at boot-time or compile-time.
      
      There are some user space tools showing more raw features, but they are
      not bound with kernel, and go with distros. Many end users are still
      using old distros with new kernels (upgraded by themselves), and may
      not upgrade the distros only to get a newer tool.
      
      So here arise the need for a new tool, which
        * shows raw CPU features read from the CPUID instruction
        * will be easier to update compared to existing userspace
          tooling (perhaps distributed like perf)
        * inherits "modern" kernel development process, in contrast to some
          of the existing userspace CPUID tools which are still being developed
          without git and distributed in tarballs from non-https sites.
        * Can produce output consistent with /proc/cpuinfo to make comparison
          easier.
      
      The CPUID leaf definitions are kept in an .csv file which allows for
      updating only that file to add support for new feature leafs.
      
      This is based on prototype code from Borislav Petkov
      (http://sr71.net/~dave/intel/stupid-cpuid.c).
      
       [ bp:
         - Massage, add #define _GNU_SOURCE to fix implicit declaration of
           function ‘strcasestr' warning
         - remove superfluous newlines
         - fallback to cpuid.csv in the current dir if none found
         - fix typos
         - move comments over the lines instead of sideways. ]
      
      Originally-from: Borislav Petkov <bp@alien8.de>
      Suggested-by: default avatarDave Hansen <dave.hansen@intel.com>
      Suggested-by: default avatarBorislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarFeng Tang <feng.tang@intel.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Link: https://lkml.kernel.org/r/1614928878-86075-1-git-send-email-feng.tang@intel.com
      c6b2f240
  2. 06 Mar, 2021 4 commits
  3. 05 Mar, 2021 33 commits
  4. 04 Mar, 2021 2 commits
    • Jens Axboe's avatar
      kernel: provide create_io_thread() helper · cc440e87
      Jens Axboe authored
      Provide a generic helper for setting up an io_uring worker. Returns a
      task_struct so that the caller can do whatever setup is needed, then call
      wake_up_new_task() to kick it into gear.
      
      Add a kernel_clone_args member, io_thread, which tells copy_process() to
      mark the task with PF_IO_WORKER.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      cc440e87
    • Pavel Begunkov's avatar
      io_uring: reliably cancel linked timeouts · dd59a3d5
      Pavel Begunkov authored
      Linked timeouts are fired asynchronously (i.e. soft-irq), and use
      generic cancellation paths to do its stuff, including poking into io-wq.
      The problem is that it's racy to access tctx->io_wq, as
      io_uring_task_cancel() and others may be happening at this exact moment.
      Mark linked timeouts with REQ_F_INLIFGHT for now, making sure there are
      no timeouts before io-wq destraction.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      dd59a3d5