From 32124e310c1d0902ab46163092ed6bc278d3519f Mon Sep 17 00:00:00 2001 From: Hridya Valsaraju Date: Thu, 22 Apr 2021 21:50:20 -0700 Subject: [PATCH] ANDROID: dma-buf: Make DMA-BUF sysfs stats kobjects not send uevents DMA-BUF per-buffer attachment stats are present at /sys/kernel/dma-buf/buffers//attachments. Since a kset of name 'attachment' is created everytime a buffer is allocated, disable uevents from the kset to avoid their userspace overhead. The ksets 'dma-buf' and 'buffers' do not need uevents disabled since they are emitted just once but the patch does it for uniformity. Bug: 186155231 Change-Id: I29009dd2aa0bc018c18bca7a1e0a068f4480cf13 Signed-off-by: Hridya Valsaraju --- drivers/dma-buf/dma-buf-sysfs-stats.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/dma-buf/dma-buf-sysfs-stats.c b/drivers/dma-buf/dma-buf-sysfs-stats.c index d1845a344cfc..943e395d1807 100644 --- a/drivers/dma-buf/dma-buf-sysfs-stats.c +++ b/drivers/dma-buf/dma-buf-sysfs-stats.c @@ -221,15 +221,30 @@ void dma_buf_stats_teardown(struct dma_buf *dmabuf) kobject_put(&sysfs_entry->kobj); } +/* + * Statistics files do not need to send uevents. + */ +static int dmabuf_sysfs_uevent_filter(struct kset *kset, struct kobject *kobj) +{ + return 0; +} + +static const struct kset_uevent_ops dmabuf_sysfs_no_uevent_ops = { + .filter = dmabuf_sysfs_uevent_filter, +}; + static struct kset *dma_buf_stats_kset; static struct kset *dma_buf_per_buffer_stats_kset; int dma_buf_init_sysfs_statistics(void) { - dma_buf_stats_kset = kset_create_and_add("dmabuf", NULL, kernel_kobj); + dma_buf_stats_kset = kset_create_and_add("dmabuf", + &dmabuf_sysfs_no_uevent_ops, + kernel_kobj); if (!dma_buf_stats_kset) return -ENOMEM; - dma_buf_per_buffer_stats_kset = kset_create_and_add("buffers", NULL, + dma_buf_per_buffer_stats_kset = kset_create_and_add("buffers", + &dmabuf_sysfs_no_uevent_ops, &dma_buf_stats_kset->kobj); if (!dma_buf_per_buffer_stats_kset) { kset_unregister(dma_buf_stats_kset); @@ -275,7 +290,8 @@ int dma_buf_stats_setup(struct dma_buf *dmabuf) goto err_sysfs_dmabuf; /* create the directory for attachment stats */ - attach_stats_kset = kset_create_and_add("attachments", NULL, + attach_stats_kset = kset_create_and_add("attachments", + &dmabuf_sysfs_no_uevent_ops, &sysfs_entry->kobj); if (!attach_stats_kset) { ret = -ENOMEM;