Chris Lu and GitHub
f475d60fcf
mount: move directory cache state to a side map to shrink InodeEntry (152 to 32 bytes) ( #10114 )
...
mount: move directory cache state to a side map to shrink InodeEntry
The mount keeps an InodeEntry alive for every inode the kernel references.
On a mount that is almost entirely regular files, each entry carried the full
directory readdir-cache bookkeeping (four time.Time fields plus counters),
bloating it to 152 bytes whether or not the inode was a directory.
Move that state into a dirState held in a side map keyed by inode, and drop the
isDirectory bool: an inode is a directory iff it has a dirState. InodeEntry is
now just paths + nlookup at 32 bytes, landing in a smaller Go allocator size
class; on a mount with tens of millions of cached file inodes that is several GB
less resident heap. As a side effect the readdir-cache scan helpers iterate only
directories instead of every inode.
2026-06-25 19:17:32 -07:00
..
2026-06-24 14:25:23 -07:00
2026-05-06 15:26:56 -07:00
2026-02-20 18:42:00 -08:00
2026-04-16 15:51:13 -07:00
2026-06-24 14:24:22 -07:00
2026-04-20 00:31:37 -07:00
2026-05-18 01:02:58 -07:00
2026-06-16 16:47:59 -07:00
2026-06-16 16:47:59 -07:00
2026-03-23 13:35:16 -07:00
2026-04-08 15:55:06 -07:00
2026-03-30 18:25:11 -07:00
2026-03-30 18:25:11 -07:00
2026-06-25 19:17:32 -07:00
2026-06-25 19:17:32 -07:00
2026-01-07 13:06:08 -08:00
2026-06-16 16:47:59 -07:00
2026-06-24 19:54:03 -07:00
2026-06-24 14:24:22 -07:00
2026-06-16 09:16:24 -07:00
2026-06-16 09:16:24 -07:00
2026-04-16 00:44:24 -07:00
2026-04-18 20:03:34 -07:00
2026-04-18 20:03:34 -07:00
2026-04-18 21:42:36 -07:00
2026-04-18 21:42:36 -07:00
2026-04-18 21:42:36 -07:00
2026-04-18 20:18:38 -07:00
2026-04-18 20:18:38 -07:00
2026-04-18 20:18:38 -07:00
2026-04-19 00:53:12 -07:00
2026-05-24 23:49:41 -07:00
2026-04-18 20:18:38 -07:00
2026-04-19 00:53:12 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-05-01 19:51:27 -07:00
2026-05-01 19:51:27 -07:00
2026-04-03 16:04:27 -07:00
2026-06-18 17:38:28 -07:00
2026-06-18 17:38:28 -07:00
2026-06-18 17:38:28 -07:00
2026-06-24 14:24:22 -07:00
2026-01-06 10:50:54 -08:00
2026-01-06 10:50:54 -08:00
2026-01-06 10:50:54 -08:00
2026-05-24 23:49:41 -07:00
2026-05-24 23:49:41 -07:00
2026-04-16 00:44:24 -07:00
2026-04-23 19:17:35 -07:00
2026-04-23 19:17:35 -07:00
2026-03-29 13:33:17 -07:00
2026-03-29 13:33:17 -07:00
2026-04-13 22:39:50 -07:00
2026-06-24 19:36:42 -07:00
2026-04-16 11:37:52 -07:00
2026-06-24 14:24:22 -07:00
2026-05-24 23:56:37 -07:00
2026-01-06 10:50:54 -08:00
2026-06-24 14:24:51 -07:00
2026-06-24 14:24:51 -07:00
2026-01-06 10:50:54 -08:00
2026-06-24 19:54:03 -07:00
2026-06-24 19:54:03 -07:00
2026-05-08 12:37:23 -07:00
2026-06-24 14:24:51 -07:00
2026-06-02 14:43:46 -07:00
2026-01-07 13:06:08 -08:00
2026-04-23 19:17:35 -07:00
2026-05-08 12:37:23 -07:00
2026-05-19 20:47:52 -07:00
2026-05-24 23:56:37 -07:00
2026-05-25 01:02:45 -07:00
2026-01-07 13:06:08 -08:00
2025-12-17 01:14:01 -08:00
2026-03-29 13:33:17 -07:00
2026-06-24 14:24:22 -07:00
2026-04-10 16:19:09 -07:00
2026-03-25 20:06:34 -07:00
2026-04-10 13:05:48 -07:00
2026-04-23 19:17:35 -07:00
2026-03-24 11:43:41 -07:00
2026-04-15 14:06:06 -07:00
2026-06-19 10:29:28 -07:00
2026-01-06 10:50:54 -08:00
2026-04-28 23:54:35 -07:00
2026-06-23 01:31:14 -07:00
2026-06-24 14:24:51 -07:00
2026-06-01 15:11:02 -07:00
2026-04-23 19:17:35 -07:00
2026-06-24 14:24:22 -07:00