1. 18 Feb, 2023 4 commits
  2. 13 Feb, 2023 21 commits
  3. 06 Feb, 2023 4 commits
    • Marc Zyngier's avatar
      Merge branch irq/misc-6.3 into irq/irqchip-next · df2d85d0
      Marc Zyngier authored
      * irq/misc-6.3:
        : .
        : - Cleanup Kconfig dependencies for LS_SCFG_MSI
        :
        : - Improve save/restore for the loongson-liointc irqchip
        :
        : - Correctly initialise status and enable registers for one
        :   of the ASpeed controllers
        : .
        irqchip/ls-scfg-msi: Simplify Kconfig dependencies
        irqchip/loongson-liointc: Save/restore int_edge/int_pol registers during S3/S4
        irqchip/aspeed-scu-ic: Correctly initialise status and enable registers
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      df2d85d0
    • Marc Zyngier's avatar
      Merge branch irq/refcount into irq/irqchip-next · 5f61c693
      Marc Zyngier authored
      * irq/refcount:
        : .
        : Set of OF refcount fixes from  Miaoqian Lin, adding an
        : of_node_put() call after of_irq_find_parent() calls.
        : .
        irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
        irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe
        irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains
        irqchip: Fix refcount leak in platform_irqchip_probe
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      5f61c693
    • Marc Zyngier's avatar
      Merge branch irq/ipi-mux into irq/irqchip-next · 6360ec8f
      Marc Zyngier authored
      * irq/ipi-mux:
        : .
        : Extract the IPI muxing facility from the Apple AIC driver and
        : move it over to core code. The riscv irqchip code will eventually
        : make use of this.
        : .
        genirq/ipi-mux: Use irq_domain_alloc_irqs()
        irqchip/apple-aic: Move over to core ipi-mux
        genirq: Add mechanism to multiplex a single HW IPI
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      6360ec8f
    • Marc Zyngier's avatar
      genirq/ipi-mux: Use irq_domain_alloc_irqs() · 3d812a0f
      Marc Zyngier authored
      Using __irq_domain_alloc_irqs() is an unnecessary complexity. Use
      irq_domain_alloc_irqs(), which is simpler and makes the code more
      readable.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      3d812a0f
  4. 05 Feb, 2023 9 commits
  5. 18 Jan, 2023 1 commit
    • Ingo Molnar's avatar
      genirq/affinity: Only build SMP-only helper functions on SMP kernels · 188a5696
      Ingo Molnar authored
      allnoconfig grew these new build warnings in lib/group_cpus.c:
      
        lib/group_cpus.c:247:12: warning: ‘__group_cpus_evenly’ defined but not used [-Wunused-function]
        lib/group_cpus.c:75:13: warning: ‘build_node_to_cpumask’ defined but not used [-Wunused-function]
        lib/group_cpus.c:66:13: warning: ‘free_node_to_cpumask’ defined but not used [-Wunused-function]
        lib/group_cpus.c:43:23: warning: ‘alloc_node_to_cpumask’ defined but not used [-Wunused-function]
      
      Widen the #ifdef CONFIG_SMP block to not expose unused helpers on
      non-SMP builds.
      
      Also annotate the preprocessor branches for better readability.
      
      Fixes: f7b3ea8c ("genirq/affinity: Move group_cpus_evenly() into lib/")
      Cc: Ming Lei <ming.lei@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: https://lore.kernel.org/r/20221227022905.352674-6-ming.lei@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      188a5696
  6. 17 Jan, 2023 1 commit
    • Ming Lei's avatar
      blk-mq: Build default queue map via group_cpus_evenly() · 6a6dcae8
      Ming Lei authored
      The default queue mapping builder of blk_mq_map_queues doesn't take NUMA
      topo into account, so the built mapping is pretty bad, since CPUs
      belonging to different NUMA node are assigned to same queue. It is
      observed that IOPS drops by ~30% when running two jobs on same hctx
      of null_blk from two CPUs belonging to two NUMA nodes compared with
      from same NUMA node.
      
      Address the issue by reusing group_cpus_evenly() for building queue mapping
      since group_cpus_evenly() does group cpus according to CPU/NUMA locality.
      
      Also performance data becomes more stable with this given correct queue
      mapping is applied wrt. numa locality viewpoint, for example, on one two
      nodes arm64 machine with 160 cpus, node 0(cpu 0~79), node 1(cpu 80~159):
      
      1) modprobe null_blk nr_devices=1 submit_queues=2
      
      2) run 'fio(t/io_uring -p 0 -n 4 -r 20 /dev/nullb0)', and observe that
      IOPS becomes much stable on multiple tests:
      
       - unpatched: IOPS is 2.5M ~ 4.5M
       - patched:   IOPS is 4.3M ~ 5.0M
      
      Lots of drivers may benefit from the change, such as nvme pci poll,
      nvme tcp, ...
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJohn Garry <john.g.garry@oracle.com>
      Reviewed-by: Jens Axboe <axboe@kernel.dk>                                                                                                                                                                                                    
      Link: https://lore.kernel.org/r/20221227022905.352674-7-ming.lei@redhat.com
      6a6dcae8