Re: [PATCH] drm/ttm: optimize the pool shrinker a bit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 08.04.21 um 13:31 schrieb Daniel Vetter:
On Thu, Apr 08, 2021 at 01:17:32PM +0200, Christian König wrote:
Am 08.04.21 um 13:08 schrieb Daniel Vetter:
On Thu, Apr 01, 2021 at 03:54:13PM +0200, Christian König wrote:
[SNIP]
   EXPORT_SYMBOL(unregister_shrinker);
+/**
+ * sync_shrinker - Wait for all running shrinkers to complete.
+ */
+void sync_shrinkers(void)
This one should probably be in its own patch, with a bit more commit
message about why we need it and all that. I'd assume that just
unregistering the shrinker should sync everything we needed to sync
already, and for other sync needs we can do locking within our own
shrinker?
Correct. Reason why we need the barrier is that we need to destroy the
device (during hotplug) before the shrinker is unregistered (during module
unload).

Going to separate that, write something up in the commit message and send it
to the appropriate audience.
Hm why do we need that?

When the shrinker runs in parallel with (for example) a hotplug event and unmaps pages from the devices IOMMU I must make sure that you can't destroy the device or pool structure at the same time.

Previously holding the mutex while updating the IOMMU would take care of that, but now we need to prevent this otherwise.

Could be that this is also handled somewhere else, but I'm better save than sorry here and grabbing/releasing write side of the shrinker_rwsem is rather lightweight.

Either way sounds like an orthogonal series for
the hotunplug work, not just shrinker optimization.

It is unrelated to the hotplug work in general.

Regards,
Christian.

-Daniel

Thanks,
Christian.

-Daniel

+{
+	down_write(&shrinker_rwsem);
+	up_write(&shrinker_rwsem);
+}
+EXPORT_SYMBOL(sync_shrinkers);
+
   #define SHRINK_BATCH 128
   static unsigned long do_shrink_slab(struct shrink_control *shrinkctl,
--
2.25.1


_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux