Message ID | 20220810193033.1090251-4-pcc@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: arm64: permit MAP_SHARED mappings with MTE enabled | expand |
Hi Peter,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on arm64/for-next/core]
[also build test WARNING on linus/master next-20220811]
[cannot apply to kvmarm/next arm/for-next soc/for-next xilinx-xlnx/master v5.19]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20220811/202208111500.62e0Bl2l-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/1a400517d8428df0ec9f86f8d303b2227ee9702f
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310
git checkout 1a400517d8428df0ec9f86f8d303b2227ee9702f
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> mm/memory.c:92:2: warning: #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. [-Wcpp]
92 | #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid.
| ^~~~~~~
vim +92 mm/memory.c
42b7772812d15b Jan Beulich 2008-07-23 90
af27d9403f5b80 Arnd Bergmann 2018-02-16 91 #if defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS) && !defined(CONFIG_COMPILE_TEST)
90572890d20252 Peter Zijlstra 2013-10-07 @92 #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid.
75980e97daccfc Peter Zijlstra 2013-02-22 93 #endif
75980e97daccfc Peter Zijlstra 2013-02-22 94
On Thu, Aug 11, 2022 at 03:16:08PM +0800, kernel test robot wrote: > Thank you for the patch! Perhaps something to improve: > > [auto build test WARNING on arm64/for-next/core] > [also build test WARNING on linus/master next-20220811] > [cannot apply to kvmarm/next arm/for-next soc/for-next xilinx-xlnx/master v5.19] > [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#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310 > base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core > config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20220811/202208111500.62e0Bl2l-lkp@intel.com/config) > compiler: loongarch64-linux-gcc (GCC) 12.1.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/intel-lab-lkp/linux/commit/1a400517d8428df0ec9f86f8d303b2227ee9702f > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310 > git checkout 1a400517d8428df0ec9f86f8d303b2227ee9702f > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > >> mm/memory.c:92:2: warning: #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. [-Wcpp] > 92 | #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. > | ^~~~~~~ > > > vim +92 mm/memory.c > > 42b7772812d15b Jan Beulich 2008-07-23 90 > af27d9403f5b80 Arnd Bergmann 2018-02-16 91 #if defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS) && !defined(CONFIG_COMPILE_TEST) > 90572890d20252 Peter Zijlstra 2013-10-07 @92 #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. > 75980e97daccfc Peter Zijlstra 2013-02-22 93 #endif > 75980e97daccfc Peter Zijlstra 2013-02-22 94 It looks like ith CONFIG_NUMA_BALANCING=y on loongarch we run out of spare bits in page->flags to fit last_cpupid. The reason we don't see it on arm64 is that we select SPARSEMEM_VMEMMAP and SECTIONS_WIDTH becomes 0. On loongarch SECTIONS_WIDTH takes 19 bits (48 - 29) in page->flags. I think instead of always defining PG_arch_{2,3} if CONFIG_64BIT, we could add a CONFIG_ARCH_WANTS_PG_ARCH_23 option and only select it on arm64 for the time being.
On Thu, Sep 01, 2022 at 06:59:23PM +0100, Catalin Marinas wrote: > On Thu, Aug 11, 2022 at 03:16:08PM +0800, kernel test robot wrote: > > Thank you for the patch! Perhaps something to improve: > > > > [auto build test WARNING on arm64/for-next/core] > > [also build test WARNING on linus/master next-20220811] > > [cannot apply to kvmarm/next arm/for-next soc/for-next xilinx-xlnx/master v5.19] > > [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#_base_tree_information] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core > > config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20220811/202208111500.62e0Bl2l-lkp@intel.com/config) > > compiler: loongarch64-linux-gcc (GCC) 12.1.0 > > reproduce (this is a W=1 build): > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > > chmod +x ~/bin/make.cross > > # https://github.com/intel-lab-lkp/linux/commit/1a400517d8428df0ec9f86f8d303b2227ee9702f > > git remote add linux-review https://github.com/intel-lab-lkp/linux > > git fetch --no-tags linux-review Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310 > > git checkout 1a400517d8428df0ec9f86f8d303b2227ee9702f > > # save the config file > > mkdir build_dir && cp config build_dir/.config > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash > > > > If you fix the issue, kindly add following tag where applicable > > Reported-by: kernel test robot <lkp@intel.com> > > > > All warnings (new ones prefixed by >>): > > > > >> mm/memory.c:92:2: warning: #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. [-Wcpp] > > 92 | #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. > > | ^~~~~~~ > > > > > > vim +92 mm/memory.c > > > > 42b7772812d15b Jan Beulich 2008-07-23 90 > > af27d9403f5b80 Arnd Bergmann 2018-02-16 91 #if defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS) && !defined(CONFIG_COMPILE_TEST) > > 90572890d20252 Peter Zijlstra 2013-10-07 @92 #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. > > 75980e97daccfc Peter Zijlstra 2013-02-22 93 #endif > > 75980e97daccfc Peter Zijlstra 2013-02-22 94 > > It looks like ith CONFIG_NUMA_BALANCING=y on loongarch we run out of > spare bits in page->flags to fit last_cpupid. The reason we don't see it > on arm64 is that we select SPARSEMEM_VMEMMAP and SECTIONS_WIDTH becomes > 0. On loongarch SECTIONS_WIDTH takes 19 bits (48 - 29) in page->flags. > > I think instead of always defining PG_arch_{2,3} if CONFIG_64BIT, we > could add a CONFIG_ARCH_WANTS_PG_ARCH_23 option and only select it on > arm64 for the time being. I pushed a patch as the first one on the arm64 devel/mte-pg-flags branch. Also updated the last patch on this branch following Steven's comments. Peter, please let me know if you want to pick this series up together with your other KVM patches. Otherwise I can post it separately, it's worth merging it on its own as it clarifies the page flag vs tag setting ordering.
On Mon, 05 Sep 2022 18:01:55 +0100, Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Thu, Sep 01, 2022 at 06:59:23PM +0100, Catalin Marinas wrote: > > On Thu, Aug 11, 2022 at 03:16:08PM +0800, kernel test robot wrote: > > > Thank you for the patch! Perhaps something to improve: > > > > > > [auto build test WARNING on arm64/for-next/core] > > > [also build test WARNING on linus/master next-20220811] > > > [cannot apply to kvmarm/next arm/for-next soc/for-next xilinx-xlnx/master v5.19] > > > [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#_base_tree_information] > > > > > > url: https://github.com/intel-lab-lkp/linux/commits/Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310 > > > base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core > > > config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20220811/202208111500.62e0Bl2l-lkp@intel.com/config) > > > compiler: loongarch64-linux-gcc (GCC) 12.1.0 > > > reproduce (this is a W=1 build): > > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > > > chmod +x ~/bin/make.cross > > > # https://github.com/intel-lab-lkp/linux/commit/1a400517d8428df0ec9f86f8d303b2227ee9702f > > > git remote add linux-review https://github.com/intel-lab-lkp/linux > > > git fetch --no-tags linux-review Peter-Collingbourne/KVM-arm64-permit-MAP_SHARED-mappings-with-MTE-enabled/20220811-033310 > > > git checkout 1a400517d8428df0ec9f86f8d303b2227ee9702f > > > # save the config file > > > mkdir build_dir && cp config build_dir/.config > > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash > > > > > > If you fix the issue, kindly add following tag where applicable > > > Reported-by: kernel test robot <lkp@intel.com> > > > > > > All warnings (new ones prefixed by >>): > > > > > > >> mm/memory.c:92:2: warning: #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. [-Wcpp] > > > 92 | #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. > > > | ^~~~~~~ > > > > > > > > > vim +92 mm/memory.c > > > > > > 42b7772812d15b Jan Beulich 2008-07-23 90 > > > af27d9403f5b80 Arnd Bergmann 2018-02-16 91 #if defined(LAST_CPUPID_NOT_IN_PAGE_FLAGS) && !defined(CONFIG_COMPILE_TEST) > > > 90572890d20252 Peter Zijlstra 2013-10-07 @92 #warning Unfortunate NUMA and NUMA Balancing config, growing page-frame for last_cpupid. > > > 75980e97daccfc Peter Zijlstra 2013-02-22 93 #endif > > > 75980e97daccfc Peter Zijlstra 2013-02-22 94 > > > > It looks like ith CONFIG_NUMA_BALANCING=y on loongarch we run out of > > spare bits in page->flags to fit last_cpupid. The reason we don't see it > > on arm64 is that we select SPARSEMEM_VMEMMAP and SECTIONS_WIDTH becomes > > 0. On loongarch SECTIONS_WIDTH takes 19 bits (48 - 29) in page->flags. > > > > I think instead of always defining PG_arch_{2,3} if CONFIG_64BIT, we > > could add a CONFIG_ARCH_WANTS_PG_ARCH_23 option and only select it on > > arm64 for the time being. > > I pushed a patch as the first one on the arm64 devel/mte-pg-flags > branch. Also updated the last patch on this branch following Steven's > comments. > > Peter, please let me know if you want to pick this series up together > with your other KVM patches. Otherwise I can post it separately, it's > worth merging it on its own as it clarifies the page flag vs tag setting > ordering. I'm looking at queuing this, but I'm confused by this comment. Do I need to pick this as part of the series? Or is this an independent thing (my hunch is that it is actually required not to break other architectures...). Thanks, M.
On Mon, Sep 19, 2022 at 07:12:53PM +0100, Marc Zyngier wrote: > On Mon, 05 Sep 2022 18:01:55 +0100, > Catalin Marinas <catalin.marinas@arm.com> wrote: > > Peter, please let me know if you want to pick this series up together > > with your other KVM patches. Otherwise I can post it separately, it's > > worth merging it on its own as it clarifies the page flag vs tag setting > > ordering. > > I'm looking at queuing this, but I'm confused by this comment. Do I > need to pick this as part of the series? Or is this an independent > thing (my hunch is that it is actually required not to break other > architectures...). This series series (at least the first patches) won't apply cleanly on top of 6.0-rc1 and, of course, we shouldn't break other architectures. I can repost the whole series but I don't have the setup to test the MAP_SHARED KVM option (unless Peter plans to post it soon).
On Tue, 20 Sep 2022 16:39:47 +0100, Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Mon, Sep 19, 2022 at 07:12:53PM +0100, Marc Zyngier wrote: > > On Mon, 05 Sep 2022 18:01:55 +0100, > > Catalin Marinas <catalin.marinas@arm.com> wrote: > > > Peter, please let me know if you want to pick this series up together > > > with your other KVM patches. Otherwise I can post it separately, it's > > > worth merging it on its own as it clarifies the page flag vs tag setting > > > ordering. > > > > I'm looking at queuing this, but I'm confused by this comment. Do I > > need to pick this as part of the series? Or is this an independent > > thing (my hunch is that it is actually required not to break other > > architectures...). > > This series series (at least the first patches) won't apply cleanly on > top of 6.0-rc1 and, of course, we shouldn't break other architectures. I > can repost the whole series but I don't have the setup to test the > MAP_SHARED KVM option (unless Peter plans to post it soon). I don't feel brave enough to take a series affecting all architectures so late in the game, and the whole thing had very little arm64 exposure. The latest QEMU doesn't seem to work anymore, so I don't have any MTE-capable emulation (and using the FVP remotely is a pain in the proverbial neck). I'll come back to this after the merge window, should Peter decide to respin the series. Thanks, M.
On Tue, Sep 20, 2022 at 05:33:42PM +0100, Marc Zyngier wrote: > On Tue, 20 Sep 2022 16:39:47 +0100, > Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Mon, Sep 19, 2022 at 07:12:53PM +0100, Marc Zyngier wrote: > > > On Mon, 05 Sep 2022 18:01:55 +0100, > > > Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > Peter, please let me know if you want to pick this series up together > > > > with your other KVM patches. Otherwise I can post it separately, it's > > > > worth merging it on its own as it clarifies the page flag vs tag setting > > > > ordering. > > > > > > I'm looking at queuing this, but I'm confused by this comment. Do I > > > need to pick this as part of the series? Or is this an independent > > > thing (my hunch is that it is actually required not to break other > > > architectures...). > > > > This series series (at least the first patches) won't apply cleanly on > > top of 6.0-rc1 and, of course, we shouldn't break other architectures. I > > can repost the whole series but I don't have the setup to test the > > MAP_SHARED KVM option (unless Peter plans to post it soon). > > I don't feel brave enough to take a series affecting all architectures It shouldn't affect the others, the only change is that PG_arch_2 is now only defined for arm64 but no other architecture is using it. The problem with loongarch is that it doesn't have enough spare bits in page->flags and even without any patches I think it's broken with the right value for NR_CPUS. > so late in the game, and the whole thing had very little arm64 > exposure. The latest QEMU doesn't seem to work anymore, so I don't > have any MTE-capable emulation (and using the FVP remotely is a pain > in the proverbial neck). > > I'll come back to this after the merge window, should Peter decide to > respin the series. It makes sense.
On Tue, Sep 20, 2022 at 9:58 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Tue, Sep 20, 2022 at 05:33:42PM +0100, Marc Zyngier wrote: > > On Tue, 20 Sep 2022 16:39:47 +0100, > > Catalin Marinas <catalin.marinas@arm.com> wrote: > > > On Mon, Sep 19, 2022 at 07:12:53PM +0100, Marc Zyngier wrote: > > > > On Mon, 05 Sep 2022 18:01:55 +0100, > > > > Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > > Peter, please let me know if you want to pick this series up together > > > > > with your other KVM patches. Otherwise I can post it separately, it's > > > > > worth merging it on its own as it clarifies the page flag vs tag setting > > > > > ordering. > > > > > > > > I'm looking at queuing this, but I'm confused by this comment. Do I > > > > need to pick this as part of the series? Or is this an independent > > > > thing (my hunch is that it is actually required not to break other > > > > architectures...). > > > > > > This series series (at least the first patches) won't apply cleanly on > > > top of 6.0-rc1 and, of course, we shouldn't break other architectures. I > > > can repost the whole series but I don't have the setup to test the > > > MAP_SHARED KVM option (unless Peter plans to post it soon). > > > > I don't feel brave enough to take a series affecting all architectures > > It shouldn't affect the others, the only change is that PG_arch_2 is now > only defined for arm64 but no other architecture is using it. The > problem with loongarch is that it doesn't have enough spare bits in > page->flags and even without any patches I think it's broken with the > right value for NR_CPUS. > > > so late in the game, and the whole thing had very little arm64 > > exposure. The latest QEMU doesn't seem to work anymore, so I don't > > have any MTE-capable emulation (and using the FVP remotely is a pain > > in the proverbial neck). > > > > I'll come back to this after the merge window, should Peter decide to > > respin the series. > > It makes sense. Apologies for the delay, I've now sent out v4 of this series which includes the patches on your branch. Peter
diff --git a/fs/proc/page.c b/fs/proc/page.c index a2873a617ae8..0129aa3cfb7a 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c @@ -220,6 +220,7 @@ u64 stable_page_flags(struct page *page) u |= kpf_copy_bit(k, KPF_ARCH, PG_arch_1); #ifdef CONFIG_64BIT u |= kpf_copy_bit(k, KPF_ARCH_2, PG_arch_2); + u |= kpf_copy_bit(k, KPF_ARCH_3, PG_arch_3); #endif return u; diff --git a/include/linux/kernel-page-flags.h b/include/linux/kernel-page-flags.h index eee1877a354e..859f4b0c1b2b 100644 --- a/include/linux/kernel-page-flags.h +++ b/include/linux/kernel-page-flags.h @@ -18,5 +18,6 @@ #define KPF_UNCACHED 39 #define KPF_SOFTDIRTY 40 #define KPF_ARCH_2 41 +#define KPF_ARCH_3 42 #endif /* LINUX_KERNEL_PAGE_FLAGS_H */ diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 465ff35a8c00..ad01a3abf6c8 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -134,6 +134,7 @@ enum pageflags { #endif #ifdef CONFIG_64BIT PG_arch_2, + PG_arch_3, #endif #ifdef CONFIG_KASAN_HW_TAGS PG_skip_kasan_poison, diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 11524cda4a95..704380179986 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -91,9 +91,9 @@ #endif #ifdef CONFIG_64BIT -#define IF_HAVE_PG_ARCH_2(flag,string) ,{1UL << flag, string} +#define IF_HAVE_PG_ARCH_2_3(flag,string) ,{1UL << flag, string} #else -#define IF_HAVE_PG_ARCH_2(flag,string) +#define IF_HAVE_PG_ARCH_2_3(flag,string) #endif #ifdef CONFIG_KASAN_HW_TAGS @@ -129,7 +129,8 @@ IF_HAVE_PG_UNCACHED(PG_uncached, "uncached" ) \ IF_HAVE_PG_HWPOISON(PG_hwpoison, "hwpoison" ) \ IF_HAVE_PG_IDLE(PG_young, "young" ) \ IF_HAVE_PG_IDLE(PG_idle, "idle" ) \ -IF_HAVE_PG_ARCH_2(PG_arch_2, "arch_2" ) \ +IF_HAVE_PG_ARCH_2_3(PG_arch_2, "arch_2" ) \ +IF_HAVE_PG_ARCH_2_3(PG_arch_3, "arch_3" ) \ IF_HAVE_PG_SKIP_KASAN_POISON(PG_skip_kasan_poison, "skip_kasan_poison") #define show_page_flags(flags) \ diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 0611b2fd145a..262e9ca627fb 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2399,6 +2399,7 @@ static void __split_huge_page_tail(struct page *head, int tail, (1L << PG_unevictable) | #ifdef CONFIG_64BIT (1L << PG_arch_2) | + (1L << PG_arch_3) | #endif (1L << PG_dirty))); diff --git a/tools/vm/page-types.c b/tools/vm/page-types.c index 381dcc00cb62..364373f5bba0 100644 --- a/tools/vm/page-types.c +++ b/tools/vm/page-types.c @@ -79,6 +79,7 @@ #define KPF_UNCACHED 39 #define KPF_SOFTDIRTY 40 #define KPF_ARCH_2 41 +#define KPF_ARCH_3 42 /* [47-] take some arbitrary free slots for expanding overloaded flags * not part of kernel API @@ -138,6 +139,7 @@ static const char * const page_flag_names[] = { [KPF_UNCACHED] = "c:uncached", [KPF_SOFTDIRTY] = "f:softdirty", [KPF_ARCH_2] = "H:arch_2", + [KPF_ARCH_3] = "H:arch_3", [KPF_ANON_EXCLUSIVE] = "d:anon_exclusive", [KPF_READAHEAD] = "I:readahead",