<story><title>The NOVA filesystem</title><url>https://lwn.net/SubscriberLink/729812/1557fcd18e4dd96f/</url></story><parent_chain><item><author>ecma</author><text>This is super interesting but&lt;p&gt;&lt;pre&gt;&lt;code&gt;   due to the per-CPU inode table
   structure, it is impossible to
   move a NOVA filesystem from one
   system to another if the two
   machines do not have the same
   number of CPUs.
&lt;/code&gt;&lt;/pre&gt;
seems like a dealbreaker. What use is a FS if it isn&amp;#x27;t portable? At least it sounds like they&amp;#x27;re very aware of this issue.&lt;p&gt;I&amp;#x27;d be very interested to see what they end up doing to make this behave better prior to upstream consideration. I wonder if a linked list journal of inode table changes  (with space drawn from per-CPU freelists) would be safe&amp;#x2F;fast enough. That could be periodically coalesced and remapped to the NOVA device&amp;#x27;s non-CPU aware inode table.</text></item></parent_chain><comment><author>kalmi10</author><text>It&amp;#x27;s not so grim.&lt;p&gt;&amp;quot;The origin of the CPU-count dependence is that NOVA divides PMEM into per-CPU allocation regions. We use the current CPU ID as a hint about which region to use and avoid contention on the locks that protect it. 
So moving from a smaller number of CPUs to a larger number of CPUs just means more contention for the locks. Moving from a larger number to a smaller number is no problem at all. So, our current plan is to set the CPU count very high (like 256) when the file system is created.&amp;quot; - comment under the post by one of the designers of the fs</text></comment>
<story><title>The NOVA filesystem</title><url>https://lwn.net/SubscriberLink/729812/1557fcd18e4dd96f/</url></story><parent_chain><item><author>ecma</author><text>This is super interesting but&lt;p&gt;&lt;pre&gt;&lt;code&gt;   due to the per-CPU inode table
   structure, it is impossible to
   move a NOVA filesystem from one
   system to another if the two
   machines do not have the same
   number of CPUs.
&lt;/code&gt;&lt;/pre&gt;
seems like a dealbreaker. What use is a FS if it isn&amp;#x27;t portable? At least it sounds like they&amp;#x27;re very aware of this issue.&lt;p&gt;I&amp;#x27;d be very interested to see what they end up doing to make this behave better prior to upstream consideration. I wonder if a linked list journal of inode table changes  (with space drawn from per-CPU freelists) would be safe&amp;#x2F;fast enough. That could be periodically coalesced and remapped to the NOVA device&amp;#x27;s non-CPU aware inode table.</text></item></parent_chain><comment><author>microcolonel</author><text>I don&amp;#x27;t see it as such a big problem. Most filesystem images aren&amp;#x27;t intended to be ported directly between machines in general. As long as they have a tool to read the filesystem on a different configuration, a filesystem with this restriction could still be very useful for generic bulk storage on a single node.</text></comment>