linux/drivers/gpu/drm/i915
Linus Torvalds 4c797b11a8 vfs-6.13.file
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCZzcW4gAKCRCRxhvAZXjc
 okF+AP9xTMb2SlnRPBOBd9yFcmVXmQi86TSCUPAEVb+wIldGYwD/RIOdvXYJlp9v
 RgJkU1DC3ddkXtONNDY6gFaP+siIWA0=
 =gMc7
 -----END PGP SIGNATURE-----

Merge tag 'vfs-6.13.file' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs file updates from Christian Brauner:
 "This contains changes the changes for files for this cycle:

   - Introduce a new reference counting mechanism for files.

     As atomic_inc_not_zero() is implemented with a try_cmpxchg() loop
     it has O(N^2) behaviour under contention with N concurrent
     operations and it is in a hot path in __fget_files_rcu().

     The rcuref infrastructures remedies this problem by using an
     unconditional increment relying on safe- and dead zones to make
     this work and requiring rcu protection for the data structure in
     question. This not just scales better it also introduces overflow
     protection.

     However, in contrast to generic rcuref, files require a memory
     barrier and thus cannot rely on *_relaxed() atomic operations and
     also require to be built on atomic_long_t as having massive amounts
     of reference isn't unheard of even if it is just an attack.

     This adds a file specific variant instead of making this a generic
     library.

     This has been tested by various people and it gives consistent
     improvement up to 3-5% on workloads with loads of threads.

   - Add a fastpath for find_next_zero_bit(). Skip 2-levels searching
     via find_next_zero_bit() when there is a free slot in the word that
     contains the next fd. This improves pts/blogbench-1.1.0 read by 8%
     and write by 4% on Intel ICX 160.

   - Conditionally clear full_fds_bits since it's very likely that a bit
     in full_fds_bits has been cleared during __clear_open_fds(). This
     improves pts/blogbench-1.1.0 read up to 13%, and write up to 5% on
     Intel ICX 160.

   - Get rid of all lookup_*_fdget_rcu() variants. They were used to
     lookup files without taking a reference count. That became invalid
     once files were switched to SLAB_TYPESAFE_BY_RCU and now we're
     always taking a reference count. Switch to an already existing
     helper and remove the legacy variants.

   - Remove pointless includes of <linux/fdtable.h>.

   - Avoid cmpxchg() in close_files() as nobody else has a reference to
     the files_struct at that point.

   - Move close_range() into fs/file.c and fold __close_range() into it.

   - Cleanup calling conventions of alloc_fdtable() and expand_files().

   - Merge __{set,clear}_close_on_exec() into one.

   - Make __set_open_fd() set cloexec as well instead of doing it in two
     separate steps"

* tag 'vfs-6.13.file' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  selftests: add file SLAB_TYPESAFE_BY_RCU recycling stressor
  fs: port files to file_ref
  fs: add file_ref
  expand_files(): simplify calling conventions
  make __set_open_fd() set cloexec state as well
  fs: protect backing files with rcu
  file.c: merge __{set,clear}_close_on_exec()
  alloc_fdtable(): change calling conventions.
  fs/file.c: add fast path in find_next_fd()
  fs/file.c: conditionally clear full_fds
  fs/file.c: remove sanity_check and add likely/unlikely in alloc_fd()
  move close_range(2) into fs/file.c, fold __close_range() into it
  close_files(): don't bother with xchg()
  remove pointless includes of <linux/fdtable.h>
  get rid of ...lookup...fdget_rcu() family
