1. 25 Jul, 2022 11 commits
  2. 20 Jul, 2022 1 commit
    • Barry Song's avatar
      arm64: enable THP_SWAP for arm64 · d0637c50
      Barry Song authored
      THP_SWAP has been proven to improve the swap throughput significantly
      on x86_64 according to commit bd4c82c2 ("mm, THP, swap: delay
      splitting THP after swapped out").
      As long as arm64 uses 4K page size, it is quite similar with x86_64
      by having 2MB PMD THP. THP_SWAP is architecture-independent, thus,
      enabling it on arm64 will benefit arm64 as well.
      A corner case is that MTE has an assumption that only base pages
      can be swapped. We won't enable THP_SWAP for ARM64 hardware with
      MTE support until MTE is reworked to coexist with THP_SWAP.
      
      A micro-benchmark is written to measure thp swapout throughput as
      below,
      
       unsigned long long tv_to_ms(struct timeval tv)
       {
       	return tv.tv_sec * 1000 + tv.tv_usec / 1000;
       }
      
       main()
       {
       	struct timeval tv_b, tv_e;;
       #define SIZE 400*1024*1024
       	volatile void *p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE,
       				MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
       	if (!p) {
       		perror("fail to get memory");
       		exit(-1);
       	}
      
       	madvise(p, SIZE, MADV_HUGEPAGE);
       	memset(p, 0x11, SIZE); /* write to get mem */
      
       	gettimeofday(&tv_b, NULL);
       	madvise(p, SIZE, MADV_PAGEOUT);
       	gettimeofday(&tv_e, NULL);
      
       	printf("swp out bandwidth: %ld bytes/ms\n",
       			SIZE/(tv_to_ms(tv_e) - tv_to_ms(tv_b)));
       }
      
      Testing is done on rk3568 64bit Quad Core Cortex-A55 platform -
      ROCK 3A.
      thp swp throughput w/o patch: 2734bytes/ms (mean of 10 tests)
      thp swp throughput w/  patch: 3331bytes/ms (mean of 10 tests)
      
      Cc: "Huang, Ying" <ying.huang@intel.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Steven Price <steven.price@arm.com>
      Cc: Yang Shi <shy828301@gmail.com>
      Reviewed-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
      Signed-off-by: default avatarBarry Song <v-songbaohua@oppo.com>
      Link: https://lore.kernel.org/r/20220720093737.133375-1-21cnbao@gmail.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      d0637c50
  3. 19 Jul, 2022 3 commits
  4. 07 Jul, 2022 4 commits
  5. 05 Jul, 2022 3 commits
  6. 04 Jul, 2022 1 commit
  7. 01 Jul, 2022 1 commit
  8. 28 Jun, 2022 7 commits
  9. 27 Jun, 2022 6 commits
  10. 24 Jun, 2022 1 commit
  11. 23 Jun, 2022 2 commits