1. 23 Aug, 2022 25 commits
    • Ionela Voinescu's avatar
      arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly · 24b39b17
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      The AMU counter AMEVCNTR01 (constant counter) should increment at the same
      rate as the system counter. On affected Cortex-A510 cores, AMEVCNTR01
      increments incorrectly giving a significantly higher output value. This
      results in inaccurate task scheduler utilization tracking and incorrect
      feedback on CPU frequency.
      
      Work around this problem by returning 0 when reading the affected counter
      in key locations that results in disabling all users of this counter from
      using it either for frequency invariance or as FFH reference counter. This
      effect is the same to firmware disabling affected counters.
      
      Details on how the two features are affected by this erratum:
      
       - AMU counters will not be used for frequency invariance for affected
         CPUs and CPUs in the same cpufreq policy. AMUs can still be used for
         frequency invariance for unaffected CPUs in the system. Although
         unlikely, if no alternative method can be found to support frequency
         invariance for affected CPUs (cpufreq based or solution based on
         platform counters) frequency invariance will be disabled. Please check
         the chapter on frequency invariance at
         Documentation/scheduler/sched-capacity.rst for details of its effect.
      
       - Given that FFH can be used to fetch either the core or constant counter
         values, restrictions are lifted regarding any of these counters
         returning a valid (!0) value. Therefore FFH is considered supported
         if there is a least one CPU that support AMUs, independent of any
         counters being disabled or affected by this erratum. Clarifying
         comments are now added to the cpc_ffh_supported(), cpu_read_constcnt()
         and cpu_read_corecnt() functions.
      
      The above is achieved through adding a new erratum: ARM64_ERRATUM_2457168.
      
      Signed-off-by: Ionela Voinescu's avatarIonela Voinescu <ionela.voinescu@arm.com>
      Reviewed-by: Catalin Marinas's avatarCatalin Marinas <catalin.marinas@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: James Morse <james.morse@arm.com>
      24b39b17
    • Pierre Gondois's avatar
      sched/fair: Use irq scaling for all sched classes · 5986cd98
      Pierre Gondois authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      Time spent in irq context is not attributed to a specific task.
      Irq scaling allows to consider this and reduce task/rq utilization
      accordingly, given that the CPU capacity is smaller than expected.
      
      scale_rt_capacity() excludes RT and DL tasks from irq scaling.
      Only the available capacity is scaled, but RT and DL tasks should
      also be scaled.
      
      commit 523e979d
      
       ("sched/core: Use PELT for scale_rt_capacity()")
      uses (for the CPU util):
        IRQ util_avg + (max_cap - IRQ util_avg / max_cap ) * /Sum rq util_avg
      Applying irq scaling allows to extract the irq util avg. So irq util
      avg should also be subtracted from the available capacity.
      
      Thermal pressure is not execution time but reduces the maximum
      possible capacity of a CPU. So irq scaling should not be applied.
      
      Thus, in this order:
       - subtract thermal pressure
       - apply irq scaling on the remaining capacity (RT + DL + CFS + free)
       - subtract irq
      
      Signed-off-by: Pierre Gondois's avatarPierre Gondois <pierre.gondois@arm.com>
      5986cd98
    • Pierre Gondois's avatar
      sched/fair: Check if prev_cpu has most spared cap in feec() · 7d7b7c75
      Pierre Gondois authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      When evaluating the CPU candidates in the perf domain (pd) containing
      the previously used CPU (prev_cpu), the find_energy_efficient_cpu()
      evaluates the energy of the pd without the task (base_energy), with
      the task placed on the CPU with the most spared capacity
      (max_spare_cap_cpu), and with the task placed on prev_cpu.
      
      prev_cpu is excluded when searching max_spare_cap_cpu. If prev_cpu
      is already the CPU with the most spared capacity, max_spare_cap_cpu
      will be the CPU with the second most spared capacity.
      
      To avoid evaluating a CPU that won't be be selected, check whether
      prev_cpu is the CPU with the most spared capacity, and in such case
      only consider prev_cpu in the pd.
      
      Signed-off-by: Pierre Gondois's avatarPierre Gondois <pierre.gondois@arm.com>
      7d7b7c75
    • Qais Yousef's avatar
      sched/fair: Consider capacity inversion in util_fits_cpu() · a3d78b3e
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      We do consider thermal pressure in util_fits_cpu() for uclamp_min only.
      With the exception of the biggest cores which by definition are the max
      performance point of the system and all tasks by definition should fit.
      
      Even under thermal pressure, the capacity of the biggest CPU is the
      highest in the system and should still fit every task. Except when it
      reaches capacity inversion point, then this is no longer true.
      
      We can handle this by using the inverted capacity as capacity_orig in
      util_fits_cpu(). Which not only addresses the problem above, but also
      ensure uclamp_max now considers the inverted capacity. Force fitting
      a task when a CPU is in this adverse state will contribute to making the
      thermal throttling last longer.
      
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      a3d78b3e
    • Qais Yousef's avatar
      sched/fair: Detect capacity inversion · 82e0f4cd
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      Check each performance domain to see if thermal pressure is causing its
      capacity to be lower than another performance domain.
      
      We assume that each performance domain has CPUs with the same
      capacities, which is similar to an assumption made in energy_model.c
      
      We also assume that thermal pressure impacts all CPUs in a performance
      domain equally.
      
      If there're multiple performance domains with the same capacity_orig, we
      will trigger a capacity inversion if the domain is under thermal
      pressure.
      
      The new cpu_in_capacity_inversion() should help users to know when
      information about capacity_orig are not reliable and can opt in to use
      the inverted capacity as the 'actual' capacity_orig.
      
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      82e0f4cd
    • Qais Yousef's avatar
      sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit condition · 16a3e8d5
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      If the utilization of the woken up task is 0, we skip the energy
      calculation because it has no impact.
      
      But if the task is boosted (uclamp_min != 0) will have an impact on task
      placement and frequency selection. Only skip if the util is truly
      0 after applying uclamp values.
      
      Change uclamp_task_cpu() signature to avoid unnecessary additional calls
      to uclamp_eff_get(). feec() is the only user now.
      
      Fixes: 732cd75b
      
       ("sched/fair: Select an energy-efficient CPU on task wake-up")
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      16a3e8d5
    • Qais Yousef's avatar
      sched/uclamp: Make cpu_overutilized() use util_fits_cpu() · e3dce49d
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      So that it is now uclamp aware.
      
      This fixes a major problem of busy tasks capped with UCLAMP_MAX keeping
      the system in overutilized state which disables EAS and leads to wasting
      energy in the long run.
      
      Without this patch running a busy background activity like JIT
      compilation on Pixel 6 causes the system to be in overutilized state
      74.5% of the time.
      
      With this patch this goes down to  9.79%.
      
      It also fixes another problem when long running tasks that have their
      UCLAMP_MIN changed while running such that they need to upmigrate to
      honour the new UCLAMP_MIN value. The upmigration doesn't get triggered
      because overutilized state never gets set in this state, hence misfit
      migration never happens at tick in this case until the task wakes up
      again.
      
      Fixes: af24bde8
      
       ("sched/uclamp: Add uclamp support to energy_compute()")
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      e3dce49d
    • Qais Yousef's avatar
      sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() · 1b8fa0d3
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      Use the new util_fits_cpu() to ensure migration margin and capacity
      pressure are taken into account correctly when uclamp is being used
      otherwise we will fail to consider CPUs as fitting in scenarios where
      they should.
      
      s/asym_fits_capacity/asym_fits_cpu/ to better reflect what it does now.
      
      Fixes: b4c9c9f1
      
       ("sched/fair: Prefer prev cpu in asymmetric wakeup path")
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      1b8fa0d3
    • Qais Yousef's avatar
      sched/uclamp: Make select_idle_capacity() use util_fits_cpu() · b3c14355
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      Use the new util_fits_cpu() to ensure migration margin and capacity
      pressure are taken into account correctly when uclamp is being used
      otherwise we will fail to consider CPUs as fitting in scenarios where
      they should.
      
      Fixes: b4c9c9f1
      
       ("sched/fair: Prefer prev cpu in asymmetric wakeup path")
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      b3c14355
    • Qais Yousef's avatar
      sched/uclamp: Fix fits_capacity() check in feec() · 2614ee1c
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      As reported by Yun Hsiang [1], if a task has its uclamp_min >= 0.8 * 1024,
      it'll always pick the previous CPU because fits_capacity() will always
      return false in this case.
      
      The new util_fits_cpu() logic should handle this correctly for us beside
      more corner cases where similar failures could occur, like when using
      UCLAMP_MAX.
      
      We open code uclamp_rq_util_with() except for the clamp() part,
      util_fits_cpu() needs the 'raw' values to be passed to it.
      
      Also introduce uclamp_rq_{set, get}() shorthand accessors to get uclamp
      value for the rq. Makes the code more readable and ensures the right
      rules (use READ_ONCE/WRITE_ONCE) are respected transparently.
      
      [1] https://lists.linaro.org/pipermail/eas-dev/2020-July/001488.html
      
      Fixes: 1d42509e
      
       ("sched/fair: Make EAS wakeup placement consider uclamp restrictions")
      Reported-by: default avatarYun Hsiang <hsiang023167@gmail.com>
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      2614ee1c
    • Qais Yousef's avatar
      sched/uclamp: Make task_fits_capacity() use util_fits_cpu() · 79bc5bcc
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      So that the new uclamp rules in regard to migration margin and capacity
      pressure are taken into account correctly.
      
      Fixes: a7008c07
      
       ("sched/fair: Make task_fits_capacity() consider uclamp restrictions")
      Co-developed-by: vingu-linaro's avatarVincent Guittot <vincent.guittot@linaro.org>
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      79bc5bcc
    • Qais Yousef's avatar
      sched/uclamp: Fix relationship between uclamp and migration margin · 7dfdb279
      Qais Yousef authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      fits_capacity() verifies that a util is within 20% margin of the
      capacity of a CPU, which is an attempt to speed up upmigration.
      
      But when uclamp is used, this 20% margin is problematic because for
      example if a task is boosted to 1024, then it will not fit on any CPU
      according to fits_capacity() logic.
      
      Or if a task is boosted to capacity_orig_of(medium_cpu). The task will
      end up on big instead on the desired medium CPU.
      
      Similar corner cases exist for uclamp and usage of capacity_of().
      Slightest irq pressure on biggest CPU for example will make a 1024
      boosted task look like it can't fit.
      
      What we really want is for uclamp comparisons to ignore the migration
      margin and capacity pressure, yet retain them for when checking the
      _actual_ util signal.
      
      For example, task p:
      
      	p->util_avg = 300
      	p->uclamp[UCLAMP_MIN] = 1024
      
      Will fit a big CPU. But
      
      	p->util_avg = 900
      	p->uclamp[UCLAMP_MIN] = 1024
      
      will not, this should trigger overutilized state because the big CPU is
      now *actually* being saturated.
      
      Similar reasoning applies to capping tasks with UCLAMP_MAX. For example:
      
      	p->util_avg = 1024
      	p->uclamp[UCLAMP_MAX] = capacity_orig_of(medium_cpu)
      
      Should fit the task on medium cpus without triggering overutilized
      state.
      
      Inlined comments expand more on desired behavior in more scenarios.
      
      Introduce new util_fits_cpu() function which encapsulates the new logic.
      The new function is not used anywhere yet, but will be used to update
      various users of fits_capacity() in later patches.
      
      Fixes: af24bde8
      
       ("sched/uclamp: Add uclamp support to energy_compute()")
      Signed-off-by: Qais Yousef's avatarQais Yousef <qais.yousef@arm.com>
      7dfdb279
    • Valentin Schneider's avatar
      arm64: dts: sdm845: Remove per-CPU thermal zones · c7044b06
      Valentin Schneider authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      The cpufreq cooling devices have been removed by
      
        52e3b2ca
      
       ("arm64: dts: qcom: sdm845: Remove cpufreq cooling devices for CPU thermal zones")
      
      but the per-CPU thermal zones remain. Per monitor_thermal_zone(), we get
      one polling workqueue per TZ, which is a lot of noise considering the only
      time those thermal zones will affect the system will be upon crossing a
      critical trip point.
      
      Remove the per-CPU thermal zones and let the cluster-wide ones handle
      critical temperature trip points.
      
      Signed-off-by: default avatarValentin Schneider <valentin.schneider@arm.com>
      c7044b06
    • Morten Rasmussen's avatar
      sched/pelt: [HACK] Make PELT trace points unconditional · 7212a6ff
      Morten Rasmussen authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      This is a temporary hack.
      
      Currently trace points for PELT are only triggered when the PELT metrics
      consumed by the scheduler are actually updated, i.e. util_avg. This
      means no updates if no 1 ms boundary is being crossed by the update.
      When reconstructing the PELT signal based on this data, the peak PELT
      value can therefore be up to 1 ms worth of PELT accumulation off (23 in
      absolute terms). This leads to a discrepancy that causes test cases to
      fail.
      
      This patch ensures that trace events are always emitted even if the
      metrics haven't been updated which should allow accurate reconstruction
      of the PELT signals.
      7212a6ff
    • Ionela Voinescu's avatar
      arm, arm64: add configs to generate BTF type info · f9989f11
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      Signed-off-by: Ionela Voinescu's avatarIonela Voinescu <ionela.voinescu@arm.com>
      f9989f11
    • Dietmar Eggemann's avatar
      arm, arm64: Enable kernel config options required for EAS testing · 5bac9aac
      Dietmar Eggemann authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      arm and arm64:
      
          Add    Debug per_cpu maps access
          Add    Prove Locking
          Add    Scheduler statistics
      
      arm:
      
          Add    kernel .config support and /proc/config.gz
      
      arm64:
      
          Add    Scheduler debugging
          Add    Ftrace
      
      Signed-off-by: Dietmar Eggemann's avatarDietmar Eggemann <dietmar.eggemann@arm.com>
      5bac9aac
    • Dietmar Eggemann's avatar
      arm, arm64: Enable kernel config options required for EAS · efde1c1f
      Dietmar Eggemann authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      arm and arm64:
      
          Add    Cgroups (+ FAIR_GROUP_SCHED and FREEZER)
          Add    Uclamp support for tasks and taskgroups
      
      arm:
      
          Add    Cpuset support
          Add    Scheduler autogroups
          Add    DIE (SCHED_MC) sched domain level
          Add    Energy Model
      
      arm64:
      
        Add    CpuFreq governors and make schedutil default
      
      Signed-off-by: Dietmar Eggemann's avatarDietmar Eggemann <dietmar.eggemann@arm.com>
      
      # Conflicts:
      #	arch/arm64/configs/defconfig
      efde1c1f
    • Dietmar Eggemann's avatar
      workqueue: Debug file to toggle system_highpri_wq prio · 03c4c32c
      Dietmar Eggemann authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      To let the RqInvariance:test_load_correctness load-tracking test pass
      there has to be a possibility to lower the task priority of the high
      prio workers 'kworker/X:YH-/+xx' from 100 (nice=-20) to 120 (nice=0).
      
      Otherwise the cfs_rq load_avg contribution from these tasks is too high
      since our test assumes normal task weight, i.e. 1024 (nice=0). Our tests
      can only deal with normal task weight.
      
      The /sys/kernel/debug/workqueue/high_prio_wq accepts 0 (to set the prio
      of these tasks to 100) and 1 (to set it back to the default value 120).
      
      The issue was introduced by commit ba70aca0b167 ("random: defer fast
      pool mixing to worker"). add_interrupt_randomness() now queues
      system_highpri_wq workqueue items and these are running in
      'kworker/X:YH-/+xx' tasks.
      
      It was first visible on Arm32 TC2 with its timer interrupt but can be
      seen on other platforms/interrupts too.
      
      This patch is solely there to let our load-tracing tests pass and not
      meant for upstreaming!
      
      Signed-off-by: Dietmar Eggemann's avatarDietmar Eggemann <dietmar.eggemann@arm.com>
      03c4c32c
    • Ionela Voinescu's avatar
      Revert "arch_topology: Make cpu_capacity sysfs node as read-only" · 575f9b1a
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      This reverts commit 5d777b18.
      
      [ionela.voinescu@arm.com: modify capacity of current CPU only]
      
      # Conflicts:
      #	drivers/base/arch_topology.c
      575f9b1a
    • Ionela Voinescu's avatar
      arm64, tc0: enable arm mhuv2 · ca649ff3
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      ca649ff3
    • Ionela Voinescu's avatar
      arm64: juno: disable CONFIG_MOUSE_PS2 · 52db87b5
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      This config is causing instability on Juno boards.
      
      Signed-off-by: Ionela Voinescu's avatarIonela Voinescu <ionela.voinescu@arm.com>
      52db87b5
    • Ionela Voinescu's avatar
      tc2: multi_v7_defconfig: add board support configs · 051db693
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      For Arm:
        Add       ARM vexpress-spc cpufreq driver
        Add       ARM Big.Little cpuidle driver
        Add       Sensor Vexpress
        Add       Schedutil as default governor
        Built-in  CPUfreq governors
        Disable   CONFIG_HARDEN_BRANCH_HISTORY
      
      Signed-off-by: Ionela Voinescu's avatarIonela Voinescu <ionela.voinescu@arm.com>
      051db693
    • Ionela Voinescu's avatar
      rb5: additional boards support configs · c2b9455d
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      c2b9455d
    • Ionela Voinescu's avatar
      db845c: additional boards support configs · ae58239d
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      ae58239d
    • Ionela Voinescu's avatar
      hikey960,db845c,rb5: enable USB to Ethernet adapters configs · 4c1bda4c
      Ionela Voinescu authored and Deepak Kumar Mishra's avatar Deepak Kumar Mishra committed
      
      
      Signed-off-by: Ionela Voinescu's avatarIonela Voinescu <ionela.voinescu@arm.com>
      
      # Conflicts:
      #	arch/arm64/configs/defconfig
      
      # Conflicts:
      #	arch/arm64/configs/defconfig
      4c1bda4c
  2. 22 Aug, 2022 1 commit
  3. 20 Aug, 2022 4 commits
  4. 15 Aug, 2022 2 commits
    • Daniel Lezcano's avatar
      dt-bindings: thermal: Fix missing required property · 8c596324
      Daniel Lezcano authored
      When the thermal zone description was converted to yaml schema, the
      required 'trips' property was forgotten.
      
      The initial text bindings was describing:
      
      "
      [ ... ]
      
      * Thermal zone nodes
      
      The thermal zone node is the node containing all the required info
      for describing a thermal zone, including its cooling device bindings. The
      thermal zone node must contain, apart from its own properties, one sub-node
      containing trip nodes and one sub-node containing all the zone cooling maps.
      
      Required properties:
      - polling-delay:        The maximum number of milliseconds to wait between polls
        Type: unsigned        when checking this thermal zone.
        Size: one cell
      
      - polling-delay-passive: The maximum number of milliseconds to wait
        Type: unsigned        between polls when performing passive cooling.
        Size: one cell
      
      - thermal-sensors:      A list of thermal sensor phandles and sensor specifier
        Type: list of         used while monitoring the thermal zone.
        phandles + sensor
        specifier
      
      - trips:                A sub-node which is a container of only trip point nodes
        Type: sub-node        required to describe the thermal zone.
      
      Optional property:
      - cooling-maps:         A sub-node which is a container of only cooling device
        Type: sub-node        map nodes, used to describe the relation between trips
                              and cooling devices.
        [ ... ]
      
      "
      
      Now the schema describes:
      
      "
          [ ... ]
      
          required:
            - polling-delay
            - polling-delay-passive
            - thermal-sensors
      
          [ ... ]
      "
      
      Add the missing 'trips' property in the required properties.
      
      Fixed: 1202a442
      
       ("dt-bindings: thermal: Add yaml bindings for thermal zones")
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20220809085629.509116-3-daniel.lezcano@linaro.org
      8c596324
    • Daniel Lezcano's avatar
      thermal/core: Add missing EXPORT_SYMBOL_GPL · a921be53
      Daniel Lezcano authored
      The function thermal_zone_device_register_with_trips() is not exported
      for modules.
      
      Add the missing EXPORT_SYMBOL_GPL().
      
      Fixes: fae11de5
      
       ("thermal/core: Add thermal_trip in thermal_zone")
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Link: https://lore.kernel.org/r/20220810100731.749317-1-daniel.lezcano@linaro.org
      a921be53
  5. 14 Aug, 2022 8 commits
    • Linus Torvalds's avatar
      Linux 6.0-rc1 · 568035b0
      Linus Torvalds authored
      568035b0
    • Yury Norov's avatar
      radix-tree: replace gfp.h inclusion with gfp_types.h · 9f162193
      Yury Norov authored
      
      
      Radix tree header includes gfp.h for __GFP_BITS_SHIFT only. Now we
      have gfp_types.h for this.
      
      Fixes powerpc allmodconfig build:
      
         In file included from include/linux/nodemask.h:97,
                          from include/linux/mmzone.h:17,
                          from include/linux/gfp.h:7,
                          from include/linux/radix-tree.h:12,
                          from include/linux/idr.h:15,
                          from include/linux/kernfs.h:12,
                          from include/linux/sysfs.h:16,
                          from include/linux/kobject.h:20,
                          from include/linux/pci.h:35,
                          from arch/powerpc/kernel/prom_init.c:24:
         include/linux/random.h: In function 'add_latent_entropy':
      >> include/linux/random.h:25:46: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'?
            25 |         add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
               |                                              ^~~~~~~~~~~~~~
               |                                              add_latent_entropy
         include/linux/random.h:25:46: note: each undeclared identifier is reported only once for each function it appears in
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Jason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarYury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f162193
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 74cbb480
      Linus Torvalds authored
      Pull vfs lseek fix from Al Viro:
       "Fix proc_reg_llseek() breakage. Always had been possible if somebody
        left NULL ->proc_lseek, became a practical issue now"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        take care to handle NULL ->proc_lseek()
      74cbb480
    • Al Viro's avatar
      take care to handle NULL ->proc_lseek() · 3f61631d
      Al Viro authored
      Easily done now, just by clearing FMODE_LSEEK in ->f_mode
      during proc_reg_open() for such entries.
      
      Fixes: 868941b1
      
       "fs: remove no_llseek"
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3f61631d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5d6a0f4d
      Linus Torvalds authored
      Pull more xen updates from Juergen Gross:
      
       - fix the handling of the "persistent grants" feature negotiation
         between Xen blkfront and Xen blkback drivers
      
       - a cleanup of xen.config and adding xen.config to Xen section in
         MAINTAINERS
      
       - support HVMOP_set_evtchn_upcall_vector, which is more compliant to
         "normal" interrupt handling than the global callback used up to now
      
       - further small cleanups
      
      * tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: add xen config fragments to XEN HYPERVISOR sections
        xen: remove XEN_SCRUB_PAGES in xen.config
        xen/pciback: Fix comment typo
        xen/xenbus: fix return type in xenbus_file_read()
        xen-blkfront: Apply 'feature_persistent' parameter when connect
        xen-blkback: Apply 'feature_persistent' parameter when connect
        xen-blkback: fix persistent grants negotiation
        x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
      5d6a0f4d
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of... · 96f86ff0
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
      
       - 'perf c2c' now supports ARM64, adjust its output to cope with
         differences with what is in x86_64. Now go find false sharing on
         ARM64 (at least Neoverse) as well!
      
       - Refactor the JSON processing, making the output more compact and thus
         reducing the size of the resulting perf binary
      
       - Improvements for 'perf offcpu' profiling, including tracking child
         processes
      
       - Update Intel JSON metrics and events files for broadwellde,
         broadwellx, cascadelakex, haswellx, icelakex, ivytown, jaketown,
         knightslanding, sapphirerapids, skylakex and snowridgex
      
       - Add 'perf stat' JSON output and a 'perf test' entry for it
      
       - Ignore memfd and anonymous mmap events if jitdump present
      
       - Refactor 'perf test' shell tests allowing subdirs
      
       - Fix an error handling path in 'parse_perf_probe_command()'
      
       - Fixes for the guest Intel PT tracing patchkit in the 1st batch of
         this merge window
      
       - Print debuginfod queries if -v option is used, to explain delays in
         processing when debuginfo servers are enabled to fetch DSOs with
         richer symbol tables
      
       - Improve error message for 'perf record -p not_existing_pid'
      
       - Fix openssl and libbpf feature detection
      
       - Add PMU pai_crypto event description for IBM z16 on 'perf list'
      
       - Fix typos and duplicated words on comments in various places
      
      * tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (81 commits)
        perf test: Refactor shell tests allowing subdirs
        perf vendor events: Update events for snowridgex
        perf vendor events: Update events and metrics for skylakex
        perf vendor events: Update metrics for sapphirerapids
        perf vendor events: Update events for knightslanding
        perf vendor events: Update metrics for jaketown
        perf vendor events: Update metrics for ivytown
        perf vendor events: Update events and metrics for icelakex
        perf vendor events: Update events and metrics for haswellx
        perf vendor events: Update events and metrics for cascadelakex
        perf vendor events: Update events and metrics for broadwellx
        perf vendor events: Update metrics for broadwellde
        perf jevents: Fold strings optimization
        perf jevents: Compress the pmu_events_table
        perf metrics: Copy entire pmu_event in find metric
        perf pmu-events: Hide the pmu_events
        perf pmu-events: Don't assume pmu_event is an array
        perf pmu-events: Move test events/metrics to JSON
        perf test: Use full metric resolution
        perf pmu-events: Hide pmu_events_map
        ...
      96f86ff0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d785610f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Ensure we never emit lwarx with EH=1 on 32-bit, because some 32-bit
         CPUs trap on it rather than ignoring it as they should.
      
       - Fix ftrace when building with clang, which was broken by some
         refactoring.
      
       - A couple of other minor fixes.
      
      Thanks to Christophe Leroy, Naveen N.  Rao, Nick Desaulniers, Ondrej
      Mosnacek, Pali Rohár, Russell Currey, and Segher Boessenkool.
      
      * tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix build failure from uninitialised variable
        powerpc/ppc-opcode: Fix PPC_RAW_TW()
        powerpc64/ftrace: Fix ftrace for clang builds
        powerpc: Make eh value more explicit when using lwarx
        powerpc: Don't hide eh field of lwarx behind a macro
        powerpc: Fix eh field when calling lwarx on PPC32
      d785610f
    • Linus Torvalds's avatar
      Merge tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · aea23e7c
      Linus Torvalds authored
      Pull /proc/mounts fix from Al Viro:
       "Fix for /proc/mounts escaping - escape the '#' character too"
      
      * tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: escape hash as well
      aea23e7c