All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Performance optimization for no fsnotify marks
@ 2021-08-03 18:03 Amir Goldstein
  2021-08-03 18:03 ` [PATCH 1/4] fsnotify: replace igrab() with ihold() on attach connector Amir Goldstein
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Amir Goldstein @ 2021-08-03 18:03 UTC (permalink / raw)
  To: Jan Kara; +Cc: Matthew Bobrowski, linux-fsdevel, Oliver Sang, Mel Gorman

Hi Jan,

This idea was suggested on year ago [1], but I never got to test
its performance benefits.

Following the performance improvement report from kernel robot [2],
please consider these changes.

I have other optimization patches for no ignored mask etc, but the
"no marks" case is the most low hanging improvement.

Thanks,
Amir.

[1] https://lore.kernel.org/linux-fsdevel/CAOQ4uxgYpufPyhivOQyEhUQ0g+atKLwAAuefkSwaWXYAyMgw5Q@mail.gmail.com/
[2] https://lore.kernel.org/linux-fsdevel/CAOQ4uxisyDjVpWX1M6O4ugxBbcX+LWWf4NQJ+LQY1-3-9tN+BA@mail.gmail.com/

Amir Goldstein (4):
  fsnotify: replace igrab() with ihold() on attach connector
  fsnotify: count s_fsnotify_inode_refs for attached connectors
  fsnotify: count all objects with attached connectors
  fsnotify: optimize the case of no marks of any type

 fs/notify/fsnotify.c     |  6 ++--
 fs/notify/mark.c         | 73 +++++++++++++++++++++++++++++++++-------
 include/linux/fs.h       |  4 +--
 include/linux/fsnotify.h |  9 +++++
 4 files changed, 75 insertions(+), 17 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] fsnotify: count all objects with attached connectors
@ 2021-08-04  2:37 kernel test robot
  0 siblings, 0 replies; 16+ messages in thread
From: kernel test robot @ 2021-08-04  2:37 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 2707 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210803180344.2398374-4-amir73il@gmail.com>
References: <20210803180344.2398374-4-amir73il@gmail.com>
TO: Amir Goldstein <amir73il@gmail.com>

Hi Amir,

I love your patch! Perhaps something to improve:

[auto build test WARNING on ext3/fsnotify]
[also build test WARNING on linus/master v5.14-rc4 next-20210803]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Amir-Goldstein/Performance-optimization-for-no-fsnotify-marks/20210804-020522
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git fsnotify
:::::: branch date: 9 hours ago
:::::: commit date: 9 hours ago
config: x86_64-randconfig-m001-20210803 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
fs/notify/mark.c:201 fsnotify_get_sb_connectors() error: uninitialized symbol 'sb'.

vim +/sb +201 fs/notify/mark.c

945579ec988af6 Amir Goldstein 2021-08-03  186  
945579ec988af6 Amir Goldstein 2021-08-03  187  static void fsnotify_get_sb_connectors(struct fsnotify_mark_connector *conn)
945579ec988af6 Amir Goldstein 2021-08-03  188  {
945579ec988af6 Amir Goldstein 2021-08-03  189  	struct super_block *sb;
945579ec988af6 Amir Goldstein 2021-08-03  190  
945579ec988af6 Amir Goldstein 2021-08-03  191  	if (conn->type == FSNOTIFY_OBJ_TYPE_DETACHED)
945579ec988af6 Amir Goldstein 2021-08-03  192  		return;
945579ec988af6 Amir Goldstein 2021-08-03  193  
945579ec988af6 Amir Goldstein 2021-08-03  194  	if (conn->type == FSNOTIFY_OBJ_TYPE_INODE)
945579ec988af6 Amir Goldstein 2021-08-03  195  		sb = fsnotify_conn_inode(conn)->i_sb;
945579ec988af6 Amir Goldstein 2021-08-03  196  	else if (conn->type == FSNOTIFY_OBJ_TYPE_VFSMOUNT)
945579ec988af6 Amir Goldstein 2021-08-03  197  		sb = fsnotify_conn_mount(conn)->mnt.mnt_sb;
945579ec988af6 Amir Goldstein 2021-08-03  198  	else if (conn->type == FSNOTIFY_OBJ_TYPE_SB)
945579ec988af6 Amir Goldstein 2021-08-03  199  		sb = fsnotify_conn_sb(conn);
945579ec988af6 Amir Goldstein 2021-08-03  200  
945579ec988af6 Amir Goldstein 2021-08-03 @201  	atomic_long_inc(&sb->s_fsnotify_connectors);
945579ec988af6 Amir Goldstein 2021-08-03  202  }
945579ec988af6 Amir Goldstein 2021-08-03  203  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38255 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-08-10 14:28 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-03 18:03 [PATCH 0/4] Performance optimization for no fsnotify marks Amir Goldstein
2021-08-03 18:03 ` [PATCH 1/4] fsnotify: replace igrab() with ihold() on attach connector Amir Goldstein
2021-08-10  5:39   ` Matthew Bobrowski
2021-08-03 18:03 ` [PATCH 2/4] fsnotify: count s_fsnotify_inode_refs for attached connectors Amir Goldstein
2021-08-10  6:03   ` Matthew Bobrowski
2021-08-03 18:03 ` [PATCH 3/4] fsnotify: count all objects with " Amir Goldstein
2021-08-10  6:31   ` Matthew Bobrowski
2021-08-10 14:12     ` Amir Goldstein
2021-08-10 10:47   ` Jan Kara
2021-08-10 14:22     ` Amir Goldstein
2021-08-03 18:03 ` [PATCH 4/4] fsnotify: optimize the case of no marks of any type Amir Goldstein
2021-08-08 14:34   ` [fsnotify] e902b4cafb: unixbench.score 6.1% improvement kernel test robot
2021-08-08 14:34     ` kernel test robot
2021-08-10  6:43   ` [PATCH 4/4] fsnotify: optimize the case of no marks of any type Matthew Bobrowski
2021-08-10 10:49 ` [PATCH 0/4] Performance optimization for no fsnotify marks Jan Kara
  -- strict thread matches above, loose matches on Subject: below --
2021-08-04  2:37 [PATCH 3/4] fsnotify: count all objects with attached connectors kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.