mbox series

[V4,0/3] riscv: mm: Add soft-dirty and uffd-wp support

Message ID 20240815030403.832489-1-zhangchunyan@iscas.ac.cn (mailing list archive)
Headers show
Series riscv: mm: Add soft-dirty and uffd-wp support | expand

Message

Chunyan Zhang Aug. 15, 2024, 3:04 a.m. UTC
This patchset adds soft dirty and userfaultfd write protect tracking support
for RISC-V.

As described in the patches, we are trying to utilize only one free PTE
bit(9) to support three kernel features (devmap, soft-dirty, uffd-wp).
Users cannot have them supported at the same time (have to select
one when building the kernel).

This patchset has been tested with:
1) The kselftest mm suite in which soft-dirty, madv_populate, test_unmerge_uffd_wp,
and uffd-unit-tests run and pass, and no regressions are observed in any of the
other tests.

2) CRIU:
- 'criu check --feature mem_dirty_track' returns supported;
- incremental_dumps[1] and simple_loop [2] dump and restores work fine;
- zdtm test suite can run under host mode.

V4:
- Added bit(4) descriptions into "Format of swap PTE".

V3:
- Fixed the issue reported by kernel test irobot <lkp@intel.com>.

V1 -> V2:
- Add uffd-wp supported;
- Make soft-dirty uffd-wp and devmap mutually exclusive which all use the same PTE bit;
- Add test results of CRIU in the cover-letter.

[1] https://www.criu.org/Incremental_dumps
[2] https://asciinema.org/a/232445

Chunyan Zhang (3):
  riscv: mm: Prepare for reusing PTE RSW bit(9)
  riscv: mm: Add soft-dirty page tracking support
  riscv: mm: Add uffd write-protect support

 arch/riscv/Kconfig                    |  34 ++++++-
 arch/riscv/include/asm/pgtable-64.h   |   2 +-
 arch/riscv/include/asm/pgtable-bits.h |  31 ++++++
 arch/riscv/include/asm/pgtable.h      | 133 +++++++++++++++++++++++++-
 4 files changed, 197 insertions(+), 3 deletions(-)

Comments

Chunyan Zhang Aug. 15, 2024, 8:54 a.m. UTC | #1
On Thu, 15 Aug 2024 at 11:04, Chunyan Zhang <zhangchunyan@iscas.ac.cn> wrote:
>
> This patchset adds soft dirty and userfaultfd write protect tracking support
> for RISC-V.
>
> As described in the patches, we are trying to utilize only one free PTE
> bit(9) to support three kernel features (devmap, soft-dirty, uffd-wp).
> Users cannot have them supported at the same time (have to select
> one when building the kernel).
>
> This patchset has been tested with:
> 1) The kselftest mm suite in which soft-dirty, madv_populate, test_unmerge_uffd_wp,
> and uffd-unit-tests run and pass, and no regressions are observed in any of the
> other tests.
>
> 2) CRIU:
> - 'criu check --feature mem_dirty_track' returns supported;
> - incremental_dumps[1] and simple_loop [2] dump and restores work fine;
> - zdtm test suite can run under host mode.
>
> V4:
> - Added bit(4) descriptions into "Format of swap PTE".
>
> V3:
> - Fixed the issue reported by kernel test irobot <lkp@intel.com>.
>
> V1 -> V2:
> - Add uffd-wp supported;
> - Make soft-dirty uffd-wp and devmap mutually exclusive which all use the same PTE bit;
> - Add test results of CRIU in the cover-letter.
>
> [1] https://www.criu.org/Incremental_dumps
> [2] https://asciinema.org/a/232445
>
> Chunyan Zhang (3):
>   riscv: mm: Prepare for reusing PTE RSW bit(9)
>   riscv: mm: Add soft-dirty page tracking support
>   riscv: mm: Add uffd write-protect support
>
>  arch/riscv/Kconfig                    |  34 ++++++-
>  arch/riscv/include/asm/pgtable-64.h   |   2 +-
>  arch/riscv/include/asm/pgtable-bits.h |  31 ++++++
>  arch/riscv/include/asm/pgtable.h      | 133 +++++++++++++++++++++++++-
>  4 files changed, 197 insertions(+), 3 deletions(-)
>

This patchset applies on top of v6.11-rc1.

> --
> 2.34.1
>