mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	mm/damon/paddr: remove folio_sz field from damon_pa_access_chk_result
DAMON physical address space monitoring operations set gets and saves size of the folio for a given physical address inside rmap walks, but it can be directly caluclated outside of the walks. Remove the 'folio_sz' field from 'damon_pa_access_chk_result struct' and calculate the size directly from outside of the walks. Link: https://lkml.kernel.org/r/20230109213335.62525-6-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									af40e35a99
								
							
						
					
					
						commit
						397b0c3a58
					
				
					 1 changed files with 1 additions and 6 deletions
				
			
		| 
						 | 
					@ -80,8 +80,6 @@ static void damon_pa_prepare_access_checks(struct damon_ctx *ctx)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct damon_pa_access_chk_result {
 | 
					struct damon_pa_access_chk_result {
 | 
				
			||||||
	/* size of the folio for the access checked physical memory address */
 | 
					 | 
				
			||||||
	unsigned long folio_sz;
 | 
					 | 
				
			||||||
	bool accessed;
 | 
						bool accessed;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,7 +90,6 @@ static bool __damon_pa_young(struct folio *folio, struct vm_area_struct *vma,
 | 
				
			||||||
	DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0);
 | 
						DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	result->accessed = false;
 | 
						result->accessed = false;
 | 
				
			||||||
	result->folio_sz = PAGE_SIZE;
 | 
					 | 
				
			||||||
	while (page_vma_mapped_walk(&pvmw)) {
 | 
						while (page_vma_mapped_walk(&pvmw)) {
 | 
				
			||||||
		addr = pvmw.address;
 | 
							addr = pvmw.address;
 | 
				
			||||||
		if (pvmw.pte) {
 | 
							if (pvmw.pte) {
 | 
				
			||||||
| 
						 | 
					@ -104,7 +101,6 @@ static bool __damon_pa_young(struct folio *folio, struct vm_area_struct *vma,
 | 
				
			||||||
			result->accessed = pmd_young(*pvmw.pmd) ||
 | 
								result->accessed = pmd_young(*pvmw.pmd) ||
 | 
				
			||||||
				!folio_test_idle(folio) ||
 | 
									!folio_test_idle(folio) ||
 | 
				
			||||||
				mmu_notifier_test_young(vma->vm_mm, addr);
 | 
									mmu_notifier_test_young(vma->vm_mm, addr);
 | 
				
			||||||
			result->folio_sz = HPAGE_PMD_SIZE;
 | 
					 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
			WARN_ON_ONCE(1);
 | 
								WARN_ON_ONCE(1);
 | 
				
			||||||
#endif	/* CONFIG_TRANSPARENT_HUGEPAGE */
 | 
					#endif	/* CONFIG_TRANSPARENT_HUGEPAGE */
 | 
				
			||||||
| 
						 | 
					@ -123,7 +119,6 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct folio *folio = damon_get_folio(PHYS_PFN(paddr));
 | 
						struct folio *folio = damon_get_folio(PHYS_PFN(paddr));
 | 
				
			||||||
	struct damon_pa_access_chk_result result = {
 | 
						struct damon_pa_access_chk_result result = {
 | 
				
			||||||
		.folio_sz = PAGE_SIZE,
 | 
					 | 
				
			||||||
		.accessed = false,
 | 
							.accessed = false,
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	struct rmap_walk_control rwc = {
 | 
						struct rmap_walk_control rwc = {
 | 
				
			||||||
| 
						 | 
					@ -158,7 +153,7 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz)
 | 
				
			||||||
	folio_put(folio);
 | 
						folio_put(folio);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
out:
 | 
					out:
 | 
				
			||||||
	*folio_sz = result.folio_sz;
 | 
						*folio_sz = folio_size(folio);
 | 
				
			||||||
	return result.accessed;
 | 
						return result.accessed;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue