1. 05 Sep, 2024 2 commits
  2. 04 Sep, 2024 2 commits
    • Rafael J. Wysocki's avatar
      cpufreq: intel_pstate: Set asymmetric CPU capacity on hybrid systems · 929ebc93
      Rafael J. Wysocki authored
      Make intel_pstate use the HWP_HIGHEST_PERF values from
      MSR_HWP_CAPABILITIES to set asymmetric CPU capacity information
      via the previously introduced arch_set_cpu_capacity() on hybrid
      systems without SMT.
      
      Setting asymmetric CPU capacity is generally necessary to allow the
      scheduler to compute task sizes in a consistent way across all CPUs
      in a system where they differ by capacity.  That, in turn, should help
      to improve scheduling decisions.  It is also necessary for the schedutil
      cpufreq governor to operate as expected on hybrid systems where tasks
      migrate between CPUs of different capacities.
      
      The underlying observation is that intel_pstate already uses
      MSR_HWP_CAPABILITIES to get CPU performance information which is
      exposed by it via sysfs and CPU performance scaling is based on it.
      Thus using this information for setting asymmetric CPU capacity is
      consistent with what the driver has been doing already.  Moreover,
      HWP_HIGHEST_PERF reflects the maximum capacity of a given CPU including
      both the instructions-per-cycle (IPC) factor and the maximum turbo
      frequency and the units in which that value is expressed are the same
      for all CPUs in the system, so the maximum capacity ratio between two
      CPUs can be obtained by computing the ratio of their HWP_HIGHEST_PERF
      values.  Of course, in principle that capacity ratio need not be
      directly applicable at lower frequencies, so using it for providing the
      asymmetric CPU capacity information to the scheduler is a rough
      approximation, but it is as good as it gets.  Also, measurements
      indicate that this approximation is not too bad in practice.
      
      If the given system is hybrid and non-SMT, the new code disables ITMT
      support in the scheduler (because it may get in the way of asymmetric CPU
      capacity code in the scheduler that automatically gets enabled by setting
      asymmetric CPU capacity) after initializing all online CPUs and finds
      the one with the maximum HWP_HIGHEST_PERF value.  Next, it computes the
      capacity number for each (online) CPU by dividing the product of its
      HWP_HIGHEST_PERF and SCHED_CAPACITY_SCALE by the maximum HWP_HIGHEST_PERF.
      
      When a CPU goes offline, its capacity is reset to SCHED_CAPACITY_SCALE
      and if it is the one with the maximum HWP_HIGHEST_PERF value, the
      capacity numbers for all of the other online CPUs are recomputed.  This
      also takes care of a cleanup during driver operation mode changes.
      
      Analogously, when a new CPU goes online, its capacity number is updated
      and if its HWP_HIGHEST_PERF value is greater than the current maximum
      one, the capacity numbers for all of the other online CPUs are
      recomputed.
      
      The case when the driver is notified of a CPU capacity change, either
      through the HWP interrupt or through an ACPI notification, is handled
      similarly to the CPU online case above, except that if the target CPU
      is the current highest-capacity one and its capacity is reduced, the
      capacity numbers for all of the other online CPUs need to be recomputed
      either.
      
      If the driver's "no_trubo" sysfs attribute is updated, all of the CPU
      capacity information is computed from scratch to reflect the new turbo
      status.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarRicardo Neri <ricardo.neri-calderon@linux.intel.com>
      Tested-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> # scale invariance
      Link: https://patch.msgid.link/1979653.PYKUYFuaPT@rjwysocki.net
      [ rjw: Fixed a typo in the changelog ]
      [ rjw: Renamed 3 new functions and added a comment ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      929ebc93
    • Rafael J. Wysocki's avatar
      x86/sched: Add basic support for CPU capacity scaling · 5a9d1014
      Rafael J. Wysocki authored
      In order be able to compute the sizes of tasks consistently across all
      CPUs in a hybrid system, it is necessary to provide CPU capacity scaling
      information to the scheduler via arch_scale_cpu_capacity().  Moreover,
      the value returned by arch_scale_freq_capacity() for the given CPU must
      correspond to the arch_scale_cpu_capacity() return value for it, or
      utilization computations will be inaccurate.
      
      Add support for it through per-CPU variables holding the capacity and
      maximum-to-base frequency ratio (times SCHED_CAPACITY_SCALE) that will
      be returned by arch_scale_cpu_capacity() and used by scale_freq_tick()
      to compute arch_freq_scale for the current CPU, respectively.
      
      In order to avoid adding measurable overhead for non-hybrid x86 systems,
      which are the vast majority in the field, whether or not the new hybrid
      CPU capacity scaling will be in effect is controlled by a static key.
      This static key is set by calling arch_enable_hybrid_capacity_scale()
      which also allocates memory for the per-CPU data and initializes it.
      Next, arch_set_cpu_capacity() is used to set the per-CPU variables
      mentioned above for each CPU and arch_rebuild_sched_domains() needs
      to be called for the scheduler to realize that capacity-aware
      scheduling can be used going forward.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarRicardo Neri <ricardo.neri-calderon@linux.intel.com>
      Tested-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> # scale invariance
      Link: https://patch.msgid.link/10523497.nUPlyArG6x@rjwysocki.net
      [ rjw: Added parens to function kerneldoc comments ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5a9d1014
  3. 02 Sep, 2024 1 commit
  4. 01 Sep, 2024 3 commits
    • Linus Torvalds's avatar
      Linux 6.11-rc6 · 431c1646
      Linus Torvalds authored
      431c1646
    • Linus Torvalds's avatar
      Merge tag 'v6.11-rc5-smb-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 6b9ffc45
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - copy_file_range fix
      
       - two read fixes including read past end of file rc fix and read retry
         crediting fix
      
       - falloc zero range fix
      
      * tag 'v6.11-rc5-smb-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Fix FALLOC_FL_ZERO_RANGE to preflush buffered part of target region
        cifs: Fix copy offload to flush destination region
        netfs, cifs: Fix handling of short DIO read
        cifs: Fix lack of credit renegotiation on read retry
      6b9ffc45
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-08-21' of https://github.com/koverstreet/bcachefs · a4c76312
      Linus Torvalds authored
      Push bcachefs fixes from Kent Overstreet:
       "The data corruption in the buffered write path is troubling; inode
        lock should not have been able to cause that...
      
         - Fix a rare data corruption in the rebalance path, caught as a nonce
           inconsistency on encrypted filesystems
      
         - Revert lockless buffered write path
      
         - Mark more errors as autofix"
      
      * tag 'bcachefs-2024-08-21' of https://github.com/koverstreet/bcachefs:
        bcachefs: Mark more errors as autofix
        bcachefs: Revert lockless buffered IO path
        bcachefs: Fix bch2_extents_match() false positive
        bcachefs: Fix failure to return error in data_update_index_update()
      a4c76312
  5. 31 Aug, 2024 14 commits
    • Kent Overstreet's avatar
      bcachefs: Mark more errors as autofix · 3d3020c4
      Kent Overstreet authored
      errors that are known to always be safe to fix should be autofix: this
      should be most errors even at this point, but that will need some
      thorough review.
      
      note that errors are still logged in the superblock, so we'll still know
      that they happened.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      3d3020c4
    • Kent Overstreet's avatar
      bcachefs: Revert lockless buffered IO path · e3e69409
      Kent Overstreet authored
      We had a report of data corruption on nixos when building installer
      images.
      
      https://github.com/NixOS/nixpkgs/pull/321055#issuecomment-2184131334
      
      It seems that writes are being dropped, but only when issued by QEMU,
      and possibly only in snapshot mode. It's undetermined if it's write
      calls are being dropped or dirty folios.
      
      Further testing, via minimizing the original patch to just the change
      that skips the inode lock on non appends/truncates, reveals that it
      really is just not taking the inode lock that causes the corruption: it
      has nothing to do with the other logic changes for preserving write
      atomicity in corner cases.
      
      It's also kernel config dependent: it doesn't reproduce with the minimal
      kernel config that ktest uses, but it does reproduce with nixos's distro
      config. Bisection the kernel config initially pointer the finger at page
      migration or compaction, but it appears that was erroneous; we haven't
      yet determined what kernel config option actually triggers it.
      
      Sadly it appears this will have to be reverted since we're getting too
      close to release and my plate is full, but we'd _really_ like to fully
      debug it.
      
      My suspicion is that this patch is exposing a preexisting bug - the
      inode lock actually covers very little in IO paths, and we have a
      different lock (the pagecache add lock) that guards against races with
      truncate here.
      
      Fixes: 7e64c86c ("bcachefs: Buffered write path now can avoid the inode lock")
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      e3e69409
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 6cd90e5e
      Linus Torvalds authored
      Pull misc fixes from Guenter Roeck.
      
      These are fixes for regressions that Guenther has been reporting, and
      the maintainers haven't picked up and sent in. With rc6 fairly imminent,
      I'm taking them directly from Guenter.
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        apparmor: fix policy_unpack_test on big endian systems
        Revert "MIPS: csrc-r4k: Apply verification clocksource flags"
        microblaze: don't treat zero reserved memory regions as error
      6cd90e5e
    • Linus Torvalds's avatar
      Merge tag 'pwrseq-fixes-for-v6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 8463be84
      Linus Torvalds authored
      Pull power sequencing fix from Bartosz Golaszewski:
       "A follow-up fix for the power sequencing subsystem. It turned out the
        previous fix for this driver was incomplete and broke the WLAN support
        on some platforms. This addresses the issue.
      
         - set the direction of the wlan-enable GPIO to output after
           requesting it as-is"
      
      * tag 'pwrseq-fixes-for-v6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        power: sequencing: qcom-wcn: set the wlan-enable GPIO to output
      8463be84
    • Bartosz Golaszewski's avatar
      power: sequencing: qcom-wcn: set the wlan-enable GPIO to output · d8b76207
      Bartosz Golaszewski authored
      Commit a9aaf1ff ("power: sequencing: request the WLAN enable GPIO
      as-is") broke WLAN on boards on which the wlan-enable GPIO enabling the
      wifi module isn't in output mode by default. We need to set direction to
      output while retaining the value that was already set to keep the ath
      module on if it's already started.
      
      Fixes: a9aaf1ff ("power: sequencing: request the WLAN enable GPIO as-is")
      Link: https://lore.kernel.org/r/20240823115500.37280-1-brgl@bgdev.plSigned-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      d8b76207
    • Linus Torvalds's avatar
      Merge tag 'usb-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e8784b0a
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some small USB fixes for 6.11-rc6.  Included in here are:
      
         - dwc3 driver fixes for reported issues
      
         - MAINTAINER file update, marking a driver as unsupported :(
      
         - cdnsp driver fixes
      
         - USB gadget driver fix
      
         - USB sysfs fix
      
         - other tiny fixes
      
         - new device ids for usb serial driver
      
        All of these have been in linux-next this week with no reported
        issues"
      
      * tag 'usb-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: serial: option: add MeiG Smart SRM825L
        usb: cdnsp: fix for Link TRB with TC
        usb: dwc3: st: add missing depopulate in probe error path
        usb: dwc3: st: fix probed platform device ref count on probe error path
        usb: dwc3: ep0: Don't reset resource alloc flag (including ep0)
        usb: core: sysfs: Unmerge @usb3_hardware_lpm_attr_group in remove_power_attributes()
        usb: typec: fsa4480: Relax CHIP_ID check
        usb: dwc3: xilinx: add missing depopulate in probe error path
        usb: dwc3: omap: add missing depopulate in probe error path
        dt-bindings: usb: microchip,usb2514: Fix reference USB device schema
        usb: gadget: uvc: queue pump work in uvcg_video_enable()
        cdc-acm: Add DISABLE_ECHO quirk for GE HealthCare UI Controller
        usb: cdnsp: fix incorrect index in cdnsp_get_hw_deq function
        usb: dwc3: core: Prevent USB core invalid event buffer address access
        MAINTAINERS: Mark UVC gadget driver as orphan
      e8784b0a
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 770b0ffe
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Minor fixes only.
      
        The sd.c one ignores a sync cache request if format is in progress
        which can happen if formatting a drive across suspend/resume"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: sd: Ignore command SYNCHRONIZE CACHE error if format in progress
        scsi: aacraid: Fix double-free on probe failure
        scsi: lpfc: Fix overflow build issue
      770b0ffe
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 6a2fcc51
      Linus Torvalds authored
      Pull nfsd fix from Chuck Lever:
      
       - One more write delegation fix
      
      * tag 'nfsd-6.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        nfsd: fix nfsd4_deleg_getattr_conflict in presence of third party lease
      6a2fcc51
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.11-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 0efdc097
      Linus Torvalds authored
      Pull xfs fixes from Chandan Babu:
      
       - Do not call out v1 inodes with non-zero di_nlink field as being
         corrupt
      
       - Change xfs_finobt_count_blocks() to count "free inode btree" blocks
         rather than "inode btree" blocks
      
       - Don't report the number of trimmed bytes via FITRIM because the
         underlying storage isn't required to do anything and failed discard
         IOs aren't reported to the caller anyway
      
       - Fix incorrect setting of rm_owner field in an rmap query
      
       - Report missing disk offset range in an fsmap query
      
       - Obtain m_growlock when extending realtime section of the filesystem
      
       - Reset rootdir extent size hint after extending realtime section of
         the filesystem
      
      * tag 'xfs-6.11-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: reset rootdir extent size hint after growfsrt
        xfs: take m_growlock when running growfsrt
        xfs: Fix missing interval for missing_owner in xfs fsmap
        xfs: use XFS_BUF_DADDR_NULL for daddrs in getfsmap code
        xfs: Fix the owner setting issue for rmap query in xfs fsmap
        xfs: don't bother reporting blocks trimmed via FITRIM
        xfs: xfs_finobt_count_blocks() walks the wrong btree
        xfs: fix folio dirtying for XFILE_ALLOC callers
        xfs: fix di_onlink checking for V1/V2 inodes
      0efdc097
    • Linus Torvalds's avatar
      Merge tag 'arm-fixes-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 35667a29
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "There is a fairly large number of bug fixes for Qualcomm platforms,
        most of them addressing issues with the devicetree files for the newly
        added Snapdragon X1 based laptops to make them more reliable.
      
        The Qualcomm driver changes address a few build-time issues as well as
        runtime problems in the tzmem and scm firmware, the USB Type-C driver,
        and the cmd-db and pmic_glink soc drivers.
      
        The NXP i.MX usually gets a bunch of devicetree fixes that is
        proportional to the number of supported machines. This includes both
        warning fixes and correctness for the 64-bit i.MX9, i.MX8 and
        layerscape platforms, as well as a single fix for a 32-bit i.MX6 based
        board.
      
        The other changes are the usual minor changes, including an update to
        the MAINTAINERS file, an omap3 dts file and a SoC driver for mpfs
        (risc-v)"
      
      * tag 'arm-fixes-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (50 commits)
        firmware: microchip: fix incorrect error report of programming:timeout on success
        soc: qcom: pd-mapper: Fix singleton refcount
        firmware: qcom: tzmem: disable sdm670 platform
        soc: qcom: pmic_glink: Actually communicate when remote goes down
        usb: typec: ucsi: Move unregister out of atomic section
        soc: qcom: pmic_glink: Fix race during initialization
        firmware: qcom: qseecom: remove unused functions
        firmware: qcom: tzmem: fix virtual-to-physical address conversion
        firmware: qcom: scm: Mark get_wq_ctx() as atomic call
        arm64: dts: qcom: x1e80100: Fix Adreno SMMU global interrupt
        arm64: dts: qcom: disable GPU on x1e80100 by default
        arm64: dts: imx8mm-phygate: fix typo pinctrcl-0
        arm64: dts: imx95: correct L3Cache cache-sets
        arm64: dts: imx95: correct a55 power-domains
        arm64: dts: freescale: imx93-tqma9352-mba93xxla: fix typo
        arm64: dts: freescale: imx93-tqma9352: fix CMA alloc-ranges
        ARM: dts: imx6dl-yapp43: Increase LED current to match the yapp4 HW design
        arm64: dts: imx93: update default value for snps,clk-csr
        arm64: dts: freescale: tqma9352: Fix watchdog reset
        arm64: dts: imx8mp-beacon-kit: Fix Stereo Audio on WM8962
        ...
      35667a29
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 1934261d
      Linus Torvalds authored
      Pull input fix from Dmitry Torokhov:
      
       - a fix for Cypress PS/2 touchpad for regression introduced in 6.11
         merge window where a timeout condition is incorrectly reported for
         all extended Cypress commands
      
      * tag 'input-for-v6.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: cypress_ps2 - fix waiting for command response
      1934261d
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.11-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 8101b276
      Linus Torvalds authored
      Pull pci fixes from Bjorn Helgaas:
      
       - Add Manivannan Sadhasivam as PCI native host bridge and endpoint
         driver reviewer (Manivannan Sadhasivam)
      
       - Disable MHI RAM data parity error interrupt for qcom SA8775P SoC to
         work around hardware erratum that causes a constant stream of
         interrupts (Manivannan Sadhasivam)
      
       - Don't try to fall back to qcom Operating Performance Points (OPP)
         support unless the platform actually supports OPP (Manivannan
         Sadhasivam)
      
       - Add imx@lists.linux.dev mailing list to MAINTAINERS for NXP
         layerscape and imx6 PCI controller drivers (Frank Li)
      
      * tag 'pci-v6.11-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        MAINTAINERS: PCI: Add NXP PCI controller mailing list imx@lists.linux.dev
        PCI: qcom: Use OPP only if the platform supports it
        PCI: qcom-ep: Disable MHI RAM data parity error interrupt for SA8775P SoC
        MAINTAINERS: Add Manivannan Sadhasivam as Reviewer for PCI native host bridge and endpoint drivers
      8101b276
    • Linus Torvalds's avatar
      Merge tag 'block-6.11-20240830' of git://git.kernel.dk/linux · 216d1631
      Linus Torvalds authored
      Pull block fix from Jens Axboe:
       "Fix for a single regression for WRITE_SAME introduced in the 6.11
        merge window"
      
      * tag 'block-6.11-20240830' of git://git.kernel.dk/linux:
        block: fix detection of unsupported WRITE SAME in blkdev_issue_write_zeroes
      216d1631
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.11-20240830' of git://git.kernel.dk/linux · ad246d9f
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - A fix for a regression that happened in 6.11 merge window, where the
         copying of iovecs for compat mode applications got broken for certain
         cases.
      
       - Fix for a bug introduced in 6.10, where if using recv/send bundles
         with classic provided buffers, the recv/send would fail to set the
         right iovec count. This caused 0 byte send/recv results. Found via
         code coverage testing and writing a test case to exercise it.
      
      * tag 'io_uring-6.11-20240830' of git://git.kernel.dk/linux:
        io_uring/kbuf: return correct iovec count from classic buffer peek
        io_uring/rsrc: ensure compat iovecs are copied correctly
      ad246d9f
  6. 30 Aug, 2024 17 commits
  7. 29 Aug, 2024 1 commit