1. 06 Oct, 2023 6 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2023-10-06' of git://anongit.freedesktop.org/drm/drm · 4940c154
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular weekly pull, all seems pretty normal, i915 and amdgpu mostly.
      
        There is one small new uAPI addition for nouveau but getting it in now
        avoids a bunch of userspace dances, and it's for a userspace that
        hasn't yet released, so should have no side effects.
      
        i915:
         - Fix for OpenGL CTS regression on Compute Shaders
         - Fix for default engines initialization
         - Fix TLB invalidation for Multi-GT devices
      
        amdgpu:
         - Add missing unique_id for GC 11.0.3
         - Fix memory leak in FRU error path
         - Fix PCIe link reporting on some SMU 11 parts
         - Fix ACPI _PR3 detection
         - Fix DISPCLK WDIVIDER handling in OTG code
      
        tests:
         - Fix kunit release
      
        panel:
         - panel-orientation: Add quirk for One Mix 25
      
        nouveau:
         - Report IB limit via getparams
         - Replace some magic numbers with constants
         - small clean up"
      
      * tag 'drm-fixes-2023-10-06' of git://anongit.freedesktop.org/drm/drm:
        drm/amd/display: apply edge-case DISPCLK WDIVIDER changes to master OTG pipes only
        drm/amd: Fix detection of _PR3 on the PCIe root port
        drm/amd: Fix logic error in sienna_cichlid_update_pcie_parameters()
        drm/amdgpu: Fix a memory leak
        drm/amd/pm: add unique_id for gc 11.0.3
        drm/i915: Invalidate the TLBs on each GT
        drm/i915: Register engines early to avoid type confusion
        drm/i915: Don't set PIPE_CONTROL_FLUSH_L3 for aux inval
        drm/nouveau: exec: report max pushs through getparam
        drm/nouveau: chan: use channel class definitions
        drm/nouveau: chan: use struct nvif_mclass
        drm: panel-orientation-quirks: Add quirk for One Mix 2S
        drm/tests: Fix kunit_release_action ctx argument
      4940c154
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.6-rc5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · b78b18fb
      Linus Torvalds authored
      Pull erofs fixes from Gao Xiang:
      
       - Fix a memory leak issue when using LZMA global compressed
         deduplication
      
       - Fix empty device tags in flatdev mode
      
       - Update documentation for recent new features
      
      * tag 'erofs-for-6.6-rc5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: update documentation
        erofs: allow empty device tags in flatdev mode
        erofs: fix memory leak of LZMA global compressed deduplication
      b78b18fb
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2023100502' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 19fbf677
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - power management fix for intel-ish-hid (Srinivas Pandruvada)
      
       - power management fix for hid-nintendo (Martino Fontana)
      
       - error handling fixes for nvidia-shield (Christophe JAILLET)
      
       - memory leak fix for hid-sony (Christophe JAILLET)
      
       - fix for slab out-of-bound write in hid-holtek (Ma Ke)
      
       - other assorted smaller fixes and device ID / quirk entry additions
      
      * tag 'for-linus-2023100502' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: Add quirk to ignore the touchscreen battery on HP ENVY 15-eu0556ng
        HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit
        HID: sony: remove duplicate NULL check before calling usb_free_urb()
        HID: nintendo: reinitialize USB Pro Controller after resuming from suspend
        HID: nvidia-shield: Fix some missing function calls() in the probe error handling path
        HID: nvidia-shield: Fix a missing led_classdev_unregister() in the probe error handling path
        HID: multitouch: Add required quirk for Synaptics 0xcd7e device
        HID: nvidia-shield: Select POWER_SUPPLY Kconfig option
        HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
        HID: nvidia-shield: add LEDS_CLASS dependency
        HID: logitech-hidpp: Add Bluetooth ID for the Logitech M720 Triathlon mouse
        HID: steelseries: Fix signedness bug in steelseries_headset_arctis_1_fetch_battery()
        HID: sony: Fix a potential memory leak in sony_probe()
      19fbf677
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2023-10-05' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 67f35a41
      Dave Airlie authored
      Short summary of fixes pull:
      
       * test: Fix kunit release
       * panel-orientation: Add quirk for One Mix 25
       * nouveau:
         * Report IB limit via getparams
         * Replace some magic numbers with constants
         * Clean up
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231005092632.GA17332@linux-uq9g
      67f35a41
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.6-2023-10-04' of... · 62af7387
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.6-2023-10-04' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.6-2023-10-04:
      
      amdgpu:
      - Add missing unique_id for GC 11.0.3
      - Fix memory leak in FRU error path
      - Fix PCIe link reporting on some SMU 11 parts
      - Fix ACPI _PR3 detection
      - Fix DISPCLK WDIVIDER handling in OTG code
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231005034358.7824-1-alexander.deucher@amd.com
      62af7387
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2023-10-05' of... · dd01714e
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2023-10-05' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Fix for OpenGL CTS regression on Compute Shaders (Nirmoy)
      - Fix for default engines initialization (Mathias)
      - Fix TLB invalidation for Multi-GT devices (Chris)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/ZR7EvL+ucWI4uDTX@intel.com
      dd01714e
  2. 05 Oct, 2023 32 commits
  3. 04 Oct, 2023 2 commits
    • Neal Cardwell's avatar
      tcp: fix delayed ACKs for MSS boundary condition · 4720852e
      Neal Cardwell authored
      This commit fixes poor delayed ACK behavior that can cause poor TCP
      latency in a particular boundary condition: when an application makes
      a TCP socket write that is an exact multiple of the MSS size.
      
      The problem is that there is painful boundary discontinuity in the
      current delayed ACK behavior. With the current delayed ACK behavior,
      we have:
      
      (1) If an app reads data when > 1*MSS is unacknowledged, then
          tcp_cleanup_rbuf() ACKs immediately because of:
      
           tp->rcv_nxt - tp->rcv_wup > icsk->icsk_ack.rcv_mss ||
      
      (2) If an app reads all received data, and the packets were < 1*MSS,
          and either (a) the app is not ping-pong or (b) we received two
          packets < 1*MSS, then tcp_cleanup_rbuf() ACKs immediately beecause
          of:
      
           ((icsk->icsk_ack.pending & ICSK_ACK_PUSHED2) ||
            ((icsk->icsk_ack.pending & ICSK_ACK_PUSHED) &&
             !inet_csk_in_pingpong_mode(sk))) &&
      
      (3) *However*: if an app reads exactly 1*MSS of data,
          tcp_cleanup_rbuf() does not send an immediate ACK. This is true
          even if the app is not ping-pong and the 1*MSS of data had the PSH
          bit set, suggesting the sending application completed an
          application write.
      
      Thus if the app is not ping-pong, we have this painful case where
      >1*MSS gets an immediate ACK, and <1*MSS gets an immediate ACK, but a
      write whose last skb is an exact multiple of 1*MSS can get a 40ms
      delayed ACK. This means that any app that transfers data in one
      direction and takes care to align write size or packet size with MSS
      can suffer this problem. With receive zero copy making 4KB MSS values
      more common, it is becoming more common to have application writes
      naturally align with MSS, and more applications are likely to
      encounter this delayed ACK problem.
      
      The fix in this commit is to refine the delayed ACK heuristics with a
      simple check: immediately ACK a received 1*MSS skb with PSH bit set if
      the app reads all data. Why? If an skb has a len of exactly 1*MSS and
      has the PSH bit set then it is likely the end of an application
      write. So more data may not be arriving soon, and yet the data sender
      may be waiting for an ACK if cwnd-bound or using TX zero copy. Thus we
      set ICSK_ACK_PUSHED in this case so that tcp_cleanup_rbuf() will send
      an ACK immediately if the app reads all of the data and is not
      ping-pong. Note that this logic is also executed for the case where
      len > MSS, but in that case this logic does not matter (and does not
      hurt) because tcp_cleanup_rbuf() will always ACK immediately if the
      app reads data and there is more than an MSS of unACKed data.
      
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Reviewed-by: default avatarYuchung Cheng <ycheng@google.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Xin Guo <guoxin0309@gmail.com>
      Link: https://lore.kernel.org/r/20231001151239.1866845-2-ncardwell.sw@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4720852e
    • Neal Cardwell's avatar
      tcp: fix quick-ack counting to count actual ACKs of new data · 059217c1
      Neal Cardwell authored
      This commit fixes quick-ack counting so that it only considers that a
      quick-ack has been provided if we are sending an ACK that newly
      acknowledges data.
      
      The code was erroneously using the number of data segments in outgoing
      skbs when deciding how many quick-ack credits to remove. This logic
      does not make sense, and could cause poor performance in
      request-response workloads, like RPC traffic, where requests or
      responses can be multi-segment skbs.
      
      When a TCP connection decides to send N quick-acks, that is to
      accelerate the cwnd growth of the congestion control module
      controlling the remote endpoint of the TCP connection. That quick-ack
      decision is purely about the incoming data and outgoing ACKs. It has
      nothing to do with the outgoing data or the size of outgoing data.
      
      And in particular, an ACK only serves the intended purpose of allowing
      the remote congestion control to grow the congestion window quickly if
      the ACK is ACKing or SACKing new data.
      
      The fix is simple: only count packets as serving the goal of the
      quickack mechanism if they are ACKing/SACKing new data. We can tell
      whether this is the case by checking inet_csk_ack_scheduled(), since
      we schedule an ACK exactly when we are ACKing/SACKing new data.
      
      Fixes: fc6415bc ("[TCP]: Fix quick-ack decrementing with TSO.")
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Reviewed-by: default avatarYuchung Cheng <ycheng@google.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Link: https://lore.kernel.org/r/20231001151239.1866845-1-ncardwell.sw@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      059217c1