2024-11-18 10:30:29 -08:00
..
display drm/i915: Grab intel_display from the encoder to avoid potential oopsies 2024-11-12 11:08:06 +02:00
gem drm/i915/gem: fix bitwise and logical AND mixup 2024-10-01 10:28:29 +03:00
gt vfs-6.13.file 2024-11-18 10:30:29 -08:00
gvt drm-misc-next for v6.12: 2024-08-22 09:42:23 +02:00
pxp drm: move i915_pxp_tee_interface.h under include/drm/intel 2024-05-31 16:11:25 +03:00
selftests drm/i915 & drm/xe: save struct drm_device to drvdata 2024-09-02 15:01:59 +03:00
soc drm/i915: move comments about FSB straps to proper place 2024-06-17 11:54:31 +03:00
.gitignore
i915_active_types.h
i915_active.c drm/i915: Fix premature release of request's reusable memory 2023-08-01 10:56:34 +01:00
i915_active.h
i915_cmd_parser.c drm/i915: Use kmap_local_page() in i915_cmd_parser.c 2023-12-15 09:34:30 +00:00
i915_cmd_parser.h
i915_config.c
i915_config.h
i915_debugfs_params.c drm/i915: fix build with missing debugfs includes 2024-04-26 13:54:37 +10:00
i915_debugfs_params.h
i915_debugfs.c drm/i915/display: convert params to struct intel_display 2024-08-23 11:52:04 +03:00
i915_debugfs.h
i915_deps.c
i915_deps.h
i915_driver.c drm next for 6.12-rc1 2024-09-19 10:18:15 +02:00
i915_driver.h drm/i915: Update DRIVER_DATE to 20230929 2023-09-29 12:43:23 +03:00
i915_drm_client.c drm/i915: Update shared stats to use the new gem helper 2024-02-16 12:52:50 +01:00
i915_drm_client.h drm/i915: remove i915_drm_client::id 2024-02-19 15:35:23 -05:00
i915_drv.h drm/i915/gsc: ARL-H and ARL-U need a newer GSC FW. 2024-11-12 09:44:55 +02:00
i915_file_private.h
i915_gem_evict.c
i915_gem_evict.h
i915_gem_gtt.c drm/i915: remove unnecessary display includes 2024-08-26 10:56:51 +03:00
i915_gem_gtt.h
i915_gem_ww.c
i915_gem_ww.h
i915_gem.c drm/i915: remove unnecessary display includes 2024-08-26 10:56:51 +03:00
i915_gem.h
i915_getparam.c Merge tag 'drm-intel-gt-next-2024-04-26' of https://anongit.freedesktop.org/git/drm/drm-intel into drm-next 2024-04-30 14:40:43 +10:00
i915_getparam.h
i915_gpu_error.c drm/i915/display: convert params to struct intel_display 2024-08-23 11:52:04 +03:00
i915_gpu_error.h Merge tag 'drm-intel-gt-next-2023-12-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2023-12-13 11:20:49 +10:00
i915_hwmon.c drm/i915/hwmon: expose fan speed 2024-08-28 12:06:07 +05:30
i915_hwmon.h
i915_ioc32.c
i915_ioc32.h
i915_ioctl.c
i915_ioctl.h
i915_iosf_mbi.h
i915_irq.c drm/i915: remove unnecessary display includes 2024-08-26 10:56:51 +03:00
i915_irq.h
i915_memcpy.c drm/i915: Add includes for BUG_ON/BUILD_BUG_ON in i915_memcpy.c 2024-03-28 10:42:46 -04:00
i915_memcpy.h
i915_mitigations.c
i915_mitigations.h
i915_mm.c drm/i915/gem: Calculate object page offset for partial memory mapping 2024-08-21 15:28:33 +02:00
i915_mm.h drm/i915/gem: Calculate object page offset for partial memory mapping 2024-08-21 15:28:33 +02:00
i915_module.c drm/i915: deprecate the i915.modeset module parameter 2024-08-29 17:53:02 +03:00
i915_params.c drm/i915: deprecate the i915.modeset module parameter 2024-08-29 17:53:02 +03:00
i915_params.h drm/i915: Support replaying GPU hangs with captured context image 2024-05-16 07:37:05 +00:00
i915_pci.c drm/i915: remove unnecessary display includes 2024-08-26 10:56:51 +03:00
i915_pci.h
i915_perf_oa_regs.h
i915_perf_types.h drm/i915: remove i915_perf_stream::size_exponent 2024-02-19 15:35:30 -05:00
i915_perf.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
i915_perf.h
i915_pmu.c drm/i915: Track gt pm wakerefs 2023-11-20 12:36:56 +01:00
i915_pmu.h
i915_priolist_types.h
i915_pvinfo.h
i915_query.c drm/i915: Update IP_VER(12, 50) 2024-03-22 14:14:52 -07:00
i915_query.h
i915_reg_defs.h
i915_reg.h drm/i915/dsb: Hook up DSB error interrupts 2024-08-29 14:53:48 +03:00
i915_request.c drm/i915: remove execute_cb::signal 2024-02-19 15:36:28 -05:00
i915_request.h
i915_scatterlist.c drm/i915/gem: Suppress oom warning in favour of ENOMEM to userspace 2024-06-28 00:11:01 +02:00
i915_scatterlist.h drm/i915: Implement for_each_sgt_daddr_next 2023-09-30 13:49:22 +02:00
i915_scheduler_types.h
i915_scheduler.c
i915_scheduler.h
i915_selftest.h
i915_suspend.c drm/i915: pass dev_priv explicitly to SWF3 2024-06-07 11:28:55 +03:00
i915_suspend.h
i915_sw_fence_work.c
i915_sw_fence_work.h
i915_sw_fence.c drm/i915/fence: Mark debug_fence_free() with __maybe_unused 2024-09-02 13:25:31 +03:00
i915_sw_fence.h
i915_switcheroo.c
i915_switcheroo.h
i915_syncmap.c drm/i915: Add flex arrays to struct i915_syncmap 2024-02-12 11:59:37 +00:00
i915_syncmap.h
i915_sysfs.c drm/i915: Replace double blank with single blank after comma 2024-08-08 12:26:33 +01:00
i915_sysfs.h
i915_tasklet.h
i915_trace_points.c
i915_trace.h drm/i915: use direct alias for i915 in requests 2023-07-24 17:24:35 +02:00
i915_ttm_buddy_manager.c drm/buddy: Implement tracking clear page feature 2024-04-22 19:44:16 +02:00
i915_ttm_buddy_manager.h
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm next for 6.12-rc1 2024-09-19 10:18:15 +02:00
i915_utils.h drm/i915: remove __i915_printk() 2024-08-08 17:33:51 +03:00
i915_vgpu.c
i915_vgpu.h
i915_vma_resource.c drm/i915/vma: constify unbind_fence_ops 2023-08-25 09:02:55 +03:00
i915_vma_resource.h
i915_vma_types.h drm/i915: remove i915_vma::obj_hash 2024-02-19 15:36:34 -05:00
i915_vma.c drm/i915/vma: Fix UAF on destroy against retire race 2024-03-28 12:16:16 -04:00
i915_vma.h drm: Fix kerneldoc for "Returns" section 2024-08-26 16:40:09 +02:00
intel_clock_gating.c drm/i915: reduce includes in intel_clock_gating.c 2024-05-31 15:51:26 +03:00
intel_clock_gating.h
intel_device_info.c drm/i915/gsc: ARL-H and ARL-U need a newer GSC FW. 2024-11-12 09:44:55 +02:00
intel_device_info.h drm/i915/gsc: ARL-H and ARL-U need a newer GSC FW. 2024-11-12 09:44:55 +02:00
intel_gvt_mmio_table.c drm/i915: pass dev_priv explicitly to PIPE_LINK_N2 2024-06-07 11:29:02 +03:00
intel_gvt.c fix missing vmalloc.h includes 2024-04-25 20:55:49 -07:00
intel_gvt.h
intel_mchbar_regs.h
intel_memory_region.c drm/i915: Allow NULL memory region 2024-07-23 09:34:13 +00:00
intel_memory_region.h Merge drm/drm-next into drm-intel-gt-next 2024-05-16 07:33:01 +00:00
intel_pci_config.h drm: move i915_drm.h under include/drm/intel 2024-05-31 16:11:09 +03:00
intel_pcode.c
intel_pcode.h
intel_region_ttm.c drm/i915: Use struct resource for memory region IO as well 2024-02-07 01:58:40 +02:00
intel_region_ttm.h
intel_runtime_pm.c drm/i915: Convert intel_runtime_pm_get_noresume towards raw wakeref 2024-04-19 11:27:14 +03:00
intel_runtime_pm.h Merge tag 'drm-intel-gt-next-2023-12-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2023-12-13 11:20:49 +10:00
intel_sbi.c
intel_sbi.h
intel_step.c drm/i915: remove display stepping handling 2024-08-22 15:48:17 +03:00
intel_step.h drm/i915: remove unused leftover basedie step code 2024-08-26 11:38:44 +03:00
intel_uncore.c drm/i915/gt: Mark the GT as dead when mmio is unreliable 2024-08-09 12:51:17 +01:00
intel_uncore.h
intel_wakeref.c drm/i915: Track gt pm wakerefs 2023-11-20 12:36:56 +01:00
intel_wakeref.h drm/i915: Track gt pm wakerefs 2023-11-20 12:36:56 +01:00
Kconfig i915: fix DRM_I915_GVT_KVMGT dependencies 2024-10-21 09:51:05 +03:00
Kconfig.debug drm/i915: Support replaying GPU hangs with captured context image 2024-05-16 07:37:05 +00:00
Kconfig.profile
Makefile Merge drm/drm-next into drm-intel-next 2024-06-19 11:38:31 +03:00
TODO.txt
vlv_sideband_reg.h
vlv_sideband.c drm/i915/dpio: Derive the phy from the port rather than pipe in encoder hooks 2024-04-30 21:12:12 +03:00
vlv_sideband.h drm/i915/iosf: Drop unused APIs 2023-11-22 19:13:02 +02:00
vlv_suspend.c
vlv_suspend.h