1. 10 May, 2021 23 commits
    • Paul E. McKenney's avatar
      torture: Make kvm-remote.sh account for network failure in pathname checks · c43d3b00
      Paul E. McKenney authored
      In a long-duration kvm-remote.sh run, almost all of the remote accesses will
      be simple file-existence checks.  These are thus the most likely to be caught
      out by network failures, which do happen from time to time.
      
      This commit therefore takes a first step towards tolerating temporary
      network outages by making the file-existence checks repeat in the face of
      such an outage.  They also print a message every minute during a outage,
      allowing the user to take appropriate action.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      c43d3b00
    • Paul E. McKenney's avatar
      rcutorture: Don't count CPU-stalled time against priority boosting · 063f5a4d
      Paul E. McKenney authored
      It will frequently be the case that rcu_torture_boost() will get a
      ->start_gp_poll() cookie that needs almost all of the current grace period
      plus an additional grace period to elapse before ->poll_gp_state() will
      return true.  It is quite possible that the current grace period will have
      (say) two seconds of stall by a CPU failing to pass through a quiescent
      state, followed by 300 milliseconds of delay due to a preempted reader.
      The next grace period might suffer only one second of stall by a CPU,
      followed by another 300 milliseconds of delay due to a preempted reader.
      This is an example of RCU priority boosting doing its job, but the full
      elapsed time of 3.6 seconds exceeds the 3.5-second limit.  In addition,
      there is no CPU stall in force at the 3.5-second mark, so this would
      nevertheless currently be counted as an RCU priority boosting failure.
      
      This commit therefore avoids this sort of false positive by resetting
      the gp_state_time timestamp any time that the current grace period is
      being blocked by a CPU.  This results in extremely frequent calls to
      the ->check_boost_failed() function, so this commit provides a lockless
      fastpath that is selected by supplying a NULL CPU-number pointer.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      063f5a4d
    • Paul E. McKenney's avatar
      rcutorture: Forgive RCU boost failures when CPUs don't pass through QS · 0260b92e
      Paul E. McKenney authored
      Currently, rcu_torture_boost() runs CPU-bound at real-time priority
      to force RCU priority inversions.  It then checks that grace periods
      progress during this CPU-bound time.  If grace periods fail to progress,
      it reports and RCU priority boosting failure.
      
      However, it is possible (and sometimes does happen) that the grace period
      fails to progress due to a CPU failing to pass through a quiescent state
      for an extended time period (3.5 seconds by default).  This can happen
      due to vCPU preemption, long-running interrupts, and much else besides.
      There is nothing that RCU priority boosting can do about these situations,
      and so they should not be counted as RCU priority boosting failures.
      
      This commit therefore checks for CPUs (as opposed to preempted tasks)
      holding up a grace period, and flags the resulting RCU priority boosting
      failures, but does not splat nor count them as errors.  It does rate-limit
      them to avoid flooding the console log.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      0260b92e
    • Paul E. McKenney's avatar
      rcutorture: Add BUSTED-BOOST to test RCU priority boosting tests · d4240d62
      Paul E. McKenney authored
      This commit adds the BUSTED-BOOST rcutorture scenario, which can be
      used to test rcutorture's ability to test RCU priority boosting.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      d4240d62
    • Paul E. McKenney's avatar
      rcutorture: Make rcu_torture_boost_failed() check for GP end · bcd4af44
      Paul E. McKenney authored
      It is possible that a delayed grace period that rcu_torture_boost()
      was polling for ended while rcu_torture_boost_failed() was printing the
      failure splat.  It would be good to know when this happens.  This commit
      therefore has rcu_torture_boost_failed() recheck the grace period after
      printing the splat, and printing a message indicating whether or not
      the grace period has ended.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      bcd4af44
    • Paul E. McKenney's avatar
      rcutorture: Consolidate rcu_torture_boost() timing and statistics · 8c7ec02e
      Paul E. McKenney authored
      This commit consolidates two loops in rcu_torture_boost(), one of which
      counts the number of boost-test episodes and the other of which computes
      the start time of the next episode, into one loop that does both with but
      a single acquisition of boost_mutex.  This means that the count of the
      number of boost-test episodes is incremented after an episode completes
      rather than before it starts, but it also avoids the over-counting that
      was possible previously.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      8c7ec02e
    • Paul E. McKenney's avatar
      rcutorture: Delay-based false positives for RCU priority boosting tests · 7b9dad7a
      Paul E. McKenney authored
      If an rcu_torture_boost() kthread determines that its grace period
      has not yet ended, it invokes rcu_torture_boost_failed() which checks
      whether enough time has elapsed for this to be considered a failure of
      RCU priority boosting, and, if so, flags the error.
      
      Unfortunately, that kthread might be preempted for some seconds between
      the time that it checks the grace period and the time that it checks the
      time.  This delay can result in a false positive, featuring a complaint
      that a particular grace period has not ended, followed by a diagnostic
      dump featuring a much later grace period.
      
      This commit avoids these false positives by rechecking for the end of
      the grace period after the time check.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      7b9dad7a
    • Paul E. McKenney's avatar
      torture: Set kvm.sh language to English · 00ad25f6
      Paul E. McKenney authored
      Some of the code invoked directly and indirectly from kvm.sh parses
      the output of commands.  This parsing assumes English, which can cause
      failures if the user has set some other language.  In a few cases,
      there are language-independent commands available, but this is not
      always the case.  Therefore, as an alternative to polyglot parsing,
      this commit sets the LANG environment variable to en_US.UTF-8.
      Reported-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      00ad25f6
    • Frederic Weisbecker's avatar
      torture: Correctly fetch number of CPUs for non-English languages · f8c8484d
      Frederic Weisbecker authored
      Grepping for "CPU" on lscpu output isn't always successful, depending
      on the local language setting.  As a result, the build can be aborted
      early with:
      
      	"make: the '-j' option requires a positive integer argument"
      
      This commit therefore uses the human-language-independent approach
      available via the getconf command, both in kvm-build.sh and in
      kvm-remote.sh.
      Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      f8c8484d
    • Paul E. McKenney's avatar
      rcutorture: Judge RCU priority boosting on grace periods, not callbacks · ea6d962e
      Paul E. McKenney authored
      Currently, rcutorture's testing of RCU priority boosting insists not
      only that grace periods complete, but also that callbacks be invoked.
      Although this is in fact what the user would want, ensuring that there
      is sufficient CPU bandwidth devoted to callback execution is in fact
      the user's responsibility.  One could argue that rcutorture can take on
      that responsibility, which is true in theory.  But in practice, ensuring
      sufficient CPU bandwidth to ksoftirqd, any rcuc kthreads, and any rcuo
      kthreads is not particularly consistent with rcutorture's main job,
      that of stress-testing RCU.  In addition, if the system administrator
      (say) makes very poor choices when pinning rcuo kthreads and then runs
      rcutorture, there really isn't much rcutorture can do.
      
      Besides, RCU priority boosting only boosts lagging readers, not all the
      machinery required to invoke callbacks in a timely fashion.
      
      This commit therefore switches rcutorture's evaluation of RCU priority
      boosting from callback execution to grace-period completion by using
      the new start_poll_synchronize_rcu() and poll_state_synchronize_rcu()
      functions.  When rcutorture is built in (as in when there is no innocent
      workload to inconvenience), the ksoftirqd ktheads are boosted to real-time
      priority 2 in order to allow timeouts to work properly in the face of
      rcutorture's testing of RCU priority boosting.
      
      Indeed, it is not as easy as it looks to create a reliable test of RCU
      priority boosting without destroying the rest of the kernel!
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      ea6d962e
    • Paul E. McKenney's avatar
      torture: Make kvm-find-errors.sh account for kvm-remote.sh · 226dd39d
      Paul E. McKenney authored
      Currently, kvm-find-errors.sh assumes that if "--buildonly" appears in
      the log file, then the run did builds but ran no kernels.  This breaks
      with kvm-remote.sh, which uses kvm.sh to do a build, then kvm-again.sh
      to run the kernels built on remote systems.  This commit therefore adds
      a check for a kvm-remote.sh run.
      
      While in the area, this commit checks for "--build-only" as well as
      "--build-only".
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      226dd39d
    • Paul E. McKenney's avatar
      torture: Make the build machine control N in "make -jN" · b09751d7
      Paul E. McKenney authored
      Given remote rcutorture runs, it is quite possible that the build system
      will have fewer CPUs than the system(s) running the actual test scenarios.
      In such cases, using the number of CPUs on the test systems can overload
      the build system, slowing down the build or, worse, OOMing the build
      system.  This commit therefore uses the build system's CPU count to set
      N in "make -jN", and by tradition sets "N" to double the CPU count.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      b09751d7
    • Paul E. McKenney's avatar
      torture: Make kvm.sh use abstracted kvm-end-run-stats.sh · f254a0b5
      Paul E. McKenney authored
      This commit reduces duplicate code by making kvm.sh use the new
      kvm-end-run-stats.sh script rather than taking its historical approach
      of open-coding it.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      f254a0b5
    • Paul E. McKenney's avatar
      torture: Abstract end-of-run summary · ee8fef91
      Paul E. McKenney authored
      This commit abstractst the end-of-run summary from kvm-again.sh, and,
      while in the area, brings its format into line with that of kvm.sh.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      ee8fef91
    • Paul E. McKenney's avatar
      torture: Fix grace-period rate output · 32dbdaf7
      Paul E. McKenney authored
      The kvm-again.sh script relies on shell comments added to the qemu-cmd
      file, but this means that code extracting values from the QEMU command in
      this file must grep out those commment.  Which kvm-recheck-rcu.sh failed
      to do, which destroyed its grace-period-per-second calculation.  This
      commit therefore adds the needed "grep -v '^#'" to kvm-recheck-rcu.sh.
      
      Fixes: 315957ca ("torture: Prepare for splitting qemu execution from kvm-test-1-run.sh")
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      32dbdaf7
    • Paul E. McKenney's avatar
      rcutorture: Abstract read-lock-held checks · a5c095e0
      Paul E. McKenney authored
      This commit adds a (*readlock_held)() function pointer to the
      rcu_torture_ops structure in order to make the rcu_torture_one_read()
      function's rcu_dereference_check() lockdep expression more appropriate
      for a given run.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      a5c095e0
    • Paul E. McKenney's avatar
      refscale: Add acqrel, lock, and lock-irq · e9b800db
      Paul E. McKenney authored
      This commit adds scale_type of acqrel, lock, and lock-irq to
      test acquisition and release.  Note that the refscale.nreaders=1
      module parameter is required if you wish to test uncontended locking.
      In contrast, acqrel uses a per-CPU variable, so should be just fine with
      large values of the refscale.nreaders=1 module parameter.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      e9b800db
    • Paul E. McKenney's avatar
      torture: Add kvm-remote.sh script for distributed rcutorture test runs · 0092eae4
      Paul E. McKenney authored
      This commit adds a kvm-remote.sh script that prepares a tarball that
      is then downloaded to the remote system(s) and executed.  The user is
      responsible for having set up the remote systems to run qemu, but all the
      kernel builds are done on the system running the kvm-remote.sh script.
      The user is also responsible for setting up the remote systems so that
      ssh can be run non-interactively, given that ssh is used to poll the
      remote systems in order to detect completion of each batch.
      
      See the script's header comment for usage information.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      0092eae4
    • Paul E. McKenney's avatar
      rcuscale: Allow CPU hotplug to be enabled · 17914186
      Paul E. McKenney authored
      It is no longer possible to disable CPU hotplug in many configurations,
      which means that the CONFIG_HOTPLUG_CPU=n lines in rcuscale's Kconfig
      options are just a source of useless diagnostics.  In addition, rcuscale
      doesn't do CPU-hotplug operations in any case.  This commit therefore
      changes these lines to read CONFIG_HOTPLUG_CPU=y.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      17914186
    • Paul E. McKenney's avatar
      refscale: Allow CPU hotplug to be enabled · 68d415f9
      Paul E. McKenney authored
      It is no longer possible to disable CPU hotplug in many configurations,
      which means that the CONFIG_HOTPLUG_CPU=n lines in refscale's Kconfig
      options are just a source of useless diagnostics.  In addition, refscale
      doesn't do CPU-hotplug operations in any case.  This commit therefore
      changes these lines to read CONFIG_HOTPLUG_CPU=y.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      68d415f9
    • Paul E. McKenney's avatar
      torture: Make kvm-again.sh use "scenarios" rather than "batches" file · fb4855c3
      Paul E. McKenney authored
      This commit saves a few lines of code by making kvm-again.sh use the
      "scenarios" file rather than the "batches" file, both of which are
      generated by kvm.sh.
      
      This results in a break point because new versions of kvm-again.sh cannot
      handle "res" directories produced by old versions of kvm.sh, which lack
      the "scenarios" file.  In the unlikely event that this becomes a problem,
      a trivial script suffices to convert the "batches" file to a "scenarios"
      file, and this script may be easily extracted from kvm.sh.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      fb4855c3
    • Paul E. McKenney's avatar
      torture: Add "scenarios" option to kvm.sh --dryrun parameter · 3d2cc4fe
      Paul E. McKenney authored
      This commit adds "--dryrun scenarios" to kvm.sh, which prints something
      like this:
      
      1.  TREE03
      2.  TREE07
      3.  SRCU-P SRCU-N
      4.  TREE01 TRACE01
      5.  TREE02 TRACE02
      6.  TREE04 RUDE01 TASKS01
      7.  TREE05 TASKS03 SRCU-T SRCU-U
      8.  TASKS02 TINY01 TINY02 TREE09
      
      This format is more convenient for scripts that run batches of scenarios.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      3d2cc4fe
    • Paul E. McKenney's avatar
      torture: Fix remaining erroneous torture.sh instance of $* · 98da7719
      Paul E. McKenney authored
      Although "eval" was removed from torture.sh, that commit failed to
      update the KCSAN instance of $* to "$@".  This results in failures when
      (for example) --bootargs is given more than one argument.  This commit
      therefore makes this change.
      
      There is one remaining instance of $* in torture.sh, but this
      is used only in the "echo" command, where quoting doesn't matter
      so much.
      
      Fixes: 197220d4 ("torture: Remove use of "eval" in torture.sh")
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      98da7719
  2. 09 May, 2021 10 commits
    • Linus Torvalds's avatar
      Linux 5.13-rc1 · 6efb943b
      Linus Torvalds authored
      6efb943b
    • Linus Torvalds's avatar
      fbmem: fix horribly incorrect placement of __maybe_unused · 6dae40ae
      Linus Torvalds authored
      Commit b9d79e4c ("fbmem: Mark proc_fb_seq_ops as __maybe_unused")
      places the '__maybe_unused' in an entirely incorrect location between
      the "struct" keyword and the structure name.
      
      It's a wonder that gcc accepts that silently, but clang quite reasonably
      warns about it:
      
          drivers/video/fbdev/core/fbmem.c:736:21: warning: attribute declaration must precede definition [-Wignored-attributes]
          static const struct __maybe_unused seq_operations proc_fb_seq_ops = {
                              ^
      
      Fix it.
      
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6dae40ae
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm · efc58a96
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Bit later than usual, I queued them all up on Friday then promptly
        forgot to write the pull request email. This is mainly amdgpu fixes,
        with some radeon/msm/fbdev and one i915 gvt fix thrown in.
      
        amdgpu:
         - MPO hang workaround
         - Fix for concurrent VM flushes on vega/navi
         - dcefclk is not adjustable on navi1x and newer
         - MST HPD debugfs fix
         - Suspend/resumes fixes
         - Register VGA clients late in case driver fails to load
         - Fix GEM leak in user framebuffer create
         - Add support for polaris12 with 32 bit memory interface
         - Fix duplicate cursor issue when using overlay
         - Fix corruption with tiled surfaces on VCN3
         - Add BO size and stride check to fix BO size verification
      
        radeon:
         - Fix off-by-one in power state parsing
         - Fix possible memory leak in power state parsing
      
        msm:
         - NULL ptr dereference fix
      
        fbdev:
         - procfs disabled warning fix
      
        i915:
         - gvt: Fix a possible division by zero in vgpu display rate
           calculation"
      
      * tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: Use device specific BO size & stride check.
        drm/amdgpu: Init GFX10_ADDR_CONFIG for VCN v3 in DPG mode.
        drm/amd/pm: initialize variable
        drm/radeon: Avoid power table parsing memory leaks
        drm/radeon: Fix off-by-one power_state index heap overwrite
        drm/amd/display: Fix two cursor duplication when using overlay
        drm/amdgpu: add new MC firmware for Polaris12 32bit ASIC
        fbmem: Mark proc_fb_seq_ops as __maybe_unused
        drm/msm/dpu: Delete bonkers code
        drm/i915/gvt: Prevent divided by zero when calculating refresh rate
        amdgpu: fix GEM obj leak in amdgpu_display_user_framebuffer_create
        drm/amdgpu: Register VGA clients after init can no longer fail
        drm/amdgpu: Handling of amdgpu_device_resume return value for graceful teardown
        drm/amdgpu: fix r initial values
        drm/amd/display: fix wrong statement in mst hpd debugfs
        amdgpu/pm: set pp_dpm_dcefclk to readonly on NAVI10 and newer gpus
        amdgpu/pm: Prevent force of DCEFCLK on NAVI10 and SIENNA_CICHLID
        drm/amdgpu: fix concurrent VM flushes on Vega/Navi v2
        drm/amd/display: Reject non-zero src_y and src_x for video planes
      efc58a96
    • Linus Torvalds's avatar
      Merge tag 'block-5.13-2021-05-09' of git://git.kernel.dk/linux-block · 506c3079
      Linus Torvalds authored
      Pull block fix from Jens Axboe:
       "Turns out the bio max size change still has issues, so let's get it
        reverted for 5.13-rc1. We'll shake out the issues there and defer it
        to 5.14 instead"
      
      * tag 'block-5.13-2021-05-09' of git://git.kernel.dk/linux-block:
        Revert "bio: limit bio max size"
      506c3079
    • Linus Torvalds's avatar
      Merge tag '5.13-rc-smb3-part3' of git://git.samba.org/sfrench/cifs-2.6 · 0a55a1fb
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Three small SMB3 chmultichannel related changesets (also for stable)
        from the SMB3 test event this week.
      
        The other fixes are still in review/testing"
      
      * tag '5.13-rc-smb3-part3' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: if max_channels set to more than one channel request multichannel
        smb3: do not attempt multichannel to server which does not support it
        smb3: when mounting with multichannel include it in requested capabilities
      0a55a1fb
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9819f682
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "A set of scheduler updates:
      
         - Prevent PSI state corruption when schedule() races with cgroup
           move.
      
           A recent commit combined two PSI callbacks to reduce the number of
           cgroup tree updates, but missed that schedule() can drop rq::lock
           for load balancing, which opens the race window for
           cgroup_move_task() which then observes half updated state.
      
           The fix is to solely use task::ps_flags instead of looking at the
           potentially mismatching scheduler state
      
         - Prevent an out-of-bounds access in uclamp caused bu a rounding
           division which can lead to an off-by-one error exceeding the
           buckets array size.
      
         - Prevent unfairness caused by missing load decay when a task is
           attached to a cfs runqueue.
      
           The old load of the task was attached to the runqueue and never
           removed. Fix it by enforcing the load update through the hierarchy
           for unthrottled run queue instances.
      
         - A documentation fix fot the 'sched_verbose' command line option"
      
      * tag 'sched-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix unfairness caused by missing load decay
        sched: Fix out-of-bound access in uclamp
        psi: Fix psi state corruption when schedule() races with cgroup move
        sched,doc: sched_debug_verbose cmdline should be sched_verbose
      9819f682
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 732a27a0
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
       "A set of locking related fixes and updates:
      
         - Two fixes for the futex syscall related to the timeout handling.
      
           FUTEX_LOCK_PI does not support the FUTEX_CLOCK_REALTIME bit and
           because it's not set the time namespace adjustment for clock
           MONOTONIC is applied wrongly.
      
           FUTEX_WAIT cannot support the FUTEX_CLOCK_REALTIME bit because its
           always a relative timeout.
      
         - Cleanups in the futex syscall entry points which became obvious
           when the two timeout handling bugs were fixed.
      
         - Cleanup of queued_write_lock_slowpath() as suggested by Linus
      
         - Fixup of the smp_call_function_single_async() prototype"
      
      * tag 'locking-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Make syscall entry points less convoluted
        futex: Get rid of the val2 conditional dance
        futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI
        Revert 337f1304 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
        locking/qrwlock: Cleanup queued_write_lock_slowpath()
        smp: Fix smp_call_function_single_async prototype
      732a27a0
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 85bbba1c
      Linus Torvalds authored
      Pull x86 perf fix from Borislav Petkov:
       "Handle power-gating of AMD IOMMU perf counters properly when they are
        used"
      
      * tag 'perf_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating
      85bbba1c
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dd3e4012
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
       "A bunch of things accumulated for x86 in the last two weeks:
      
         - Fix guest vtime accounting so that ticks happening while the guest
           is running can also be accounted to it. Along with a consolidation
           to the guest-specific context tracking helpers.
      
         - Provide for the host NMI handler running after a VMX VMEXIT to be
           able to run on the kernel stack correctly.
      
         - Initialize MSR_TSC_AUX when RDPID is supported and not RDTSCP (virt
           relevant - real hw supports both)
      
         - A code generation improvement to TASK_SIZE_MAX through the use of
           alternatives
      
         - The usual misc and related cleanups and improvements"
      
      * tag 'x86_urgent_for_v5.13_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        KVM: x86: Consolidate guest enter/exit logic to common helpers
        context_tracking: KVM: Move guest enter/exit wrappers to KVM's domain
        context_tracking: Consolidate guest enter/exit wrappers
        sched/vtime: Move guest enter/exit vtime accounting to vtime.h
        sched/vtime: Move vtime accounting external declarations above inlines
        KVM: x86: Defer vtime accounting 'til after IRQ handling
        context_tracking: Move guest exit vtime accounting to separate helpers
        context_tracking: Move guest exit context tracking to separate helpers
        KVM/VMX: Invoke NMI non-IST entry instead of IST entry
        x86/cpu: Remove write_tsc() and write_rdtscp_aux() wrappers
        x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
        x86/resctrl: Fix init const confusion
        x86: Delete UD0, UD1 traces
        x86/smpboot: Remove duplicate includes
        x86/cpu: Use alternative to generate the TASK_SIZE_MAX constant
      dd3e4012
    • Jens Axboe's avatar
      Revert "bio: limit bio max size" · 35c820e7
      Jens Axboe authored
      This reverts commit cd2c7545.
      
      Alex reports that the commit causes corruption with LUKS on ext4. Revert
      it for now so that this can be investigated properly.
      
      Link: https://lore.kernel.org/linux-block/1620493841.bxdq8r5haw.none@localhost/Reported-by: default avatarAlex Xu (Hello71) <alex_y_xu@yahoo.ca>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      35c820e7
  3. 08 May, 2021 7 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · b7415964
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to avoid over-allocating the kernel's mapping on !MMU systems,
         which could lead to up to 2MiB of lost memory
      
       - The SiFive address extension errata only manifest on rv64, they are
         now disabled on rv32 where they are unnecessary
      
       - A pair of late-landing cleanups
      
      * tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: remove unused handle_exception symbol
        riscv: Consistify protect_kernel_linear_mapping_text_rodata() use
        riscv: enable SiFive errata CIP-453 and CIP-1200 Kconfig only if CONFIG_64BIT=y
        riscv: Only extend kernel reservation if mapped read-only
      b7415964
    • Linus Torvalds's avatar
      drm/i915/display: fix compiler warning about array overrun · fec4d427
      Linus Torvalds authored
      intel_dp_check_mst_status() uses a 14-byte array to read the DPRX Event
      Status Indicator data, but then passes that buffer at offset 10 off as
      an argument to drm_dp_channel_eq_ok().
      
      End result: there are only 4 bytes remaining of the buffer, yet
      drm_dp_channel_eq_ok() wants a 6-byte buffer.  gcc-11 correctly warns
      about this case:
      
        drivers/gpu/drm/i915/display/intel_dp.c: In function ‘intel_dp_check_mst_status’:
        drivers/gpu/drm/i915/display/intel_dp.c:3491:22: warning: ‘drm_dp_channel_eq_ok’ reading 6 bytes from a region of size 4 [-Wstringop-overread]
         3491 |                     !drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) {
              |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        drivers/gpu/drm/i915/display/intel_dp.c:3491:22: note: referencing argument 1 of type ‘const u8 *’ {aka ‘const unsigned char *’}
        In file included from drivers/gpu/drm/i915/display/intel_dp.c:38:
        include/drm/drm_dp_helper.h:1466:6: note: in a call to function ‘drm_dp_channel_eq_ok’
         1466 | bool drm_dp_channel_eq_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
              |      ^~~~~~~~~~~~~~~~~~~~
             6:14 elapsed
      
      This commit just extends the original array by 2 zero-initialized bytes,
      avoiding the warning.
      
      There may be some underlying bug in here that caused this confusion, but
      this is at least no worse than the existing situation that could use
      random data off the stack.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fec4d427
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 07db0563
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is a set of minor fixes in various drivers (qla2xxx, ufs,
        scsi_debug, lpfc) one doc fix and a fairly large update to the fnic
        driver to remove the open coded iteration functions in favour of the
        scsi provided ones"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: fnic: Use scsi_host_busy_iter() to traverse commands
        scsi: fnic: Kill 'exclude_id' argument to fnic_cleanup_io()
        scsi: scsi_debug: Fix cmd_per_lun, set to max_queue
        scsi: ufs: core: Narrow down fast path in system suspend path
        scsi: ufs: core: Cancel rpm_dev_flush_recheck_work during system suspend
        scsi: ufs: core: Do not put UFS power into LPM if link is broken
        scsi: qla2xxx: Prevent PRLI in target mode
        scsi: qla2xxx: Add marginal path handling support
        scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found
        scsi: ufs: core: Fix a typo in ufs-sysfs.c
        scsi: lpfc: Fix bad memory access during VPD DUMP mailbox command
        scsi: lpfc: Fix DMA virtual address ptr assignment in bsg
        scsi: lpfc: Fix illegal memory access on Abort IOCBs
        scsi: blk-mq: Fix build warning when making htmldocs
      07db0563
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 0f979d81
      Linus Torvalds authored
      Pull more Kbuild updates from Masahiro Yamada:
      
       - Convert sh and sparc to use generic shell scripts to generate the
         syscall headers
      
       - refactor .gitignore files
      
       - Update kernel/config_data.gz only when the content of the .config
         is really changed, which avoids the unneeded re-link of vmlinux
      
       - move "remove stale files" workarounds to scripts/remove-stale-files
      
       - suppress unused-but-set-variable warnings by default for Clang
         as well
      
       - fix locale setting LANG=C to LC_ALL=C
      
       - improve 'make distclean'
      
       - always keep intermediate objects from scripts/link-vmlinux.sh
      
       - move IF_ENABLED out of <linux/kconfig.h> to make it self-contained
      
       - misc cleanups
      
      * tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
        linux/kconfig.h: replace IF_ENABLED() with PTR_IF() in <linux/kernel.h>
        kbuild: Don't remove link-vmlinux temporary files on exit/signal
        kbuild: remove the unneeded comments for external module builds
        kbuild: make distclean remove tag files in sub-directories
        kbuild: make distclean work against $(objtree) instead of $(srctree)
        kbuild: refactor modname-multi by using suffix-search
        kbuild: refactor fdtoverlay rule
        kbuild: parameterize the .o part of suffix-search
        arch: use cross_compiling to check whether it is a cross build or not
        kbuild: remove ARCH=sh64 support from top Makefile
        .gitignore: prefix local generated files with a slash
        kbuild: replace LANG=C with LC_ALL=C
        Makefile: Move -Wno-unused-but-set-variable out of GCC only block
        kbuild: add a script to remove stale generated files
        kbuild: update config_data.gz only when the content of .config is changed
        .gitignore: ignore only top-level modules.builtin
        .gitignore: move tags and TAGS close to other tag files
        kernel/.gitgnore: remove stale timeconst.h and hz.bc
        usr/include: refactor .gitignore
        genksyms: fix stale comment
        ...
      0f979d81
    • Steve French's avatar
      smb3: if max_channels set to more than one channel request multichannel · c1f8a398
      Steve French authored
      Mounting with "multichannel" is obviously implied if user requested
      more than one channel on mount (ie mount parm max_channels>1).
      Currently both have to be specified. Fix that so that if max_channels
      is greater than 1 on mount, enable multichannel rather than silently
      falling back to non-multichannel.
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-By: default avatarTom Talpey <tom@talpey.com>
      Cc: <stable@vger.kernel.org> # v5.11+
      Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      c1f8a398
    • Steve French's avatar
      smb3: do not attempt multichannel to server which does not support it · 9c2dc11d
      Steve French authored
      We were ignoring CAP_MULTI_CHANNEL in the server response - if the
      server doesn't support multichannel we should not be attempting it.
      
      See MS-SMB2 section 3.2.5.2
      Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Reviewed-By: default avatarTom Talpey <tom@talpey.com>
      Cc: <stable@vger.kernel.org> # v5.8+
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      9c2dc11d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · ab159ac5
      Linus Torvalds authored
      Pull powerpc updates and fixes from Michael Ellerman:
       "A bit of a mixture of things, tying up some loose ends.
      
        There's the removal of the nvlink code, which dependend on a commit in
        the vfio tree. Then the enablement of huge vmalloc which was in next
        for a few weeks but got dropped due to conflicts. And there's also a
        few fixes.
      
        Summary:
      
         - Remove the nvlink support now that it's only user has been removed.
      
         - Enable huge vmalloc mappings for Radix MMU (P9).
      
         - Fix KVM conversion to gfn-based MMU notifier callbacks.
      
         - Fix a kexec/kdump crash with hot plugged CPUs.
      
         - Fix boot failure on 32-bit with CONFIG_STACKPROTECTOR.
      
         - Restore alphabetic order of the selects under CONFIG_PPC.
      
        Thanks to: Christophe Leroy, Christoph Hellwig, Nicholas Piggin,
        Sandipan Das, and Sourabh Jain"
      
      * tag 'powerpc-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        KVM: PPC: Book3S HV: Fix conversion to gfn-based MMU notifier callbacks
        powerpc/kconfig: Restore alphabetic order of the selects under CONFIG_PPC
        powerpc/32: Fix boot failure with CONFIG_STACKPROTECTOR
        powerpc/powernv/memtrace: Fix dcache flushing
        powerpc/kexec_file: Use current CPU info while setting up FDT
        powerpc/64s/radix: Enable huge vmalloc mappings
        powerpc/powernv: remove the nvlink support
      ab159ac5